dimensional-0.8: Statically checked physical dimensions.Source codeContentsIndex
Numeric.Units.Dimensional
PortabilityGHC only?
StabilityStable
Maintainerbjorn.buckwalter@gmail.com
Description
Please refer to the literate Haskell code for documentation of both API and implementation.
Documentation
newtype Dimensional v d a Source
Constructors
Dimensional a
show/hide Instances
Functor Dimensionless
(Show d, Show a) => Show (Quantity d a)
Eq a => Eq (Dimensional v d a)
Ord a => Ord (Dimensional v d a)
data DUnit Source
data DQuantity Source
type Unit = Dimensional DUnitSource
type Quantity = Dimensional DQuantitySource
(*~) :: Num a => a -> Unit d a -> Quantity d aSource
(/~) :: Fractional a => Quantity d a -> Unit d a -> aSource
data Dim l m t i th n j Source
show/hide Instances
DropZero (DExt a Zero (Dim l m t i th n j)) (Dim l m t i th j j)
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 DOne = Dim Zero Zero Zero Zero Zero Zero ZeroSource
type DLength = Dim Pos1 Zero Zero Zero Zero Zero ZeroSource
type DMass = Dim Zero Pos1 Zero Zero Zero Zero ZeroSource
type DTime = Dim Zero Zero Pos1 Zero Zero Zero ZeroSource
type DElectricCurrent = Dim Zero Zero Zero Pos1 Zero Zero ZeroSource
type DThermodynamicTemperature = Dim Zero Zero Zero Zero Pos1 Zero ZeroSource
type DAmountOfSubstance = Dim Zero Zero Zero Zero Zero Pos1 ZeroSource
type DLuminousIntensity = Dim Zero Zero Zero Zero Zero Zero Pos1Source
type Dimensionless = Quantity DOneSource
type Length = Quantity DLengthSource
type Mass = Quantity DMassSource
type Time = Quantity DTimeSource
type ElectricCurrent = Quantity DElectricCurrentSource
type ThermodynamicTemperature = Quantity DThermodynamicTemperatureSource
type AmountOfSubstance = Quantity DAmountOfSubstanceSource
type LuminousIntensity = Quantity DLuminousIntensitySource
class Mul d d' d'' | d d' -> d''Source
show/hide Instances
(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 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')
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
show/hide Instances
(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 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')
(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)
class NumType x => Pow d x d' | d x -> d'Source
show/hide Instances
(Mul n x n', Pow d x d') => Pow (DExt a n d) x (DExt a n' d')
(Mul lh x lh', Mul mh x mh', Mul t x t') => Pow (CGSDim lh mh t) x (CGSDim lh' mh' t')
(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')
class NonZero x => Root d x d' | d x -> d'Source
show/hide Instances
(Div n x n', Root d x d') => Root (DExt a n d) x (DExt a n' d')
(Div lh x lh', Div mh x mh', Div t x t') => Root (CGSDim lh mh t) x (CGSDim lh' mh' t')
(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')
(*) :: (Num a, Mul d d' d'') => Dimensional v d a -> Dimensional v d' a -> Dimensional v d'' aSource
(/) :: (Fractional a, Div d d' d'') => Dimensional v d a -> Dimensional v d' a -> Dimensional v d'' aSource
(^) :: (Fractional a, Pow d n d') => Dimensional v d a -> n -> Dimensional v d' aSource
(^+) :: (Num a, PosType n, Pow d n d') => Dimensional v d a -> n -> Dimensional v d' aSource
negate :: Num a => Quantity d a -> Quantity d aSource
(+) :: Num a => Quantity d a -> Quantity d a -> Quantity d aSource
(-) :: Num a => Quantity d a -> Quantity d a -> Quantity d aSource
abs :: Num a => Quantity d a -> Quantity d aSource
nroot :: (Floating a, Root d n d') => n -> Dimensional v d a -> Dimensional v d' aSource
sqrt :: (Floating a, Root d Pos2 d') => Dimensional v d a -> Dimensional v d' aSource
cbrt :: (Floating a, Root d Pos3 d') => Dimensional v d a -> Dimensional v d' aSource
(^/) :: (Floating a, Root d n d') => Dimensional v d a -> n -> Dimensional v d' aSource
(*~~) :: Num a => [a] -> Unit d a -> [Quantity d a]Source
(/~~) :: Fractional a => [Quantity d a] -> Unit d a -> [a]Source
sum :: forall d a. Num a => [Quantity d a] -> Quantity d aSource
dimensionlessLength :: Num a => [Dimensional v d a] -> Dimensionless aSource
log :: Floating a => Dimensionless a -> Dimensionless aSource
sin :: Floating a => Dimensionless a -> Dimensionless aSource
cos :: Floating a => Dimensionless a -> Dimensionless aSource
tan :: Floating a => Dimensionless a -> Dimensionless aSource
asin :: Floating a => Dimensionless a -> Dimensionless aSource
acos :: Floating a => Dimensionless a -> Dimensionless aSource
atan :: Floating a => Dimensionless a -> Dimensionless aSource
sinh :: Floating a => Dimensionless a -> Dimensionless aSource
cosh :: Floating a => Dimensionless a -> Dimensionless aSource
tanh :: Floating a => Dimensionless a -> Dimensionless aSource
asinh :: Floating a => Dimensionless a -> Dimensionless aSource
acosh :: Floating a => Dimensionless a -> Dimensionless aSource
atanh :: Floating a => Dimensionless a -> Dimensionless aSource
exp :: Floating a => Dimensionless a -> Dimensionless aSource
(**) :: Floating a => Dimensionless a -> Dimensionless a -> Dimensionless aSource
atan2 :: RealFloat a => Quantity d a -> Quantity d a -> Dimensionless aSource
one :: Num a => Unit DOne aSource
_1 :: Num a => Dimensionless aSource
_2 :: Num a => Dimensionless aSource
_3 :: Num a => Dimensionless aSource
_4 :: Num a => Dimensionless aSource
_0 :: Num a => Dimensionless aSource
pi :: Floating a => Dimensionless aSource
dimUnit :: NumType n => String -> n -> Maybe StringSource
prefix :: Num a => a -> Unit d a -> Unit d aSource
Produced by Haddock version 2.4.2