experiment
This commit is contained in:
parent
eff690198a
commit
425f356ce1
1 changed files with 8 additions and 9 deletions
17
app/Main.hs
17
app/Main.hs
|
|
@ -18,15 +18,9 @@ main = do
|
||||||
putStrLn $ "Karatsuba f * g: " <> show (normalize $ karatsubaMult f g)
|
putStrLn $ "Karatsuba f * g: " <> show (normalize $ karatsubaMult f g)
|
||||||
|
|
||||||
putStrLn ""
|
putStrLn ""
|
||||||
-- experimentFor 250
|
experimentFor 512
|
||||||
-- experimentFor 500
|
experimentFor 1024
|
||||||
-- experimentFor 1000
|
experimentFor 2048
|
||||||
-- karatsubaFor 2000
|
|
||||||
-- karatsubaFor 4000
|
|
||||||
|
|
||||||
fastKaratsubaFor 512
|
|
||||||
fastKaratsubaFor 1024
|
|
||||||
fastKaratsubaFor 2048
|
|
||||||
fastKaratsubaFor 4096
|
fastKaratsubaFor 4096
|
||||||
fastKaratsubaFor 8192
|
fastKaratsubaFor 8192
|
||||||
fastKaratsubaFor 16384
|
fastKaratsubaFor 16384
|
||||||
|
|
@ -43,7 +37,10 @@ main = do
|
||||||
_ <- timeIt $ evaluate (f * g)
|
_ <- timeIt $ evaluate (f * g)
|
||||||
putStrLn "Karatsuba:"
|
putStrLn "Karatsuba:"
|
||||||
_ <- timeIt $ evaluate (karatsubaMult f g)
|
_ <- timeIt $ evaluate (karatsubaMult f g)
|
||||||
|
putStrLn "Fast Karatsuba:"
|
||||||
|
_ <- timeIt $ evaluate (karatsuba 0 (+) (-) (*) (unwrapPoly f) (unwrapPoly g))
|
||||||
putStrLn "Finished"
|
putStrLn "Finished"
|
||||||
|
putStrLn ""
|
||||||
|
|
||||||
karatsubaFor n = do
|
karatsubaFor n = do
|
||||||
setStdGen $ mkStdGen 10
|
setStdGen $ mkStdGen 10
|
||||||
|
|
@ -54,6 +51,7 @@ main = do
|
||||||
putStrLn "Karatsuba:"
|
putStrLn "Karatsuba:"
|
||||||
_ <- timeIt $ evaluate (karatsubaMult f g)
|
_ <- timeIt $ evaluate (karatsubaMult f g)
|
||||||
putStrLn "Finished"
|
putStrLn "Finished"
|
||||||
|
putStrLn ""
|
||||||
|
|
||||||
fastKaratsubaFor n = do
|
fastKaratsubaFor n = do
|
||||||
setStdGen $ mkStdGen 10
|
setStdGen $ mkStdGen 10
|
||||||
|
|
@ -64,3 +62,4 @@ main = do
|
||||||
putStrLn "Fast Karatsuba:"
|
putStrLn "Fast Karatsuba:"
|
||||||
_ <- timeIt $ evaluate (karatsuba 0 (+) (-) (*) (unwrapPoly f) (unwrapPoly g))
|
_ <- timeIt $ evaluate (karatsuba 0 (+) (-) (*) (unwrapPoly f) (unwrapPoly g))
|
||||||
putStrLn "Finished"
|
putStrLn "Finished"
|
||||||
|
putStrLn ""
|
||||||
|
|
|
||||||
Reference in a new issue