Support unsigned integral square root computations.

This commit is contained in:
2018-11-30 11:28:20 -08:00
parent 0ec5f90d8e
commit 2b9f5ea7a2
13 changed files with 13156 additions and 20 deletions

View File

@@ -39,6 +39,7 @@ testDatabase = [
(SignedShift, "sigshiftr", "signed shift right", sigshiftrTest),
(SignedShift, "sigshiftl", "signed shift left", sigshiftlTest),
(SignedSub, "sigsub", "signed subtraction", sigsubTest),
(SquareRoot, "sqrt", "square root", sqrtTest),
(EGCD, "egcd", "EGCD", egcdTest),
(ModInv, "modinv", "modular inversion", modinvTest)
]
@@ -202,6 +203,13 @@ sigsubTest size memory0 =
("c", showX c)]
in (res, c, memory2)
sqrtTest :: Test
sqrtTest size memory0 =
let (a, memory1) = generateNum memory0 "a" size
r = isqrt size a
res = Map.fromList [("a", showX a), ("r", showX r)]
in (res, r, memory1)
signedTest :: Test
signedTest size memory0 =
let (x, memory1) = genSign (generateNum memory0 "x" size)