numeric-prelude-0.4.3.1: An experimental alternative hierarchy of numeric type classes

Safe HaskellSafe
LanguageHaskell98

Algebra.RealIntegral

Description

Generally before using quot and rem, think twice. In most cases divMod and friends are the right choice, because they fulfill more of the wanted properties. On some systems quot and rem are more efficient and if you only use positive numbers, you may be happy with them. But we cannot warrant the efficiency advantage.

See also: Daan Leijen: Division and Modulus for Computer Scientists http://www.cs.uu.nl/%7Edaan/download/papers/divmodnote-letter.pdf, http://www.haskell.org/pipermail/haskell-cafe/2007-August/030394.html

Synopsis
  • class (C a, C a, Ord a, C a) => C a where

    Documentation

    class (C a, C a, Ord a, C a) => C a where #

    Remember that divMod does not specify exactly what a quot b should be, mainly because there is no sensible way to define it in general. For an instance of Algebra.RealIntegral.C a, it is expected that a quot b will round towards 0 and a div b will round towards minus infinity.

    Minimal definition: nothing required

    Methods

    quot :: a -> a -> a infixl 7 #

    rem :: a -> a -> a infixl 7 #

    quotRem :: a -> a -> (a, a) #

    Instances
    C Int # 
    Instance details

    Defined in Algebra.RealIntegral

    Methods

    quot :: Int -> Int -> Int #

    rem :: Int -> Int -> Int #

    quotRem :: Int -> Int -> (Int, Int) #

    C Int8 # 
    Instance details

    Defined in Algebra.RealIntegral

    Methods

    quot :: Int8 -> Int8 -> Int8 #

    rem :: Int8 -> Int8 -> Int8 #

    quotRem :: Int8 -> Int8 -> (Int8, Int8) #

    C Int16 # 
    Instance details

    Defined in Algebra.RealIntegral

    Methods

    quot :: Int16 -> Int16 -> Int16 #

    rem :: Int16 -> Int16 -> Int16 #

    quotRem :: Int16 -> Int16 -> (Int16, Int16) #

    C Int32 # 
    Instance details

    Defined in Algebra.RealIntegral

    Methods

    quot :: Int32 -> Int32 -> Int32 #

    rem :: Int32 -> Int32 -> Int32 #

    quotRem :: Int32 -> Int32 -> (Int32, Int32) #

    C Int64 # 
    Instance details

    Defined in Algebra.RealIntegral

    Methods

    quot :: Int64 -> Int64 -> Int64 #

    rem :: Int64 -> Int64 -> Int64 #

    quotRem :: Int64 -> Int64 -> (Int64, Int64) #

    C Integer # 
    Instance details

    Defined in Algebra.RealIntegral

    C Word # 
    Instance details

    Defined in Algebra.RealIntegral

    Methods

    quot :: Word -> Word -> Word #

    rem :: Word -> Word -> Word #

    quotRem :: Word -> Word -> (Word, Word) #

    C Word8 # 
    Instance details

    Defined in Algebra.RealIntegral

    Methods

    quot :: Word8 -> Word8 -> Word8 #

    rem :: Word8 -> Word8 -> Word8 #

    quotRem :: Word8 -> Word8 -> (Word8, Word8) #

    C Word16 # 
    Instance details

    Defined in Algebra.RealIntegral

    C Word32 # 
    Instance details

    Defined in Algebra.RealIntegral

    C Word64 # 
    Instance details

    Defined in Algebra.RealIntegral

    C T # 
    Instance details

    Defined in Number.Peano

    Methods

    quot :: T -> T -> T #

    rem :: T -> T -> T #

    quotRem :: T -> T -> (T, T) #

    C a => C (T a) # 
    Instance details

    Defined in Number.NonNegative

    Methods

    quot :: T a -> T a -> T a #

    rem :: T a -> T a -> T a #

    quotRem :: T a -> T a -> (T a, T a) #

    Integral a => C (T a) # 
    Instance details

    Defined in MathObj.Wrapper.Haskell98

    Methods

    quot :: T a -> T a -> T a #

    rem :: T a -> T a -> T a #

    quotRem :: T a -> T a -> (T a, T a) #

    (C a, C a) => C (T a) # 
    Instance details

    Defined in Number.NonNegativeChunky

    Methods

    quot :: T a -> T a -> T a #

    rem :: T a -> T a -> T a #

    quotRem :: T a -> T a -> (T a, T a) #

    C a => C (T a) # 
    Instance details

    Defined in MathObj.Wrapper.NumericPrelude

    Methods

    quot :: T a -> T a -> T a #

    rem :: T a -> T a -> T a #

    quotRem :: T a -> T a -> (T a, T a) #