Division! (With tests)

This commit is contained in:
2018-06-04 21:36:03 -07:00
parent eae2ea49a9
commit 72a5c4568e
14 changed files with 44265 additions and 1 deletions

View File

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

4000
tests/math/divisionU192.test Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

4000
tests/math/divisionU256.test Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

4000
tests/math/divisionU384.test Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

4000
tests/math/divisionU512.test Normal file

File diff suppressed because it is too large Load Diff

4000
tests/math/divisionU576.test Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff