-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Natural number arithmetic -- -- This package implements a library of natural number arithmetic -- functions, including Montgomery multiplication and continued -- fractions. @package arithmetic @version 1.1 module Arithmetic.Smooth factorOut :: Natural -> Natural -> Maybe (Natural, Natural) factorList :: [Natural] -> Natural -> ([(Natural, Natural)], Natural) factorBase :: Natural -> Natural -> ([(Natural, Natural)], Natural) multiplyBase :: ([(Natural, Natural)], Natural) -> Natural newtype Smooth Smooth :: ([(Natural, Natural)], Natural) -> Smooth [unSmooth] :: Smooth -> ([(Natural, Natural)], Natural) fromNatural :: Natural -> Natural -> Smooth toNatural :: Smooth -> Natural factoring :: Smooth -> Maybe [(Natural, Natural)] next :: Natural -> Natural -> Smooth instance GHC.Classes.Ord Arithmetic.Smooth.Smooth instance GHC.Classes.Eq Arithmetic.Smooth.Smooth instance GHC.Show.Show Arithmetic.Smooth.Smooth 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 invert :: Natural -> Natural -> Maybe Natural divide :: Natural -> Natural -> Natural -> Maybe 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 GHC.Show.Show Arithmetic.Montgomery.Montgomery instance GHC.Show.Show Arithmetic.Montgomery.Parameters 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 module Arithmetic.ContinuedFraction newtype ContinuedFraction ContinuedFraction :: (Natural, [Natural]) -> ContinuedFraction [unContinuedFraction] :: ContinuedFraction -> (Natural, [Natural]) fromNatural :: Natural -> ContinuedFraction goldenRatio :: ContinuedFraction naturalLogarithmBase :: ContinuedFraction convergentsFn :: (Natural -> a) -> (a -> a -> a) -> (a -> a -> a) -> [Natural] -> a -> a -> [a] numerators :: (Natural -> a) -> (a -> a -> a) -> (a -> a -> a) -> ContinuedFraction -> [a] denominators :: (Natural -> a) -> (a -> a -> a) -> (a -> a -> a) -> ContinuedFraction -> [a] convergents :: (Natural -> a) -> (a -> a -> a) -> (a -> a -> a) -> (a -> a -> a) -> ContinuedFraction -> [a] unstableConvergents :: Eq a => [a] -> [a] fractionalConvergents :: Fractional a => ContinuedFraction -> [a] rationalConvergents :: ContinuedFraction -> [Rational] toDouble :: ContinuedFraction -> Double fromRealFrac :: RealFrac a => a -> ContinuedFraction invert :: ContinuedFraction -> Maybe ContinuedFraction instance GHC.Classes.Eq Arithmetic.ContinuedFraction.ContinuedFraction instance GHC.Show.Show Arithmetic.ContinuedFraction.ContinuedFraction module Arithmetic.SquareRoot floor :: Natural -> Natural ceiling :: Natural -> Natural continuedFraction :: Natural -> ContinuedFraction continuedFractionPeriodic :: Natural -> [Natural] continuedFractionPeriodicTail :: Natural -> Natural -> [Natural]