haccepted-0.1.0.0: Data structures and algorithms
Safe HaskellNone
LanguageHaskell2010

MInt

Description

Modular arithmetic

MInt is a newtype of Int for arithmetic modulo a known fixed prime. For a more general type see Mod.hs.

Instances of Eq, Num, Fractional exist for MInt. All the usual operations take O(1) time, except for recip which takes O(log m) time. An instance of Enum exists for MInt. The enum is cyclic, it wraps to 0 after m-1. Unboxed array support is available via Unbox.

Synopsis

Documentation

newtype MInt Source #

Int type for arithmetic modulo a fixed prime mm.

Constructors

MInt 

Fields

Instances

Instances details
Enum MInt Source # 
Instance details

Defined in MInt

Methods

succ :: MInt -> MInt #

pred :: MInt -> MInt #

toEnum :: Int -> MInt #

fromEnum :: MInt -> Int #

enumFrom :: MInt -> [MInt] #

enumFromThen :: MInt -> MInt -> [MInt] #

enumFromTo :: MInt -> MInt -> [MInt] #

enumFromThenTo :: MInt -> MInt -> MInt -> [MInt] #

Eq MInt Source # 
Instance details

Defined in MInt

Methods

(==) :: MInt -> MInt -> Bool #

(/=) :: MInt -> MInt -> Bool #

Fractional MInt Source # 
Instance details

Defined in MInt

Methods

(/) :: MInt -> MInt -> MInt #

recip :: MInt -> MInt #

fromRational :: Rational -> MInt #

Num MInt Source # 
Instance details

Defined in MInt

Methods

(+) :: MInt -> MInt -> MInt #

(-) :: MInt -> MInt -> MInt #

(*) :: MInt -> MInt -> MInt #

negate :: MInt -> MInt #

abs :: MInt -> MInt #

signum :: MInt -> MInt #

fromInteger :: Integer -> MInt #

Ord MInt Source # 
Instance details

Defined in MInt

Methods

compare :: MInt -> MInt -> Ordering #

(<) :: MInt -> MInt -> Bool #

(<=) :: MInt -> MInt -> Bool #

(>) :: MInt -> MInt -> Bool #

(>=) :: MInt -> MInt -> Bool #

max :: MInt -> MInt -> MInt #

min :: MInt -> MInt -> MInt #

Show MInt Source # 
Instance details

Defined in MInt

Methods

showsPrec :: Int -> MInt -> ShowS #

show :: MInt -> String #

showList :: [MInt] -> ShowS #

NFData MInt Source # 
Instance details

Defined in MInt

Methods

rnf :: MInt -> () #

Unbox MInt Source # 
Instance details

Defined in MInt

Associated Types

type Unboxed MInt Source #

type Unboxed MInt Source # 
Instance details

Defined in MInt

mm :: Int Source #

The prime modulus.