restructure project

This commit is contained in:
2026-01-11 11:32:21 +01:00
parent 1bd58d27d7
commit ada11a25d2
7 changed files with 69 additions and 8 deletions

View File

@@ -1,5 +0,0 @@
import Primes.SoloveyStrassen (soloveyStrassen)
import Primes.MillerRabin (millerRabin)
import Primes.FermatPrimeTest (fermatPrimeTest)

7
app/Main.hs Normal file
View File

@@ -0,0 +1,7 @@
module Main where
import qualified Primes ()
main :: IO ()
main = do
putStrLn "unimplemented"

50
haskell-math.cabal Normal file
View File

@@ -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

5
src/Primes.hs Normal file
View File

@@ -0,0 +1,5 @@
module Primes ( fermatPrimeTest, millerRabin, solovayStrassen) where
import Primes.FermatPrimeTest
import Primes.MillerRabin
import Primes.SolovayStrassen

View File

@@ -1,11 +1,11 @@
module Primes.SoloveyStrassen (soloveyStrassen) where module Primes.SolovayStrassen (solovayStrassen) where
import ModularArithmeticUtils (modExp, jacobi) import ModularArithmeticUtils (modExp, jacobi)
import System.Random (randomRIO) import System.Random (randomRIO)
soloveyStrassen :: Integer -> Integer -> IO Bool solovayStrassen :: Integer -> Integer -> IO Bool
soloveyStrassen n k solovayStrassen n k
| n < 2 = return False | n < 2 = return False
| n == 2 = return True | n == 2 = return True
| even n = return False | even n = return False

4
test/Main.hs Normal file
View File

@@ -0,0 +1,4 @@
module Main (main) where
main :: IO ()
main = putStrLn "Test suite not yet implemented."

View File