diff options
author | Kavon Farvardin <kavon@farvard.in> | 2018-09-23 15:29:37 -0500 |
---|---|---|
committer | Kavon Farvardin <kavon@farvard.in> | 2018-09-23 15:29:37 -0500 |
commit | 84c2ad99582391005b5e873198b15e9e9eb4f78d (patch) | |
tree | caa8c2f2ec7e97fbb4977263c6817c9af5025cf4 /testsuite/tests/lib/integer/integerGmpInternals.hs | |
parent | 8ddb47cfcf5776e9a3c55fd37947c8a95e00fa12 (diff) | |
parent | e68b439fe5de61b9a2ca51af472185c62ccb8b46 (diff) | |
download | haskell-wip/T13904.tar.gz |
update to current master againwip/T13904
Diffstat (limited to 'testsuite/tests/lib/integer/integerGmpInternals.hs')
-rw-r--r-- | testsuite/tests/lib/integer/integerGmpInternals.hs | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/testsuite/tests/lib/integer/integerGmpInternals.hs b/testsuite/tests/lib/integer/integerGmpInternals.hs index 628f8e00fc..e45c6f4a48 100644 --- a/testsuite/tests/lib/integer/integerGmpInternals.hs +++ b/testsuite/tests/lib/integer/integerGmpInternals.hs @@ -20,13 +20,11 @@ import qualified GHC.Integer.GMP.Internals as I recipModInteger :: Integer -> Integer -> Integer recipModInteger = I.recipModInteger --- FIXME: Lacks GMP2 version gcdExtInteger :: Integer -> Integer -> (Integer, Integer) gcdExtInteger a b = case I.gcdExtInteger a b of (# g, s #) -> (g, s) --- FIXME: Lacks GMP2 version powModSecInteger :: Integer -> Integer -> Integer -> Integer -powModSecInteger = powModInteger +powModSecInteger = I.powModSecInteger powModInteger :: Integer -> Integer -> Integer -> Integer powModInteger = I.powModInteger @@ -81,14 +79,36 @@ main = do print $ powModInteger b e m print $ powModInteger b e (m-1) print $ powModSecInteger b e (m-1) + + putStrLn "\n# gcdExtInteger" print $ gcdExtInteger b e print $ gcdExtInteger e b print $ gcdExtInteger x y print $ gcdExtInteger y x + print $ gcdExtInteger x (-y) + print $ gcdExtInteger (-x) y + print $ gcdExtInteger (-x) (-y) + + -- see Trac #15350 + do + let a = 2 + b = 2^65 + 1 + print $ gcdExtInteger a b + print $ gcdExtInteger a (-b) + print $ gcdExtInteger (-a) b + print $ gcdExtInteger (-a) (-b) + print $ gcdExtInteger b a + print $ gcdExtInteger b (-a) + print $ gcdExtInteger (-b) a + print $ gcdExtInteger (-b) (-a) + + putStrLn "\n# powInteger" print $ powInteger 12345 0 print $ powInteger 12345 1 print $ powInteger 12345 30 - print $ [ (x,i) | x <- [0..71], let i = recipModInteger x (2*3*11*11*17*17), i /= 0 ] + print $ [ (x,i) | x <- [-7..71], let i = recipModInteger x (2*3*11*11*17*17), i /= 0 ] + + putStrLn "\n# nextPrimeInteger" print $ I.nextPrimeInteger b print $ I.nextPrimeInteger e print $ [ k | k <- [ 0 .. 200 ], S# (I.testPrimeInteger k 25#) `elem` [1,2] ] |