planet-mitchell-0.1.0: Planet Mitchell

Num.Ratio

Synopsis

Documentation

data Ratio a #

Rational numbers, with numerator and denominator of some Integral type.

Instances
 Available on base >=4.9Since: deepseq-1.4.3.0 Instance detailsDefined in Control.DeepSeq MethodsliftRnf :: (a -> ()) -> Ratio a -> () # Integral a => Enum (Ratio a) Since: base-2.0.1 Instance detailsDefined in GHC.Real Methodssucc :: Ratio a -> Ratio a #pred :: Ratio a -> Ratio a #toEnum :: Int -> Ratio a #fromEnum :: Ratio a -> Int #enumFrom :: Ratio a -> [Ratio a] #enumFromThen :: Ratio a -> Ratio a -> [Ratio a] #enumFromTo :: Ratio a -> Ratio a -> [Ratio a] #enumFromThenTo :: Ratio a -> Ratio a -> Ratio a -> [Ratio a] # Eq a => Eq (Ratio a) Instance detailsDefined in GHC.Real Methods(==) :: Ratio a -> Ratio a -> Bool #(/=) :: Ratio a -> Ratio a -> Bool # Integral a => Fractional (Ratio a) Since: base-2.0.1 Instance detailsDefined in GHC.Real Methods(/) :: Ratio a -> Ratio a -> Ratio a #recip :: Ratio a -> Ratio a # (Data a, Integral a) => Data (Ratio a) Since: base-4.0.0.0 Instance detailsDefined in Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Ratio a -> c (Ratio a) #gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Ratio a) #toConstr :: Ratio a -> Constr #dataTypeOf :: Ratio a -> DataType #dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Ratio a)) #dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Ratio a)) #gmapT :: (forall b. Data b => b -> b) -> Ratio a -> Ratio a #gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Ratio a -> r #gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Ratio a -> r #gmapQ :: (forall d. Data d => d -> u) -> Ratio a -> [u] #gmapQi :: Int -> (forall d. Data d => d -> u) -> Ratio a -> u #gmapM :: Monad m => (forall d. Data d => d -> m d) -> Ratio a -> m (Ratio a) #gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Ratio a -> m (Ratio a) #gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Ratio a -> m (Ratio a) # Integral a => Num (Ratio a) Since: base-2.0.1 Instance detailsDefined in GHC.Real Methods(+) :: Ratio a -> Ratio a -> Ratio a #(-) :: Ratio a -> Ratio a -> Ratio a #(*) :: Ratio a -> Ratio a -> Ratio a #negate :: Ratio a -> Ratio a #abs :: Ratio a -> Ratio a #signum :: Ratio a -> Ratio a # Integral a => Ord (Ratio a) Since: base-2.0.1 Instance detailsDefined in GHC.Real Methodscompare :: Ratio a -> Ratio a -> Ordering #(<) :: Ratio a -> Ratio a -> Bool #(<=) :: Ratio a -> Ratio a -> Bool #(>) :: Ratio a -> Ratio a -> Bool #(>=) :: Ratio a -> Ratio a -> Bool #max :: Ratio a -> Ratio a -> Ratio a #min :: Ratio a -> Ratio a -> Ratio a # (Integral a, Read a) => Read (Ratio a) Since: base-2.1 Instance detailsDefined in GHC.Read MethodsreadsPrec :: Int -> ReadS (Ratio a) #readList :: ReadS [Ratio a] # Integral a => Real (Ratio a) Since: base-2.0.1 Instance detailsDefined in GHC.Real MethodstoRational :: Ratio a -> Rational # Integral a => RealFrac (Ratio a) Since: base-2.0.1 Instance detailsDefined in GHC.Real MethodsproperFraction :: Integral b => Ratio a -> (b, Ratio a) #truncate :: Integral b => Ratio a -> b #round :: Integral b => Ratio a -> b #ceiling :: Integral b => Ratio a -> b #floor :: Integral b => Ratio a -> b # Show a => Show (Ratio a) Since: base-2.0.1 Instance detailsDefined in GHC.Real MethodsshowsPrec :: Int -> Ratio a -> ShowS #show :: Ratio a -> String #showList :: [Ratio a] -> ShowS # Integral a => Lift (Ratio a) Instance detailsDefined in Language.Haskell.TH.Syntax Methodslift :: Ratio a -> Q Exp # Hashable a => Hashable (Ratio a) Instance detailsDefined in Data.Hashable.Class MethodshashWithSalt :: Int -> Ratio a -> Int #hash :: Ratio a -> Int # (ToJSON a, Integral a) => ToJSON (Ratio a) Instance detailsDefined in Data.Aeson.Types.ToJSON MethodstoJSON :: Ratio a -> Value #toEncoding :: Ratio a -> Encoding #toJSONList :: [Ratio a] -> Value #toEncodingList :: [Ratio a] -> Encoding # (FromJSON a, Integral a) => FromJSON (Ratio a) Instance detailsDefined in Data.Aeson.Types.FromJSON MethodsparseJSON :: Value -> Parser (Ratio a) # (Storable a, Integral a) => Storable (Ratio a) Since: base-4.8.0.0 Instance detailsDefined in Foreign.Storable MethodssizeOf :: Ratio a -> Int #alignment :: Ratio a -> Int #peekElemOff :: Ptr (Ratio a) -> Int -> IO (Ratio a) #pokeElemOff :: Ptr (Ratio a) -> Int -> Ratio a -> IO () #peekByteOff :: Ptr b -> Int -> IO (Ratio a) #pokeByteOff :: Ptr b -> Int -> Ratio a -> IO () #peek :: Ptr (Ratio a) -> IO (Ratio a) #poke :: Ptr (Ratio a) -> Ratio a -> IO () # NFData a => NFData (Ratio a) Instance detailsDefined in Control.DeepSeq Methodsrnf :: Ratio a -> () # (Serialise a, Integral a) => Serialise (Ratio a) Since: serialise-0.2.0.0 Instance detailsDefined in Codec.Serialise.Class Methodsencode :: Ratio a -> Encoding #decode :: Decoder s (Ratio a) #encodeList :: [Ratio a] -> Encoding #decodeList :: Decoder s [Ratio a] # (Eq a) :=> (Eq (Ratio a)) Instance detailsDefined in Data.Constraint Methodsins :: Eq a :- Eq (Ratio a) # (Integral a) :=> (RealFrac (Ratio a)) Instance detailsDefined in Data.Constraint Methods (Integral a) :=> (Real (Ratio a)) Instance detailsDefined in Data.Constraint Methodsins :: Integral a :- Real (Ratio a) # (Integral a) :=> (Ord (Ratio a)) Instance detailsDefined in Data.Constraint Methodsins :: Integral a :- Ord (Ratio a) # (Integral a) :=> (Num (Ratio a)) Instance detailsDefined in Data.Constraint Methodsins :: Integral a :- Num (Ratio a) # (Integral a) :=> (Fractional (Ratio a)) Instance detailsDefined in Data.Constraint Methods (Integral a) :=> (Enum (Ratio a)) Instance detailsDefined in Data.Constraint Methodsins :: Integral a :- Enum (Ratio a) # (Integral a, Show a) :=> (Show (Ratio a)) Instance detailsDefined in Data.Constraint Methodsins :: (Integral a, Show a) :- Show (Ratio a) # (Integral a, Read a) :=> (Read (Ratio a)) Instance detailsDefined in Data.Constraint Methodsins :: (Integral a, Read a) :- Read (Ratio a) #

Arbitrary-precision rational numbers, represented as a ratio of two Integer values. A rational number may be constructed using the % operator.

(%) :: Integral a => a -> a -> Ratio a infixl 7 #

Forms the ratio of two integral numbers.

numerator :: Ratio a -> a #

Extract the numerator of the ratio in reduced form: the numerator and denominator have no common factor and the denominator is positive.

denominator :: Ratio a -> a #

Extract the denominator of the ratio in reduced form: the numerator and denominator have no common factor and the denominator is positive.

approxRational :: RealFrac a => a -> a -> Rational #

approxRational, applied to two real fractional numbers x and epsilon, returns the simplest rational number within epsilon of x. A rational number y is said to be simpler than another y' if

• abs (numerator y) <= abs (numerator y'), and
• denominator y <= denominator y'.

Any real interval contains a unique simplest rational; in particular, note that 0/1 is the simplest rational of all.

fromRat :: RealFloat a => Rational -> a #

Converts a Rational value into any type in class RealFloat.