@@ -7,18 +7,21 @@ you are welcome to read (and modify) the source. Any suggestions on how to make
77code more readable or make it better are welcome. However, my main goal is to keep
88it simple and readability will be preferred over small speed improvements.
99
10+ It does not require any external libraries.
11+
1012The tools contained are:
1113
12- * number theory: sqrt modulo primes, crt , continued fractions, etc.
13- * primes: Sieve of Erathostenes, primality tests
14+ * number theory: sqrt modulo primes, Jacobi/Legendre symbol, Chinese Remainder Theorem , continued fractions, etc.
15+ * primes: Sieve of Erathostenes, primality tests, generation of random safe/strong primes
1416* solvers for discrete logarithms (naive, Pollard rho, Shanks baby step/giant step, index calculus, quadratic sieve)
1517* integer factorization (Fermat, Pollard p-1, Lenstra's ECM, Dixon, basic quadratic sieve)
18+ * elliptic curves (Weierstrass form), group operations, order, discrete logarithms
1619* linear algebra: Hermite normal form, Gram-Schmidt
17- * lattices: Babai rounding/nearest plane, lattice reduction
20+ * lattices: Hadamard ratio, Babai rounding/nearest plane algorithm , lattice reduction (Lenstra-Lenstra-Lovaz)
1821
1922* Matrix: a class for Matrices (inverse, det, reduced echelon form, etc.)
2023* Poly: a class for polynomials (division, modulo)
2124* Zmod: a class for the ring of integers modulo an integer
2225
2326Documentation can be found in the jupyter notebook
24- (currently incomplete : use the force, read the source).
27+ (mostly done, but might not contain everything : use the force, read the source).
0 commit comments