Dear Sir, I’ve added skeletal draft of my GSOC proposal (as per the Apache foundation’s guidelines) below :
GSOC-19 Application :- RNG-32: Implement More Generators Background The Commons RNG is focused on the utilization of Java-only implementations of various standard generators, with focus being placed on fast generators with strong uniformity and predictability. Design / description of work - Implementation of Linear Congruential Generators - Implementation of Lagged Fibonacci Generators - Implementation of PCGs Results for the Apache community The implementation of PRNGs will allow for the occurrence of speed and regularity for sequences of pseudo random numbers, easing the creation of applications involving data encryption, games and gambling. Deliverables Java Implementations for the following PRNGs shall be provided: 1. Linear Congruential Generators : One of the oldest and best known PRNG algorithms, LCGs create pseudo random sequences of numbers using discontinuous piecewise linear equations. 2. Lagged Fibonacci Generators : An improvement over Linear Congruential Generators , these PRNGs take their inspiration from the Fibonacci series, and utilise the following generalised formula : Sn = Sn-k * Sn-j (mod m) , where ‘*’ is a binary operation. (NOTE: k and j may not be selected randomly) 3. PCGs : Permuted Congruential Generators are RNGs which are modern, light and reliable in nature, and are more efficient than LCGs while utilising a power of 2 modulus, leading to unbiased output bits. Scheduling May 27- Beginning of coding and testing for Linear Congruential Generators June 17 - Testing for LCG commenced along with potential bug fixing June 24 18:00 UTC - Testing phase 1 - complete. Mentor evaluation of LCGs begin / Evaluation 1 June 28 18:00 UTC - Phase 1 Evaluation deadline June 29 - Beginning of implementation for Lagged Fibonacci Generators July 15 - Student testing of implemented LFGs begins along with bug fixing July 22 18:00 UTC - Testing Phase 2 – Complete. Mentor evaluation of LFGs begin / Evaluation 2 July 26 18:00 UTC - Phase 2 Evaluation deadline July 27 -Design and Coding for Java Implementation of PCGs begin August 12 - Student testing of PCGs begins along with the implementation of final fixes to code August 19 - 26 18:00 UTC - Final phase of Student Testing Complete. Mentor evaluation of overall code begins / Final evaluation August 26 - Sept 2 18:00 UTC - Mentors submit final student evaluations September 3- Final results of Google Summer of Code 2019 announced Other commitments None during the period of May 27th-July 27th . College begins from July 27th, but shall not affect the deadlines proposed. Community engagement Interacted with Gilles sir in the JIRA forum, along with subscription and interaction with members of the developer’s mailing list. Project importing and building using Maven also performed. -- END OF PROPOSAL— NOTE: I had created a table for the scheduling part, which got removed when I copied my draft proposal from the word document to mail, along with various cosmetic changes which I had applied to the text. Should I add my previous experience with Java and other qualifications, along with sources of information? What other changes should I make to my current proposal ? Feedback would be highly appreciated. PS :- Apologies for not replying earlier, I’ve been under the weather for the past few days. I shall undertake the changes you and Alex sir have advised, and reply as soon as possible. Thanking you, Yours Faithfully, Abhishek