cifl-math-library-1.1.1.0: Math libraries
Safe HaskellSafe
LanguageHaskell2010

Math.Number.NumericExpression

Synopsis

Documentation

data ctx :- a where Source #

Constructors

ELam :: (Var a -> (ctx, a) :- b) -> ctx :- (a -> b) 
EApp :: (ctx :- (a -> b)) -> (ctx, a) :- b 
ECompose :: (b :- c) -> (a :- b) -> a :- c 
EVar :: Var a -> ctx :- a 
EPair :: (ctx :- a) -> (ctx :- b) -> ctx :- (a, b) 
EFst :: (ctx, a) :- ctx 
ESnd :: (ctx, a) :- a 
ECase :: (a :- c) -> (b :- c) -> Either a b :- c 
EIn1 :: a :- Either a b 
EIn2 :: b :- Either a b 
ETerminal :: ctx :- () 
EInitial :: Contradiction :- b 
EVec :: VectorSpaceExpr v a -> () :- v a 
ENum :: NumExpr v a -> () :- a 

identity_expr :: ctx :- (b -> b) Source #

pair_identity_expr :: (a, b) :- (a, b) Source #

pair_expr :: ctx :- (a -> b -> (a, b)) Source #

var_intro :: (Var a -> (ctx, a) :- b) -> (ctx, a) :- b Source #

data Var a Source #

Constructors

Var 
Val !a 

Instances

Instances details
Functor Var Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

fmap :: (a -> b) -> Var a -> Var b #

(<$) :: a -> Var b -> Var a #

VectorShow Var Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

show_vector :: Show a => Var a -> String Source #

IsomorphicFunctor Var Source # 
Instance details

Defined in Math.Number.NumericExpression

Associated Types

data IsoA Var a b Source #

Methods

transformIso :: IsoA Var a b -> Var a :==: Var b Source #

PpShowF Var Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

ppf :: PpShow a => Var a -> Doc Source #

Expression Var List a Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

eval :: [a] -> Var a -> a Source #

FunctorArrow Var (->) (->) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

amap :: forall (c :: k) (d :: k). (c -> d) -> Var c -> Var d Source #

Category (IsoA Var) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

id :: forall (a :: k). IsoA Var a a #

(.) :: forall (b :: k) (c :: k) (a :: k). IsoA Var b c -> IsoA Var a b -> IsoA Var a c #

Groupoid (IsoA Var) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

invertA :: forall (a :: k) (b :: k). IsoA Var a b -> IsoA Var b a Source #

Expression Var (VectorCtx v) a Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

eval :: VectorCtx v a -> Var a -> a Source #

Data a => Data (Var a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Var a -> c (Var a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Var a) #

toConstr :: Var a -> Constr #

dataTypeOf :: Var a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Var a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Var a)) #

gmapT :: (forall b. Data b => b -> b) -> Var a -> Var a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Var a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Var a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Var a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Var a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Var a -> m (Var a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Var a -> m (Var a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Var a -> m (Var a) #

Generic (Var a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Associated Types

type Rep (Var a) :: Type -> Type #

Methods

from :: Var a -> Rep (Var a) x #

to :: Rep (Var a) x -> Var a #

Show a => Show (Var a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

showsPrec :: Int -> Var a -> ShowS #

show :: Var a -> String #

showList :: [Var a] -> ShowS #

BiArrow (IsoA Var) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

(<->) :: (a -> b) -> (b -> a) -> IsoA Var a b Source #

PpShow a => PpShow (Var a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

pp :: Var a -> Doc Source #

Visitor (Var a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Associated Types

data Fold (Var a) :: Type -> Type Source #

Methods

visit :: Fold (Var a) a0 -> Var a -> a0 Source #

Eq a => Eq (Var a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

(==) :: Var a -> Var a -> Bool #

(/=) :: Var a -> Var a -> Bool #

Num ((NumExpr v :*: Var) a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

(+) :: (NumExpr v :*: Var) a -> (NumExpr v :*: Var) a -> (NumExpr v :*: Var) a #

(-) :: (NumExpr v :*: Var) a -> (NumExpr v :*: Var) a -> (NumExpr v :*: Var) a #

(*) :: (NumExpr v :*: Var) a -> (NumExpr v :*: Var) a -> (NumExpr v :*: Var) a #

negate :: (NumExpr v :*: Var) a -> (NumExpr v :*: Var) a #

abs :: (NumExpr v :*: Var) a -> (NumExpr v :*: Var) a #

signum :: (NumExpr v :*: Var) a -> (NumExpr v :*: Var) a #

fromInteger :: Integer -> (NumExpr v :*: Var) a #

data IsoA Var a b Source # 
Instance details

Defined in Math.Number.NumericExpression

type Rep (Var a) Source # 
Instance details

Defined in Math.Number.NumericExpression

type Rep (Var a) = D1 ('MetaData "Var" "Math.Number.NumericExpression" "cifl-math-library-1.1.1.0-JEQP78tsA0rJRaFkv5LJVZ" 'False) (C1 ('MetaCons "Var" 'PrefixI 'True) (S1 ('MetaSel ('Just "var_name") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 String) :*: S1 ('MetaSel ('Just "var_debruijn_index") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Integer)) :+: C1 ('MetaCons "Val" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)))
data Fold (Var a) b Source # 
Instance details

Defined in Math.Number.NumericExpression

data Fold (Var a) b = VarFold [a] (String -> a -> b) (a -> b)

varIso :: IsoA Var a b -> Var a :==: Var b Source #

class Expression e ctx a where Source #

Methods

eval :: ctx a -> e a -> a Source #

Instances

Instances details
Enum a => Expression EnumExpr List a Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

eval :: [a] -> EnumExpr a -> a Source #

Expression Var List a Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

eval :: [a] -> Var a -> a Source #

Expression Var (VectorCtx v) a Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

eval :: VectorCtx v a -> Var a -> a Source #

(Fractional a, IdVisitor a) => Expression (FracExpr v) List a Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

eval :: [a] -> FracExpr v a -> a Source #

(Num a, IdVisitor a) => Expression (NumExpr v) List a Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

eval :: [a] -> NumExpr v a -> a Source #

equal_in_context :: (Eq a, Expression f ctx a) => ctx a -> f a -> f a -> Bool Source #

evalVar :: [a] -> Var a -> a Source #

withCtx :: Functor f => [a] -> (f :*: Var) a -> f a Source #

expr :: Functor f => f a -> (f :*: Var) a Source #

data VectorCtx v a Source #

Constructors

VectorCtx 

Instances

Instances details
Expression Var (VectorCtx v) a Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

eval :: VectorCtx v a -> Var a -> a Source #

(Typeable v, Data a, Data (v a)) => Data (VectorCtx v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> VectorCtx v a -> c (VectorCtx v a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (VectorCtx v a) #

toConstr :: VectorCtx v a -> Constr #

dataTypeOf :: VectorCtx v a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (VectorCtx v a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (VectorCtx v a)) #

gmapT :: (forall b. Data b => b -> b) -> VectorCtx v a -> VectorCtx v a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> VectorCtx v a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> VectorCtx v a -> r #

gmapQ :: (forall d. Data d => d -> u) -> VectorCtx v a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> VectorCtx v a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> VectorCtx v a -> m (VectorCtx v a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> VectorCtx v a -> m (VectorCtx v a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> VectorCtx v a -> m (VectorCtx v a) #

Generic (VectorCtx v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Associated Types

type Rep (VectorCtx v a) :: Type -> Type #

Methods

from :: VectorCtx v a -> Rep (VectorCtx v a) x #

to :: Rep (VectorCtx v a) x -> VectorCtx v a #

(Eq a, Eq (v a)) => Eq (VectorCtx v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

(==) :: VectorCtx v a -> VectorCtx v a -> Bool #

(/=) :: VectorCtx v a -> VectorCtx v a -> Bool #

type Rep (VectorCtx v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

type Rep (VectorCtx v a) = D1 ('MetaData "VectorCtx" "Math.Number.NumericExpression" "cifl-math-library-1.1.1.0-JEQP78tsA0rJRaFkv5LJVZ" 'False) (C1 ('MetaCons "VectorCtx" 'PrefixI 'True) (S1 ('MetaSel ('Just "vectorSpaceCtx") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map String (VectorSpaceExpr v a))) :*: S1 ('MetaSel ('Just "numCtx") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [a])))

data VectorSpaceExpr v a Source #

Instances

Instances details
FunctorArrow v (->) (->) => FunctorArrow (VectorSpaceExpr v :: Type -> Type) (->) (->) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

amap :: forall (c :: k) (d :: k). (c -> d) -> VectorSpaceExpr v c -> VectorSpaceExpr v d Source #

FunctorArrow v (->) (->) => Category (IsoA (VectorSpaceExpr v) :: Type -> Type -> Type) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

id :: forall (a :: k). IsoA (VectorSpaceExpr v) a a #

(.) :: forall (b :: k) (c :: k) (a :: k). IsoA (VectorSpaceExpr v) b c -> IsoA (VectorSpaceExpr v) a b -> IsoA (VectorSpaceExpr v) a c #

FunctorArrow v (->) (->) => Groupoid (IsoA (VectorSpaceExpr v) :: Type -> Type -> Type) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

invertA :: forall (a :: k) (b :: k). IsoA (VectorSpaceExpr v) a b -> IsoA (VectorSpaceExpr v) b a Source #

VectorShow v => VectorShow (VectorSpaceExpr v) Source # 
Instance details

Defined in Math.Number.NumericExpression

FunctorArrow v (->) (->) => BiArrow (IsoA (VectorSpaceExpr v)) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

(<->) :: (a -> b) -> (b -> a) -> IsoA (VectorSpaceExpr v) a b Source #

FunctorArrow v (->) (->) => IsomorphicFunctor (VectorSpaceExpr v) Source # 
Instance details

Defined in Math.Number.NumericExpression

Associated Types

data IsoA (VectorSpaceExpr v) a b Source #

PpShowF v => PpShowF (VectorSpaceExpr v) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

ppf :: PpShow a => VectorSpaceExpr v a -> Doc Source #

(Typeable v, Data a, Data (v a)) => Data (VectorSpaceExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> VectorSpaceExpr v a -> c (VectorSpaceExpr v a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (VectorSpaceExpr v a) #

toConstr :: VectorSpaceExpr v a -> Constr #

dataTypeOf :: VectorSpaceExpr v a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (VectorSpaceExpr v a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (VectorSpaceExpr v a)) #

gmapT :: (forall b. Data b => b -> b) -> VectorSpaceExpr v a -> VectorSpaceExpr v a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> VectorSpaceExpr v a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> VectorSpaceExpr v a -> r #

gmapQ :: (forall d. Data d => d -> u) -> VectorSpaceExpr v a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> VectorSpaceExpr v a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> VectorSpaceExpr v a -> m (VectorSpaceExpr v a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> VectorSpaceExpr v a -> m (VectorSpaceExpr v a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> VectorSpaceExpr v a -> m (VectorSpaceExpr v a) #

Generic (VectorSpaceExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Associated Types

type Rep (VectorSpaceExpr v a) :: Type -> Type #

Methods

from :: VectorSpaceExpr v a -> Rep (VectorSpaceExpr v a) x #

to :: Rep (VectorSpaceExpr v a) x -> VectorSpaceExpr v a #

(Show a, Show (v a)) => Show (VectorSpaceExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

InnerProductSpace (VectorSpaceExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

VectorSpace (VectorSpaceExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Associated Types

type Scalar (VectorSpaceExpr v a) Source #

(PpShow a, PpShowF v) => PpShow (VectorSpaceExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

pp :: VectorSpaceExpr v a -> Doc Source #

Visitor (VectorSpaceExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Associated Types

data Fold (VectorSpaceExpr v a) :: Type -> Type Source #

Methods

visit :: Fold (VectorSpaceExpr v a) a0 -> VectorSpaceExpr v a -> a0 Source #

(Eq a, Eq (v a)) => Eq (VectorSpaceExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

data IsoA (VectorSpaceExpr v) a b Source # 
Instance details

Defined in Math.Number.NumericExpression

type Rep (VectorSpaceExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

type Scalar (VectorSpaceExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

type Scalar (VectorSpaceExpr v a) = NumExpr v a
data Fold (VectorSpaceExpr v a) b Source # 
Instance details

Defined in Math.Number.NumericExpression

data Fold (VectorSpaceExpr v a) b = VectorSpaceExprFold {}

data NumExpr v a Source #

Basically same as methods in Num type class from prelude, but as data.

Constructors

Plus !(NumExpr v a) !(NumExpr v a) 
Product !(NumExpr v a) !(NumExpr v a) 
Subtract !(NumExpr v a) !(NumExpr v a) 
Negate !(NumExpr v a) 
Abs !(NumExpr v a) 
Signum !(NumExpr v a) 
NumPrim !(Var a) 
FromInteger !Integer 
InnerProduct !(VectorSpaceExpr v a) !(VectorSpaceExpr v a) 

Instances

Instances details
FunctorArrow v (->) (->) => FunctorArrow (NumExpr v :: Type -> Type) (->) (->) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

amap :: forall (c :: k) (d :: k). (c -> d) -> NumExpr v c -> NumExpr v d Source #

FunctorArrow v (->) (->) => Category (IsoA (NumExpr v) :: Type -> Type -> Type) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

id :: forall (a :: k). IsoA (NumExpr v) a a #

(.) :: forall (b :: k) (c :: k) (a :: k). IsoA (NumExpr v) b c -> IsoA (NumExpr v) a b -> IsoA (NumExpr v) a c #

FunctorArrow v (->) (->) => Groupoid (IsoA (NumExpr v) :: Type -> Type -> Type) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

invertA :: forall (a :: k) (b :: k). IsoA (NumExpr v) a b -> IsoA (NumExpr v) b a Source #

Functor (NumExpr v) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

fmap :: (a -> b) -> NumExpr v a -> NumExpr v b #

(<$) :: a -> NumExpr v b -> NumExpr v a #

VectorShow v => VectorShow (NumExpr v) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

show_vector :: Show a => NumExpr v a -> String Source #

FunctorArrow v (->) (->) => BiArrow (IsoA (NumExpr v)) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

(<->) :: (a -> b) -> (b -> a) -> IsoA (NumExpr v) a b Source #

FunctorArrow v (->) (->) => IsomorphicFunctor (NumExpr v) Source # 
Instance details

Defined in Math.Number.NumericExpression

Associated Types

data IsoA (NumExpr v) a b Source #

Methods

transformIso :: IsoA (NumExpr v) a b -> NumExpr v a :==: NumExpr v b Source #

PpShowF v => PpShowF (NumExpr v) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

ppf :: PpShow a => NumExpr v a -> Doc Source #

(Num a, IdVisitor a) => Expression (NumExpr v) List a Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

eval :: [a] -> NumExpr v a -> a Source #

(Typeable v, Data a, Data (v a)) => Data (NumExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NumExpr v a -> c (NumExpr v a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (NumExpr v a) #

toConstr :: NumExpr v a -> Constr #

dataTypeOf :: NumExpr v a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (NumExpr v a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (NumExpr v a)) #

gmapT :: (forall b. Data b => b -> b) -> NumExpr v a -> NumExpr v a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NumExpr v a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NumExpr v a -> r #

gmapQ :: (forall d. Data d => d -> u) -> NumExpr v a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NumExpr v a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NumExpr v a -> m (NumExpr v a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NumExpr v a -> m (NumExpr v a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NumExpr v a -> m (NumExpr v a) #

Generic (NumExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Associated Types

type Rep (NumExpr v a) :: Type -> Type #

Methods

from :: NumExpr v a -> Rep (NumExpr v a) x #

to :: Rep (NumExpr v a) x -> NumExpr v a #

Num (NumExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

(+) :: NumExpr v a -> NumExpr v a -> NumExpr v a #

(-) :: NumExpr v a -> NumExpr v a -> NumExpr v a #

(*) :: NumExpr v a -> NumExpr v a -> NumExpr v a #

negate :: NumExpr v a -> NumExpr v a #

abs :: NumExpr v a -> NumExpr v a #

signum :: NumExpr v a -> NumExpr v a #

fromInteger :: Integer -> NumExpr v a #

(Show a, Show (v a)) => Show (NumExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

showsPrec :: Int -> NumExpr v a -> ShowS #

show :: NumExpr v a -> String #

showList :: [NumExpr v a] -> ShowS #

(Eq a, Show a) => ConjugateSymmetric (NumExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

conj :: NumExpr v a -> NumExpr v a Source #

(PpShow a, PpShowF v) => PpShow (NumExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

pp :: NumExpr v a -> Doc Source #

Visitor (NumExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Associated Types

data Fold (NumExpr v a) :: Type -> Type Source #

Methods

visit :: Fold (NumExpr v a) a0 -> NumExpr v a -> a0 Source #

(Eq a, Eq (v a)) => Eq (NumExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

(==) :: NumExpr v a -> NumExpr v a -> Bool #

(/=) :: NumExpr v a -> NumExpr v a -> Bool #

Num ((NumExpr v :*: Var) a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

(+) :: (NumExpr v :*: Var) a -> (NumExpr v :*: Var) a -> (NumExpr v :*: Var) a #

(-) :: (NumExpr v :*: Var) a -> (NumExpr v :*: Var) a -> (NumExpr v :*: Var) a #

(*) :: (NumExpr v :*: Var) a -> (NumExpr v :*: Var) a -> (NumExpr v :*: Var) a #

negate :: (NumExpr v :*: Var) a -> (NumExpr v :*: Var) a #

abs :: (NumExpr v :*: Var) a -> (NumExpr v :*: Var) a #

signum :: (NumExpr v :*: Var) a -> (NumExpr v :*: Var) a #

fromInteger :: Integer -> (NumExpr v :*: Var) a #

data IsoA (NumExpr v) a b Source # 
Instance details

Defined in Math.Number.NumericExpression

type Rep (NumExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

type Rep (NumExpr v a) = D1 ('MetaData "NumExpr" "Math.Number.NumericExpression" "cifl-math-library-1.1.1.0-JEQP78tsA0rJRaFkv5LJVZ" 'False) (((C1 ('MetaCons "Plus" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NumExpr v a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NumExpr v a))) :+: C1 ('MetaCons "Product" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NumExpr v a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NumExpr v a)))) :+: (C1 ('MetaCons "Subtract" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NumExpr v a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NumExpr v a))) :+: C1 ('MetaCons "Negate" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NumExpr v a))))) :+: ((C1 ('MetaCons "Abs" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NumExpr v a))) :+: C1 ('MetaCons "Signum" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NumExpr v a)))) :+: (C1 ('MetaCons "NumPrim" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Var a))) :+: (C1 ('MetaCons "FromInteger" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Integer)) :+: C1 ('MetaCons "InnerProduct" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (VectorSpaceExpr v a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (VectorSpaceExpr v a)))))))
data Fold (NumExpr v a) b Source # 
Instance details

Defined in Math.Number.NumericExpression

data Fold (NumExpr v a) b = NumExprFold {}

numIso :: FunctorArrow v (->) (->) => IsoA (NumExpr v) a b -> NumExpr v a :==: NumExpr v b Source #

data FracExpr v a Source #

basically same as Fractional class in Prelude.

Constructors

PrimFracExpr !(NumExpr v a) 
Divide !(FracExpr v a) !(FracExpr v a) 
Recip !(FracExpr v a) 
FromRational !Rational 

Instances

Instances details
Functor (FracExpr v) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

fmap :: (a -> b) -> FracExpr v a -> FracExpr v b #

(<$) :: a -> FracExpr v b -> FracExpr v a #

VectorShow v => VectorShow (FracExpr v) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

show_vector :: Show a => FracExpr v a -> String Source #

PpShowF v => PpShowF (FracExpr v) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

ppf :: PpShow a => FracExpr v a -> Doc Source #

(Fractional a, IdVisitor a) => Expression (FracExpr v) List a Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

eval :: [a] -> FracExpr v a -> a Source #

(Typeable v, Data a, Data (v a)) => Data (FracExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FracExpr v a -> c (FracExpr v a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (FracExpr v a) #

toConstr :: FracExpr v a -> Constr #

dataTypeOf :: FracExpr v a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (FracExpr v a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (FracExpr v a)) #

gmapT :: (forall b. Data b => b -> b) -> FracExpr v a -> FracExpr v a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FracExpr v a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FracExpr v a -> r #

gmapQ :: (forall d. Data d => d -> u) -> FracExpr v a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> FracExpr v a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> FracExpr v a -> m (FracExpr v a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FracExpr v a -> m (FracExpr v a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FracExpr v a -> m (FracExpr v a) #

Generic (FracExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Associated Types

type Rep (FracExpr v a) :: Type -> Type #

Methods

from :: FracExpr v a -> Rep (FracExpr v a) x #

to :: Rep (FracExpr v a) x -> FracExpr v a #

(Show a, Show (v a)) => Show (FracExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

showsPrec :: Int -> FracExpr v a -> ShowS #

show :: FracExpr v a -> String #

showList :: [FracExpr v a] -> ShowS #

(PpShow a, PpShowF v) => PpShow (FracExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

pp :: FracExpr v a -> Doc Source #

Visitor (FracExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Associated Types

data Fold (FracExpr v a) :: Type -> Type Source #

Methods

visit :: Fold (FracExpr v a) a0 -> FracExpr v a -> a0 Source #

(Eq a, Eq (v a)) => Eq (FracExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

(==) :: FracExpr v a -> FracExpr v a -> Bool #

(/=) :: FracExpr v a -> FracExpr v a -> Bool #

type Rep (FracExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

data Fold (FracExpr v a) b Source # 
Instance details

Defined in Math.Number.NumericExpression

data FloatExpr v a Source #

basically same as Floating class in Prelude, but as data.

Constructors

PrimPi 
Exp !(FloatExpr v a) 
Log !(FloatExpr v a) 
Sqrt !(FloatExpr v a) 
Power !(FloatExpr v a) !(FloatExpr v a) 
Sin !(FloatExpr v a) 
Cos !(FloatExpr v a) 
Tan !(FloatExpr v a) 
Asin !(FloatExpr v a) 
Acos !(FloatExpr v a) 
Atan !(FloatExpr v a) 
Sinh !(FloatExpr v a) 
Cosh !(FloatExpr v a) 
Tanh !(FloatExpr v a) 
Asinh !(FloatExpr v a) 
Acosh !(FloatExpr v a) 
Atanh !(FloatExpr v a) 
PrimFloatExpr !(FracExpr v (FloatExpr v a)) 

Instances

Instances details
Floating (FloatExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

pi :: FloatExpr v a #

exp :: FloatExpr v a -> FloatExpr v a #

log :: FloatExpr v a -> FloatExpr v a #

sqrt :: FloatExpr v a -> FloatExpr v a #

(**) :: FloatExpr v a -> FloatExpr v a -> FloatExpr v a #

logBase :: FloatExpr v a -> FloatExpr v a -> FloatExpr v a #

sin :: FloatExpr v a -> FloatExpr v a #

cos :: FloatExpr v a -> FloatExpr v a #

tan :: FloatExpr v a -> FloatExpr v a #

asin :: FloatExpr v a -> FloatExpr v a #

acos :: FloatExpr v a -> FloatExpr v a #

atan :: FloatExpr v a -> FloatExpr v a #

sinh :: FloatExpr v a -> FloatExpr v a #

cosh :: FloatExpr v a -> FloatExpr v a #

tanh :: FloatExpr v a -> FloatExpr v a #

asinh :: FloatExpr v a -> FloatExpr v a #

acosh :: FloatExpr v a -> FloatExpr v a #

atanh :: FloatExpr v a -> FloatExpr v a #

log1p :: FloatExpr v a -> FloatExpr v a #

expm1 :: FloatExpr v a -> FloatExpr v a #

log1pexp :: FloatExpr v a -> FloatExpr v a #

log1mexp :: FloatExpr v a -> FloatExpr v a #

Generic (FloatExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Associated Types

type Rep (FloatExpr v a) :: Type -> Type #

Methods

from :: FloatExpr v a -> Rep (FloatExpr v a) x #

to :: Rep (FloatExpr v a) x -> FloatExpr v a #

Num (FloatExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

(+) :: FloatExpr v a -> FloatExpr v a -> FloatExpr v a #

(-) :: FloatExpr v a -> FloatExpr v a -> FloatExpr v a #

(*) :: FloatExpr v a -> FloatExpr v a -> FloatExpr v a #

negate :: FloatExpr v a -> FloatExpr v a #

abs :: FloatExpr v a -> FloatExpr v a #

signum :: FloatExpr v a -> FloatExpr v a #

fromInteger :: Integer -> FloatExpr v a #

Fractional (FloatExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

(/) :: FloatExpr v a -> FloatExpr v a -> FloatExpr v a #

recip :: FloatExpr v a -> FloatExpr v a #

fromRational :: Rational -> FloatExpr v a #

VectorShow v => Show (FloatExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

showsPrec :: Int -> FloatExpr v a -> ShowS #

show :: FloatExpr v a -> String #

showList :: [FloatExpr v a] -> ShowS #

PpShowF v => PpShow (FloatExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

pp :: FloatExpr v a -> Doc Source #

Visitor (FloatExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Associated Types

data Fold (FloatExpr v a) :: Type -> Type Source #

Methods

visit :: Fold (FloatExpr v a) a0 -> FloatExpr v a -> a0 Source #

Eq (v (FloatExpr v a)) => Eq (FloatExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

(==) :: FloatExpr v a -> FloatExpr v a -> Bool #

(/=) :: FloatExpr v a -> FloatExpr v a -> Bool #

type Rep (FloatExpr v a) Source # 
Instance details

Defined in Math.Number.NumericExpression

type Rep (FloatExpr v a) = D1 ('MetaData "FloatExpr" "Math.Number.NumericExpression" "cifl-math-library-1.1.1.0-JEQP78tsA0rJRaFkv5LJVZ" 'False) ((((C1 ('MetaCons "PrimPi" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Exp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (FloatExpr v a)))) :+: (C1 ('MetaCons "Log" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (FloatExpr v a))) :+: C1 ('MetaCons "Sqrt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (FloatExpr v a))))) :+: ((C1 ('MetaCons "Power" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (FloatExpr v a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (FloatExpr v a))) :+: C1 ('MetaCons "Sin" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (FloatExpr v a)))) :+: (C1 ('MetaCons "Cos" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (FloatExpr v a))) :+: (C1 ('MetaCons "Tan" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (FloatExpr v a))) :+: C1 ('MetaCons "Asin" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (FloatExpr v a))))))) :+: (((C1 ('MetaCons "Acos" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (FloatExpr v a))) :+: C1 ('MetaCons "Atan" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (FloatExpr v a)))) :+: (C1 ('MetaCons "Sinh" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (FloatExpr v a))) :+: C1 ('MetaCons "Cosh" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (FloatExpr v a))))) :+: ((C1 ('MetaCons "Tanh" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (FloatExpr v a))) :+: C1 ('MetaCons "Asinh" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (FloatExpr v a)))) :+: (C1 ('MetaCons "Acosh" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (FloatExpr v a))) :+: (C1 ('MetaCons "Atanh" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (FloatExpr v a))) :+: C1 ('MetaCons "PrimFloatExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (FracExpr v (FloatExpr v a)))))))))
data Fold (FloatExpr v a) b Source # 
Instance details

Defined in Math.Number.NumericExpression

data Fold (FloatExpr v a) b = FloatExprFold {}

pp_unary :: PpShow a => Text -> a -> Doc Source #

class VectorShow v where Source #

Methods

show_vector :: Show a => v a -> String Source #

Instances

Instances details
VectorShow Var Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

show_vector :: Show a => Var a -> String Source #

VectorShow v => VectorShow (FracExpr v) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

show_vector :: Show a => FracExpr v a -> String Source #

VectorShow v => VectorShow (NumExpr v) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

show_vector :: Show a => NumExpr v a -> String Source #

VectorShow v => VectorShow (VectorSpaceExpr v) Source # 
Instance details

Defined in Math.Number.NumericExpression

liftNumFrac1 :: forall {k} {v :: Type -> Type} {a} {v :: Type -> Type} {a :: k}. (NumExpr v a -> NumExpr v (FloatExpr v a)) -> a -> FloatExpr v a Source #

liftNumFrac2 :: forall {k} {v :: Type -> Type} {a} {v :: Type -> Type} {a} {v :: Type -> Type} {a :: k}. (NumExpr v a -> NumExpr v a -> NumExpr v (FloatExpr v a)) -> a -> a -> FloatExpr v a Source #

data EnumExpr a Source #

Constructors

SuccExpr !(EnumExpr a) 
PredExpr !(EnumExpr a) 
ToEnumExpr !(Var a) 

Instances

Instances details
Enum a => Expression EnumExpr List a Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

eval :: [a] -> EnumExpr a -> a Source #

Data a => Data (EnumExpr a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> EnumExpr a -> c (EnumExpr a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (EnumExpr a) #

toConstr :: EnumExpr a -> Constr #

dataTypeOf :: EnumExpr a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (EnumExpr a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (EnumExpr a)) #

gmapT :: (forall b. Data b => b -> b) -> EnumExpr a -> EnumExpr a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> EnumExpr a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> EnumExpr a -> r #

gmapQ :: (forall d. Data d => d -> u) -> EnumExpr a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> EnumExpr a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> EnumExpr a -> m (EnumExpr a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> EnumExpr a -> m (EnumExpr a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> EnumExpr a -> m (EnumExpr a) #

Enum a => Enum (EnumExpr a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Generic (EnumExpr a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Associated Types

type Rep (EnumExpr a) :: Type -> Type #

Methods

from :: EnumExpr a -> Rep (EnumExpr a) x #

to :: Rep (EnumExpr a) x -> EnumExpr a #

Visitor (EnumExpr a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Associated Types

data Fold (EnumExpr a) :: Type -> Type Source #

Methods

visit :: Fold (EnumExpr a) a0 -> EnumExpr a -> a0 Source #

Eq a => Eq (EnumExpr a) Source # 
Instance details

Defined in Math.Number.NumericExpression

Methods

(==) :: EnumExpr a -> EnumExpr a -> Bool #

(/=) :: EnumExpr a -> EnumExpr a -> Bool #

type Rep (EnumExpr a) Source # 
Instance details

Defined in Math.Number.NumericExpression

type Rep (EnumExpr a) = D1 ('MetaData "EnumExpr" "Math.Number.NumericExpression" "cifl-math-library-1.1.1.0-JEQP78tsA0rJRaFkv5LJVZ" 'False) (C1 ('MetaCons "SuccExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (EnumExpr a))) :+: (C1 ('MetaCons "PredExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (EnumExpr a))) :+: C1 ('MetaCons "ToEnumExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Var a)))))
data Fold (EnumExpr a) b Source # 
Instance details

Defined in Math.Number.NumericExpression

data Fold (EnumExpr a) b = EnumExprFold {}

runEnumExpr :: Enum a => [a] -> EnumExpr a -> a Source #

runNumExpr :: (Num a, IdVisitor a) => [a] -> NumExpr v a -> a Source #

runFracExpr :: (Fractional a, IdVisitor a) => [a] -> FracExpr v a -> a Source #

varFold :: [a] -> Fold (Var a) a Source #

vecSpaceFold :: (Visitor (v a), VectorSpace b) => Fold (Var b) b -> Fold (NumExpr v a) (Scalar b) -> Fold (v a) b -> Fold (VectorSpaceExpr v a) b Source #

numExprFold :: Num a => Fold (Var a) a -> Fold (NumExpr v a) a Source #

enumExprFold :: Enum b => Fold (Var a) b -> Fold (EnumExpr a) b Source #