Commit Graph

276 Commits

Author SHA1 Message Date
mratsim 8865ab874f init from uint of the same size 2018-02-17 18:32:23 +01:00
mratsim f06c02cf2a 5% more speed to divmod 2018-02-17 17:57:26 +01:00
mratsim 6fd471f243 Add division test + consistent Subtype conversion use 2018-02-17 12:44:51 +01:00
mratsim ac902b2a23 20% divmod improvement by using GCC Clang builtins when possible 2018-02-17 12:02:51 +01:00
mratsim 00040e4d38 45% faster division with 45% faster shifts (and maintainable). Fixes #1 2018-02-17 01:11:18 +01:00
mratsim 43cb3441bc Division/modulo 2x faster by removing shift in MpUint bit_length 2018-02-17 00:47:17 +01:00
mratsim 1c5da77a29 Add divmod i.e. division + modulo done! 2018-02-16 22:17:13 +01:00
mratsim a8f50c4dbe small quality of life fix + auto conversion of booleans 2018-02-16 21:07:51 +01:00
mratsim 834ff19a25 Add comparison operators + tests + fix shr forward declaration 2018-02-16 17:48:54 +01:00
mratsim f044d8a476 Add note about branchless shift being cryptographically preferable 2018-02-16 17:02:09 +01:00
mratsim 5886d76ebc Add alternative branchless shift implementation (TODO benchmark on ARM) 2018-02-16 16:47:52 +01:00
mratsim 6e27069298 less branching for shift ops 2018-02-16 14:30:07 +01:00
mratsim 35e80263a3 Add shift operators (WIP recursive implementation is slow) 2018-02-16 13:54:38 +01:00
mratsim cec8a752fb Fix shift by bytes/bit in multiplication (need tests) 2018-02-16 13:54:03 +01:00
mratsim 71d1f5bd19 Update README with build status 2018-02-16 11:48:56 +01:00
mratsim cd7929f187 Add continuous integration 2018-02-16 11:45:45 +01:00
mratsim f861af840a Use Nim input convention x, y instead of a,b 2018-02-16 11:38:48 +01:00
mratsim 32efae91ee add basic logical operations 2018-02-16 11:33:11 +01:00
mratsim 994be7fa61 We aren't using Karatsuba actually but school-grade naive mul 2018-02-16 11:01:03 +01:00
mratsim d60419a731 Karatsuba: shift constant was hardcoded + Add full overflow tests 2018-02-16 09:40:21 +01:00
mratsim 02be5c3e90 [WIP] Add multiplication with Karatsuba algorithm + basic test 2018-02-16 09:22:23 +01:00
mratsim 4d7d5897cd Add substraction implementation 2018-02-15 23:28:31 +01:00
mratsim fc6483d42e Implement addition (including proper overflow behaviour) 2018-02-15 20:26:10 +01:00
mratsim 839123b2a4 use C backend by default for testing 2018-02-15 15:09:58 +01:00
mratsim 6f77899709 Add basic data structure, initialization and endianess test 2018-02-15 15:01:08 +01:00
mratsim 364e11cf28 initial commit 2018-02-15 13:11:01 +01:00