Commit Graph

6 Commits

Author SHA1 Message Date
kr0
a430ae3d04 Implement Benchmarks for modular inverse impl
- Added `Criterion` on dev-dependencies and a
benches config section on Cargo.toml

- Added `benchmarks` folder with `benches.rs` file.

This file contains the benchmarks implementation of
the two distinct modular_inverse implementations.

Results:
```
Modular Inverse/Kalinski Modular inverse
                        time:   [50.105 us 50.438 us 50.819 us]
                        change: [-44.740% -44.195% -43.664%] (p = 0.00 < 0.05)
                        Performance has improved.

Modular Inverse/Standard Mod Inv
                        time:   [82.301 us 82.430 us 82.580 us]
```

To run the benchmarks just run: `cargo bench`.
2019-07-19 11:06:38 +02:00
kr0
fe2367290c Enable benchmarkin comparison between mod_inv_impl.
Added `pub` visibility mark to `mod_inverse()`
fn to be able to benchmark it.
2019-07-19 11:05:20 +02:00
kr0
79f06be242 Finnish kalinski_modular_inverse tests.
All tests are passing and Kalinski Inverse
has been introduced on the code replacing
the last mod_inv implementation.
2019-07-19 10:16:46 +02:00
kr0
70d54af4f1 Use Lsh impl of BigInt.
Bitshift to the left instead of multiply by 2
since performs ffaster than mul.
2019-07-19 10:06:25 +02:00
kr0
bfbe547191 [WIP] Implement kalinski modular inverse and tests
Implemented Kalinski Modular inverse algorithm.
See: https://www.researchgate.net/publication/3387259_Improved_Montgomery_modular_inverse_algorithm

Also implemented test for big and small Bignums.

One test is giving results over the Montgomery Domain, so
a little bit of research has to be done.
2019-07-14 05:39:16 +02:00
arnaucube
11b4c8ed9f add Rust implementation, reorganize directories 2019-07-12 19:25:06 +02:00