-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Natural number arithmetic -- @package arithmetic @version 1.0 module Arithmetic.Random randomWidth :: Int -> Random -> Natural randomOdd :: Int -> Random -> Natural randomCoprime :: Int -> Random -> (Natural, Natural) uniformInteger :: Integer -> Random -> Integer randomCoprimeInteger :: Int -> Random -> (Integer, Integer) module Arithmetic.Modular multiplyExponential :: (a -> a -> a) -> a -> a -> Natural -> a functionPower :: (a -> a) -> Natural -> a -> a normalize :: Natural -> Natural -> Natural add :: Natural -> Natural -> Natural -> Natural negate :: Natural -> Natural -> Natural subtract :: Natural -> Natural -> Natural -> Natural multiply :: Natural -> Natural -> Natural -> Natural square :: Natural -> Natural -> Natural exp :: Natural -> Natural -> Natural -> Natural exp2 :: Natural -> Natural -> Natural -> Natural module Arithmetic.Montgomery data Parameters Parameters :: Natural -> Natural -> Natural -> Natural -> Natural -> Natural -> Natural -> Parameters nParameters :: Parameters -> Natural wParameters :: Parameters -> Natural sParameters :: Parameters -> Natural kParameters :: Parameters -> Natural rParameters :: Parameters -> Natural r2Parameters :: Parameters -> Natural zParameters :: Parameters -> Natural data Montgomery Montgomery :: Parameters -> Natural -> Montgomery pMontgomery :: Montgomery -> Parameters nMontgomery :: Montgomery -> Natural align :: Natural -> Natural -> Natural customParameters :: Natural -> Natural -> Parameters alignedParameters :: Natural -> Natural -> Parameters standardParameters :: Natural -> Parameters normalize :: Parameters -> Natural -> Montgomery normalize1 :: Parameters -> Natural -> Montgomery reduce :: Parameters -> Natural -> Natural toNatural :: Montgomery -> Natural fromNatural :: Parameters -> Natural -> Montgomery zero :: Parameters -> Montgomery one :: Parameters -> Montgomery two :: Parameters -> Montgomery add :: Montgomery -> Montgomery -> Montgomery double :: Montgomery -> Montgomery negate :: Montgomery -> Montgomery subtract :: Montgomery -> Montgomery -> Montgomery multiply :: Montgomery -> Montgomery -> Montgomery square :: Montgomery -> Montgomery exp :: Montgomery -> Natural -> Montgomery exp2 :: Montgomery -> Natural -> Montgomery modexp :: Natural -> Natural -> Natural -> Natural modexp2 :: Natural -> Natural -> Natural -> Natural instance Show Parameters instance Show Montgomery module Arithmetic.Prime factorTwos :: Natural -> (Int, Natural) millerRabinWitness :: Natural -> Natural -> Bool millerRabin :: Int -> Natural -> Random -> Bool isPrime :: Natural -> Random -> Bool previousPrime :: Natural -> Random -> Natural randomPrime :: Int -> Random -> Natural