From ada11a25d22d032667ac6cd21d8fa4cda8471e64 Mon Sep 17 00:00:00 2001 From: Sam HADOW Date: Sun, 11 Jan 2026 11:32:21 +0100 Subject: [PATCH] restructure project --- HaskellMath.hs | 5 -- app/Main.hs | 7 +++ haskell-math.cabal | 50 +++++++++++++++++++ src/Primes.hs | 5 ++ ...{SoloveyStrassen.hs => SolovayStrassen.hs} | 6 +-- test/Main.hs | 4 ++ test/test.hs | 0 7 files changed, 69 insertions(+), 8 deletions(-) delete mode 100644 HaskellMath.hs create mode 100644 app/Main.hs create mode 100644 haskell-math.cabal create mode 100644 src/Primes.hs rename src/Primes/{SoloveyStrassen.hs => SolovayStrassen.hs} (80%) create mode 100644 test/Main.hs delete mode 100644 test/test.hs diff --git a/HaskellMath.hs b/HaskellMath.hs deleted file mode 100644 index 6991d27..0000000 --- a/HaskellMath.hs +++ /dev/null @@ -1,5 +0,0 @@ - - -import Primes.SoloveyStrassen (soloveyStrassen) -import Primes.MillerRabin (millerRabin) -import Primes.FermatPrimeTest (fermatPrimeTest) diff --git a/app/Main.hs b/app/Main.hs new file mode 100644 index 0000000..3f9f99b --- /dev/null +++ b/app/Main.hs @@ -0,0 +1,7 @@ +module Main where + +import qualified Primes () + +main :: IO () +main = do + putStrLn "unimplemented" diff --git a/haskell-math.cabal b/haskell-math.cabal new file mode 100644 index 0000000..3320aa0 --- /dev/null +++ b/haskell-math.cabal @@ -0,0 +1,50 @@ +cabal-version: 3.4 +name: haskell-math +version: 0.1.0.0 +-- synopsis: +-- description: +license: BSD-3-Clause +license-file: LICENSE +author: Sam HADOW +maintainer: sam.hadow@inbox.lv +category: Math +build-type: Simple +extra-doc-files: README.md + +-- extra-source-files: + +common warnings + ghc-options: -Wall + +library + import: warnings + exposed-modules: + Primes + other-modules: + Primes.MillerRabin + Primes.SolovayStrassen + ModularArithmeticUtils + build-depends: + base ^>=4.18.2.1, + random ^>=1.2 + hs-source-dirs: src + default-language: GHC2021 + +executable haskell-math + import: warnings + main-is: Main.hs + build-depends: + base ^>=4.18.2.1, + haskell-math + hs-source-dirs: app + default-language: GHC2021 + +test-suite haskell-math-test + import: warnings + default-language: GHC2021 + type: exitcode-stdio-1.0 + hs-source-dirs: test + main-is: Main.hs + build-depends: + base ^>=4.18.2.1, + haskell-math diff --git a/src/Primes.hs b/src/Primes.hs new file mode 100644 index 0000000..08ec9fc --- /dev/null +++ b/src/Primes.hs @@ -0,0 +1,5 @@ +module Primes ( fermatPrimeTest, millerRabin, solovayStrassen) where + +import Primes.FermatPrimeTest +import Primes.MillerRabin +import Primes.SolovayStrassen diff --git a/src/Primes/SoloveyStrassen.hs b/src/Primes/SolovayStrassen.hs similarity index 80% rename from src/Primes/SoloveyStrassen.hs rename to src/Primes/SolovayStrassen.hs index e15ae45..9a5cee5 100644 --- a/src/Primes/SoloveyStrassen.hs +++ b/src/Primes/SolovayStrassen.hs @@ -1,11 +1,11 @@ -module Primes.SoloveyStrassen (soloveyStrassen) where +module Primes.SolovayStrassen (solovayStrassen) where import ModularArithmeticUtils (modExp, jacobi) import System.Random (randomRIO) -soloveyStrassen :: Integer -> Integer -> IO Bool -soloveyStrassen n k +solovayStrassen :: Integer -> Integer -> IO Bool +solovayStrassen n k | n < 2 = return False | n == 2 = return True | even n = return False diff --git a/test/Main.hs b/test/Main.hs new file mode 100644 index 0000000..3e2059e --- /dev/null +++ b/test/Main.hs @@ -0,0 +1,4 @@ +module Main (main) where + +main :: IO () +main = putStrLn "Test suite not yet implemented." diff --git a/test/test.hs b/test/test.hs deleted file mode 100644 index e69de29..0000000