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

Safe HaskellNone
LanguageHaskell98

Algebra.ToRational

Synopsis

Documentation

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

This class allows lossless conversion from any representation of a rational to the fixed Rational type. "Lossless" means - don't do any rounding. For rounding see Algebra.RealRing. With the instances for Float and Double we acknowledge that these types actually represent rationals rather than (approximated) real numbers. However, this contradicts to the Transcendental class.

Laws that must be satisfied by instances:

 fromRational' . toRational === id

Minimal complete definition

toRational

Methods

toRational :: a -> Rational #

Lossless conversion from any representation of a rational to Rational

Instances
C Double # 
Instance details

Defined in Algebra.ToRational

C Float # 
Instance details

Defined in Algebra.ToRational

Methods

toRational :: Float -> Rational #

C Int # 
Instance details

Defined in Algebra.ToRational

Methods

toRational :: Int -> Rational #

C Int8 # 
Instance details

Defined in Algebra.ToRational

Methods

toRational :: Int8 -> Rational #

C Int16 # 
Instance details

Defined in Algebra.ToRational

Methods

toRational :: Int16 -> Rational #

C Int32 # 
Instance details

Defined in Algebra.ToRational

Methods

toRational :: Int32 -> Rational #

C Int64 # 
Instance details

Defined in Algebra.ToRational

Methods

toRational :: Int64 -> Rational #

C Integer # 
Instance details

Defined in Algebra.ToRational

C Word # 
Instance details

Defined in Algebra.ToRational

Methods

toRational :: Word -> Rational #

C Word8 # 
Instance details

Defined in Algebra.ToRational

Methods

toRational :: Word8 -> Rational #

C Word16 # 
Instance details

Defined in Algebra.ToRational

C Word32 # 
Instance details

Defined in Algebra.ToRational

C Word64 # 
Instance details

Defined in Algebra.ToRational

C T # 
Instance details

Defined in Number.Peano

Methods

toRational :: T -> Rational #

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

Defined in Number.NonNegative

Methods

toRational :: T a -> Rational #

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

Defined in Algebra.ToInteger

Methods

toRational :: T a -> Rational #

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

Defined in MathObj.Wrapper.Haskell98

Methods

toRational :: T a -> Rational #

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

Defined in Number.NonNegativeChunky

Methods

toRational :: T a -> Rational #

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

Defined in MathObj.Wrapper.NumericPrelude

Methods

toRational :: T a -> Rational #

realToField :: (C a, C b) => a -> b #

It should hold

realToField = fromRational' . toRational

but it should be much more efficient for particular pairs of types, such as converting Float to Double. This achieved by optimizer rules.