Division! (With tests)
This commit is contained in:
@@ -13,7 +13,8 @@ testTypes = [("addition", addTest),
|
||||
("subtraction", subTest),
|
||||
("multiplication", mulTest),
|
||||
("expandingmul", expmulTest),
|
||||
("squaring", squareTest)
|
||||
("squaring", squareTest),
|
||||
("division", divTest)
|
||||
]
|
||||
|
||||
bitSizes :: [Int]
|
||||
@@ -104,6 +105,19 @@ squareTest bitsize gen0 = (res, gen1)
|
||||
res = Map.fromList [("a", showHex a' ""),
|
||||
("r", showHex r "")]
|
||||
|
||||
divTest :: Int -> StdGen -> (Map String String, StdGen)
|
||||
divTest bitsize gen0 = (res, gen2)
|
||||
where
|
||||
(a, gen1) = random gen0
|
||||
(b, gen2) = random gen1
|
||||
a' = a .&. mask bitsize
|
||||
b' = b .&. mask bitsize
|
||||
(q, r) = divMod a' b'
|
||||
res = Map.fromList [("a", showHex a' ""),
|
||||
("b", showHex b' ""),
|
||||
("q", showHex q ""),
|
||||
("r", showHex r "")]
|
||||
|
||||
log :: String -> IO ()
|
||||
log str =
|
||||
do putStr str
|
||||
|
||||
4000
tests/math/divisionU1024.test
Normal file
4000
tests/math/divisionU1024.test
Normal file
File diff suppressed because it is too large
Load Diff
4000
tests/math/divisionU15360.test
Normal file
4000
tests/math/divisionU15360.test
Normal file
File diff suppressed because it is too large
Load Diff
4000
tests/math/divisionU192.test
Normal file
4000
tests/math/divisionU192.test
Normal file
File diff suppressed because it is too large
Load Diff
4000
tests/math/divisionU2048.test
Normal file
4000
tests/math/divisionU2048.test
Normal file
File diff suppressed because it is too large
Load Diff
4000
tests/math/divisionU256.test
Normal file
4000
tests/math/divisionU256.test
Normal file
File diff suppressed because it is too large
Load Diff
4000
tests/math/divisionU3072.test
Normal file
4000
tests/math/divisionU3072.test
Normal file
File diff suppressed because it is too large
Load Diff
4000
tests/math/divisionU384.test
Normal file
4000
tests/math/divisionU384.test
Normal file
File diff suppressed because it is too large
Load Diff
4000
tests/math/divisionU4096.test
Normal file
4000
tests/math/divisionU4096.test
Normal file
File diff suppressed because it is too large
Load Diff
4000
tests/math/divisionU512.test
Normal file
4000
tests/math/divisionU512.test
Normal file
File diff suppressed because it is too large
Load Diff
4000
tests/math/divisionU576.test
Normal file
4000
tests/math/divisionU576.test
Normal file
File diff suppressed because it is too large
Load Diff
4000
tests/math/divisionU8192.test
Normal file
4000
tests/math/divisionU8192.test
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user