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

Safe HaskellNone

Number.DimensionTerm

Contents

Description

Synopsis

Number type

newtype T u a Source

Constructors

Cons a 

Instances

(C u, C a b) => C a (T u b) 
(IsScalar u, C a b) => C a (T u b) 
Eq a => Eq (T u a) 
Ord a => Ord (T u a) 
(C u, Show a) => Show (T u a) 
NFData a => NFData (T u a) 
(C u, Random a) => Random (T u a) 
(C u, C a) => C (T u a) 
(IsScalar u, C a) => C (T u a) 
(IsScalar u, C a) => C (T u a) 

fromNumberWithDimension :: C u => u -> a -> T u aSource

toNumberWithDimension :: C u => u -> T u a -> aSource

(&*&) :: (C u, C v, C a) => T u a -> T v a -> T (Mul u v) aSource

(&/&) :: (C u, C v, C a) => T u a -> T v a -> T (Mul u (Recip v)) aSource

mulToScalar :: (C u, C a) => T u a -> T (Recip u) a -> aSource

divToScalar :: (C u, C a) => T u a -> T u a -> aSource

cancelToScalar :: C u => T (Mul u (Recip u)) a -> aSource

recip :: (C u, C a) => T u a -> T (Recip u) aSource

unrecip :: (C u, C a) => T (Recip u) a -> T u aSource

sqr :: (C u, C a) => T u a -> T (Sqr u) aSource

sqrt :: (C u, C a) => T (Sqr u) a -> T u aSource

abs :: (C u, C a) => T u a -> T u aSource

absSignum :: (C u, C a) => T u a -> (T u a, a)Source

scale :: (C u, C a) => a -> T u a -> T u aSource

(*&) :: (C u, C a) => a -> T u a -> T u aSource

rewriteDimension :: (C u, C v) => (u -> v) -> T u a -> T v aSource

Example constructors

type Scalar a = T Scalar aSource

type Length a = T Length aSource

type Time a = T Time aSource

type Mass a = T Mass aSource

type Charge a = T Charge aSource

type Angle a = T Angle aSource

time :: a -> Time aSource

mass :: a -> Mass aSource

angle :: a -> Angle aSource