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

Portabilitygeneric instances
Stabilityprovisional
Maintainernumericprelude@henning-thielemann.de

Number.Physical

Description

Numeric values combined with abstract Physical Units

Synopsis

Documentation

data T i a Source

A Physics.Quantity.Value.T combines a numeric value with a physical unit.

Constructors

Cons (T i) a 

Instances

(Ord i, C a v) => C a (T i v) 
(Ord i, C a v) => C a (T i v) 
C a v => C a (T i v) 
Monad (T i) 
Functor (T i) 
Ord i => C (T i) 
(Eq i, Eq a) => Eq (T i a) 
(Ord i, Ord a) => Ord (T i a) 
(Ord i, Enum i, Show a) => Show (T i a) 
(Ord i, C a) => C (T i a) 
C v => C (T a v) 
(Ord i, C a) => C (T i a) 
(Ord i, C a) => C (T i a) 
(Ord i, C a) => C (T i a) 
(Ord i, C a) => C (T i a) 
(Ord i, C a) => C (T i a) 

quantity :: (Ord i, Enum i, C a) => [Int] -> a -> T i aSource

Construct a physical value from a numeric value and the full vector representation of a unit.

isScalar :: T i a -> BoolSource

Test for the neutral Unit.T. Also a zero has a unit!

lift :: (a -> b) -> T i a -> T i bSource

apply a function to the numeric value while preserving the unit

lift2 :: Eq i => String -> (a -> b -> c) -> T i a -> T i b -> T i cSource

lift2Maybe :: Eq i => (a -> b -> c) -> T i a -> T i b -> Maybe (T i c)Source

lift2Gen :: Eq i => String -> (a -> b -> c) -> T i a -> T i b -> cSource

addMaybe :: (Eq i, C a) => T i a -> T i a -> Maybe (T i a)Source

Add two values if the units match, otherwise return Nothing

subMaybe :: (Eq i, C a) => T i a -> T i a -> Maybe (T i a)Source

Subtract two values if the units match, otherwise return Nothing

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

ratPow :: C a => T Int -> T i a -> T i aSource

ratPowMaybe :: C a => T Int -> T i a -> Maybe (T i a)Source

fromRatio :: (C b, C a) => T a -> bSource