Copyright | Copyright (C) 2006-2013 Bjorn Buckwalter |
---|---|
License | BSD3 |
Maintainer | bjorn.buckwalter@gmail.com |
Stability | Stable |
Portability | GHC only? |
Safe Haskell | None |
Language | Haskell98 |
Please refer to the literate Haskell code for documentation of both API and implementation.
Documentation
newtype Dimensional v d a Source
Functor Dimensionless | |
(Show d, Show a) => Show (Quantity d a) | |
Typeable (* -> * -> * -> *) Dimensional | |
Enum a => Enum (Dimensional v d a) | |
Eq a => Eq (Dimensional v d a) | |
Ord a => Ord (Dimensional v d a) |
type Unit = Dimensional DUnit Source
type Quantity = Dimensional DQuantity Source
(/~) :: Fractional a => Quantity d a -> Unit d a -> a infixl 7 Source
data Dim l m t i th n j Source
Functor Dimensionless | |
Typeable (* -> * -> * -> * -> * -> * -> * -> *) Dim | |
Div d (Dim l m t i th n j) d' => Div (DExt a x d) (Dim l m t i th n j) (DExt a x d') | |
Mul d (Dim l m t i th n j) d' => Mul (DExt a x d) (Dim l m t i th n j) (DExt a x d') | |
(NumType l, NumType m, NumType t, NumType i, NumType th, NumType n, NumType j) => Show (Dim l m t i th n j) | |
(Div l x l', Div m x m', Div t x t', Div i x i', Div th x th', Div n x n', Div j x j') => Root (Dim l m t i th n j) x (Dim l' m' t' i' th' n' j') | |
(Mul l x l', Mul m x m', Mul t x t', Mul i x i', Mul th x th', Mul n x n', Mul j x j') => Pow (Dim l m t i th n j) x (Dim l' m' t' i' th' n' j') | |
(Div (Dim l m t i th n j) d d', Negate x x') => Div (Dim l m t i th n j) (DExt a x d) (DExt a x' d') | |
Mul (Dim l m t i th n j) d d' => Mul (Dim l m t i th n j) (DExt a x d) (DExt a x d') | |
(Sum l l' l'', Sum m m' m'', Sum t t' t'', Sum i i' i'', Sum th th' th'', Sum n n' n'', Sum j j' j'') => Div (Dim l'' m'' t'' i'' th'' n'' j'') (Dim l' m' t' i' th' n' j') (Dim l m t i th n j) | |
(Sum l l' l'', Sum m m' m'', Sum t t' t'', Sum i i' i'', Sum th th' th'', Sum n n' n'', Sum j j' j'') => Mul (Dim l m t i th n j) (Dim l' m' t' i' th' n' j') (Dim l'' m'' t'' i'' th'' n'' j'') |
type Dimensionless = Quantity DOne Source
class Mul d d' d'' | d d' -> d'' Source
(Sum n n' n'', Mul d d' d'', DropZero (DExt a n'' d'') d''') => Mul (DExt a n d) (DExt a n' d') d''' | |
(Sum lh lh' lh'', Sum mh mh' mh'', Sum t t' t'') => Mul (CGSDim lh mh t) (CGSDim lh' mh' t') (CGSDim lh'' mh'' t'') | |
Mul d (Dim l m t i th n j) d' => Mul (DExt a x d) (Dim l m t i th n j) (DExt a x d') | |
Mul (Dim l m t i th n j) d d' => Mul (Dim l m t i th n j) (DExt a x d) (DExt a x d') | |
(Sum l l' l'', Sum m m' m'', Sum t t' t'', Sum i i' i'', Sum th th' th'', Sum n n' n'', Sum j j' j'') => Mul (Dim l m t i th n j) (Dim l' m' t' i' th' n' j') (Dim l'' m'' t'' i'' th'' n'' j'') |
class Div d d' d'' | d d' -> d'' Source
(Sum n'' n' n, Div d d' d'', DropZero (DExt a n'' d'') d''') => Div (DExt a n d) (DExt a n' d') d''' | |
(Sum lh lh' lh'', Sum mh mh' mh'', Sum t t' t'') => Div (CGSDim lh'' mh'' t'') (CGSDim lh' mh' t') (CGSDim lh mh t) | |
Div d (Dim l m t i th n j) d' => Div (DExt a x d) (Dim l m t i th n j) (DExt a x d') | |
(Div (Dim l m t i th n j) d d', Negate x x') => Div (Dim l m t i th n j) (DExt a x d) (DExt a x' d') | |
(Sum l l' l'', Sum m m' m'', Sum t t' t'', Sum i i' i'', Sum th th' th'', Sum n n' n'', Sum j j' j'') => Div (Dim l'' m'' t'' i'' th'' n'' j'') (Dim l' m' t' i' th' n' j') (Dim l m t i th n j) |
(*) :: (Num a, Mul d d' d'') => Dimensional v d a -> Dimensional v d' a -> Dimensional v d'' a infixl 7 Source
(/) :: (Fractional a, Div d d' d'') => Dimensional v d a -> Dimensional v d' a -> Dimensional v d'' a infixl 7 Source
(^) :: (Fractional a, Pow d n d') => Dimensional v d a -> n -> Dimensional v d' a infixr 8 Source
(^+) :: (Num a, PosType n, Pow d n d') => Dimensional v d a -> n -> Dimensional v d' a infixr 8 Source
nroot :: (Floating a, Root d n d') => n -> Dimensional v d a -> Dimensional v d' a Source
sqrt :: (Floating a, Root d Pos2 d') => Dimensional v d a -> Dimensional v d' a Source
cbrt :: (Floating a, Root d Pos3 d') => Dimensional v d a -> Dimensional v d' a Source
(^/) :: (Floating a, Root d n d') => Dimensional v d a -> n -> Dimensional v d' a infixr 8 Source
dimensionlessLength :: Num a => [Dimensional v d a] -> Dimensionless a Source
exp :: Floating a => Dimensionless a -> Dimensionless a Source
atanh :: Floating a => Dimensionless a -> Dimensionless a Source
acosh :: Floating a => Dimensionless a -> Dimensionless a Source
asinh :: Floating a => Dimensionless a -> Dimensionless a Source
tanh :: Floating a => Dimensionless a -> Dimensionless a Source
cosh :: Floating a => Dimensionless a -> Dimensionless a Source
sinh :: Floating a => Dimensionless a -> Dimensionless a Source
atan :: Floating a => Dimensionless a -> Dimensionless a Source
acos :: Floating a => Dimensionless a -> Dimensionless a Source
asin :: Floating a => Dimensionless a -> Dimensionless a Source
tan :: Floating a => Dimensionless a -> Dimensionless a Source
cos :: Floating a => Dimensionless a -> Dimensionless a Source
sin :: Floating a => Dimensionless a -> Dimensionless a Source
log :: Floating a => Dimensionless a -> Dimensionless a Source
(**) :: Floating a => Dimensionless a -> Dimensionless a -> Dimensionless a infixr 8 Source
_1 :: Num a => Dimensionless a Source
_9 :: Num a => Dimensionless a Source
_8 :: Num a => Dimensionless a Source
_7 :: Num a => Dimensionless a Source
_6 :: Num a => Dimensionless a Source
_5 :: Num a => Dimensionless a Source
_4 :: Num a => Dimensionless a Source
_3 :: Num a => Dimensionless a Source
_2 :: Num a => Dimensionless a Source
pi :: Floating a => Dimensionless a Source
tau :: Floating a => Dimensionless a Source