experiment

This commit is contained in:
Abastro 2025-03-30 00:19:22 +09:00
parent eff690198a
commit 425f356ce1

View file

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