{"push_id":681029059,"size":9,"distinct_size":9,"ref":"refs/heads/master","head":"fc7ce13ad25438c0b9d63355a2ac460c5416a902","before":"797f3208bbc466a542d3025605372c12e90a2ce7","commits":[{"sha":"e63e41456aeea591b6612aba59150ed54bcee7c9","author":{"email":"474ba67bdb289c6263b36dfd8a7bed6c85b04943@aatch.net","name":"James Miller"},"message":"Add a faster multiplication algorithm for large numbers\n\nImplement Karatsuba multiplication for multiplications where the smaller\nof the two numbers has more than 20 limbs.\n\nAdds some minor functions and helpers to make this work. Also implements\nsome basic benchmarks for multiplication:\n\nBefore:\n\n    test int::test::bench_mul_1000_1000 ... bench:   1296296 ns/iter (+/- 6933)\n    test int::test::bench_mul_10_10     ... bench:       168 ns/iter (+/- 5)\n    test int::test::bench_mul_250_250   ... bench:     81613 ns/iter (+/- 1231)\n    test int::test::bench_mul_2_20      ... bench:        80 ns/iter (+/- 3)\n    test int::test::bench_mul_50_50     ... bench:      3352 ns/iter (+/- 33)\n    test int::test::bench_mul_5_50      ... bench:       362 ns/iter (+/- 7)\n\nAfter:\n\n    test int::test::bench_mul_1000_1000 ... bench:    335340 ns/iter (+/- 5455)\n    test int::test::bench_mul_10_10     ... bench:       170 ns/iter (+/- 4)\n    test int::test::bench_mul_250_250   ... bench:     35818 ns/iter (+/- 869)\n    test int::test::bench_mul_2_20      ... bench:        82 ns/iter (+/- 2)\n    test int::test::bench_mul_50_50     ... bench:      2559 ns/iter (+/- 70)\n    test int::test::bench_mul_5_50      ... bench:       368 ns/iter (+/- 32)\n\nAs you can see, smaller numbers are unaffected by the change, whereas\nlarge number see a significant performance improvement","distinct":true,"url":"https://api.github.com/repos/gereeter/ramp/commits/e63e41456aeea591b6612aba59150ed54bcee7c9"},{"sha":"96eb6d62ad6d597ccc0eb5a737cc781d7d809997","author":{"email":"474ba67bdb289c6263b36dfd8a7bed6c85b04943@aatch.net","name":"James Miller"},"message":"Fix issues with division\n\nThe previous division impl was pretty sketchy and the random numbers\ngenerated for benchmarking were hitting some cases that weren't working\nanyway.\n\nImplements 3-by-2 limb division to complement the existing 2-by-1\ndivision, and a few other required helper routines. The new \"Schoolbook\"\ndivision algorithm relies on the increased accuracy of 3-by-2 limb\ndivision to avoid doing as much adjustment of the quotient.\n\nAn extra test, `div_rand`, has been added that tests that the results\nare correct on randomly-generated integers.","distinct":true,"url":"https://api.github.com/repos/gereeter/ramp/commits/96eb6d62ad6d597ccc0eb5a737cc781d7d809997"},{"sha":"46aa9b48bf177fbc51b1b90f1dad1d2e1ab5fb5d","author":{"email":"474ba67bdb289c6263b36dfd8a7bed6c85b04943@aatch.net","name":"James Miller"},"message":"Add travis support","distinct":true,"url":"https://api.github.com/repos/gereeter/ramp/commits/46aa9b48bf177fbc51b1b90f1dad1d2e1ab5fb5d"},{"sha":"35687d594b61f698aa78f938f5fabcc933e7ee8f","author":{"email":"474ba67bdb289c6263b36dfd8a7bed6c85b04943@aatch.net","name":"James Miller"},"message":"Improve documentation of `Int`\n\nGreatly expands the documentation of `Int` to better explain how to\ncreate, use and output it. Complete with examples.","distinct":true,"url":"https://api.github.com/repos/gereeter/ramp/commits/35687d594b61f698aa78f938f5fabcc933e7ee8f"},{"sha":"c8b4cde7ab3c37a702eab8a6b3771076abcd4292","author":{"email":"474ba67bdb289c6263b36dfd8a7bed6c85b04943@aatch.net","name":"James Miller"},"message":"Implement Hash for Int","distinct":true,"url":"https://api.github.com/repos/gereeter/ramp/commits/c8b4cde7ab3c37a702eab8a6b3771076abcd4292"},{"sha":"d98afccea47ad2b6f58354750289f4d0ff63fb5f","author":{"email":"474ba67bdb289c6263b36dfd8a7bed6c85b04943@aatch.net","name":"James Miller"},"message":"Implement Shl operation\n\nImplements Shl on `Int` with a usize operand. `x << n` is equal to\n`x * 2^n`\n\nimplementing and testing this uncovered some bugs, mostly in\nmulitplication, so they've been fixed.","distinct":true,"url":"https://api.github.com/repos/gereeter/ramp/commits/d98afccea47ad2b6f58354750289f4d0ff63fb5f"},{"sha":"7e2569fa3bdb86c350e69a4e19ec19788285c678","author":{"email":"474ba67bdb289c6263b36dfd8a7bed6c85b04943@aatch.net","name":"James Miller"},"message":"Implement Shr\n\nAlso bumps the version number and adds documentation references to\nCargo.toml and README.md","distinct":true,"url":"https://api.github.com/repos/gereeter/ramp/commits/7e2569fa3bdb86c350e69a4e19ec19788285c678"},{"sha":"6e4f7c4d49926faa89f392591d4d1e20e7fb0163","author":{"email":"474ba67bdb289c6263b36dfd8a7bed6c85b04943@aatch.net","name":"James Miller"},"message":"Enable running the benchmarks in travis","distinct":true,"url":"https://api.github.com/repos/gereeter/ramp/commits/6e4f7c4d49926faa89f392591d4d1e20e7fb0163"},{"sha":"fc7ce13ad25438c0b9d63355a2ac460c5416a902","author":{"email":"474ba67bdb289c6263b36dfd8a7bed6c85b04943@aatch.net","name":"James Miller"},"message":"Add some assembly implementations for the most common routines\n\nThis is somewhat experimental, and only implemented for x86-64 on linux.\nIt's also explictly opt-in, enabled by the `asm` cargo feature.\n\nBenchmarks suggest ~30% performance improvement from these changes.","distinct":true,"url":"https://api.github.com/repos/gereeter/ramp/commits/fc7ce13ad25438c0b9d63355a2ac460c5416a902"}]}