diff --git a/HaskellMath.hs b/HaskellMath.hs new file mode 100644 index 0000000..6991d27 --- /dev/null +++ b/HaskellMath.hs @@ -0,0 +1,5 @@ + + +import Primes.SoloveyStrassen (soloveyStrassen) +import Primes.MillerRabin (millerRabin) +import Primes.FermatPrimeTest (fermatPrimeTest) diff --git a/README.md b/README.md index 07061ae..63836e4 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,24 @@ # haskell-math -## Modular square roots algorithms +## running project from CLI +``` +$ ghci -i./src +ghci> :load HaskellMath.hs +``` -### Tonelli Shanks -file: `TonelliShanks.hs` +## algorithms -## primality test algorithms +### Modular square roots algorithms -### Fermat's prime test -file: `fermat-prime-test.hs` ++ Tonelli Shanks -### Miller Rabin's prime test -file: `miller-rabin-prime-test.hs` +### primality test algorithms -### Solovey Strassen's prime test -file: `SoloveyStrassen.hs` ++ Fermat's prime test ++ Miller Rabin's prime test ++ Solovey Strassen's prime test -## factorization algorithms +### factorization algorithms -### Fermat's factorization -file: `fermat-factorization.hs` - -### Pollard's p-1 -file: `PollardPminus1.hs` ++ Fermat's factorization ++ Pollard's p-1 diff --git a/PollardPminus1.hs b/src/Factorization/PollardPminus1.hs similarity index 100% rename from PollardPminus1.hs rename to src/Factorization/PollardPminus1.hs diff --git a/fermat-factorization.hs b/src/Factorization/fermat-factorization.hs similarity index 100% rename from fermat-factorization.hs rename to src/Factorization/fermat-factorization.hs diff --git a/ModularArithmeticUtils.hs b/src/ModularArithmeticUtils.hs similarity index 100% rename from ModularArithmeticUtils.hs rename to src/ModularArithmeticUtils.hs diff --git a/fermat-prime-test.hs b/src/Primes/FermatPrimeTest.hs similarity index 87% rename from fermat-prime-test.hs rename to src/Primes/FermatPrimeTest.hs index ec99576..74c8aeb 100644 --- a/fermat-prime-test.hs +++ b/src/Primes/FermatPrimeTest.hs @@ -1,3 +1,5 @@ +module Primes.FermatPrimeTest (fermatPrimeTest) where + import System.Random (randomRIO) import ModularArithmeticUtils (modExp) diff --git a/miller-rabin-prime-test.hs b/src/Primes/MillerRabin.hs similarity index 94% rename from miller-rabin-prime-test.hs rename to src/Primes/MillerRabin.hs index 8a515ab..3c25e64 100644 --- a/miller-rabin-prime-test.hs +++ b/src/Primes/MillerRabin.hs @@ -1,3 +1,5 @@ +module Primes.MillerRabin (millerRabin) where + import System.Random (randomRIO) import ModularArithmeticUtils (modExp, factorOutTwos) diff --git a/SoloveyStrassen.hs b/src/Primes/SoloveyStrassen.hs similarity index 91% rename from SoloveyStrassen.hs rename to src/Primes/SoloveyStrassen.hs index 5feb925..e15ae45 100644 --- a/SoloveyStrassen.hs +++ b/src/Primes/SoloveyStrassen.hs @@ -1,4 +1,4 @@ -module SoloveyStrassen (soloveyStrassen) where +module Primes.SoloveyStrassen (soloveyStrassen) where import ModularArithmeticUtils (modExp, jacobi) import System.Random (randomRIO) diff --git a/TonelliShanks.hs b/src/TonelliShanks.hs similarity index 100% rename from TonelliShanks.hs rename to src/TonelliShanks.hs diff --git a/Utils.hs b/src/Utils.hs similarity index 100% rename from Utils.hs rename to src/Utils.hs diff --git a/test/test.hs b/test/test.hs new file mode 100644 index 0000000..e69de29