Safe Haskell | None |
---|
- data T a
- decons :: T a -> forall r. CodeGenFunction r a
- twoPi :: (Transcendental a, RationalConstant a) => T a
- square :: PseudoRing a => T a -> T a
- sqrt :: Algebraic a => T a -> T a
- max :: Real a => T a -> T a -> T a
- min :: Real a => T a -> T a -> T a
- limit :: Real a => (T a, T a) -> T a -> T a
- lift0 :: (forall r. CodeGenFunction r a) -> T a
- lift1 :: (forall r. a -> CodeGenFunction r b) -> T a -> T b
- lift2 :: (forall r. a -> b -> CodeGenFunction r c) -> T a -> T b -> T c
- unlift0 :: T a -> forall r. CodeGenFunction r a
- unlift1 :: (T a -> T b) -> forall r. a -> CodeGenFunction r b
- unlift2 :: (T a -> T b -> T c) -> forall r. a -> b -> CodeGenFunction r c
- constantValue :: a -> T a
- constant :: IsConst a => a -> T (Value a)
- class Flatten value where
- flattenTraversable :: (Flatten value, Traversable f) => f value -> CodeGenFunction r (f (Registers value))
- unfoldFunctor :: (Flatten value, Functor f) => f (Registers value) -> f value
- flattenFunction :: (Flatten a, Flatten b) => (a -> b) -> Registers a -> CodeGenFunction r (Registers b)
Documentation
(Additive a, IntegerConstant a) => Enum (T a) | |
(Transcendental a, Real a, RationalConstant a) => Floating (T a) | |
(Field a, Real a, RationalConstant a) => Fractional (T a) | |
(PseudoRing a, Real a, IntegerConstant a) => Num (T a) | |
(Transcendental a, RationalConstant a) => C (T a) | |
(Transcendental a, RationalConstant a) => C (T a) | |
(Field a, RationalConstant a) => C (T a) | |
(Real a, PseudoRing a, IntegerConstant a) => C (T a) | |
(PseudoRing a, IntegerConstant a) => C (T a) | |
Additive a => C (T a) | We do not require a numeric prelude superclass, thus also LLVM only types like vectors are instances. |
Flatten (T a) | |
(Real a, IntegerConstant a, PseudoModule a a) => C (T a) (T a) | |
(Real a, IntegerConstant a, PseudoModule a a) => Sqr (T a) (T a) | |
(Sqr (T a) (T v), RationalConstant a, Algebraic a) => C (T a) (T v) | |
(PseudoModule a v, IntegerConstant a) => C (T a) (T v) |
decons :: T a -> forall r. CodeGenFunction r aSource
twoPi :: (Transcendental a, RationalConstant a) => T aSource
square :: PseudoRing a => T a -> T aSource
sqrt :: Algebraic a => T a -> T aSource
The same as sqrt
,
but needs only Algebraic constraint, not Transcendental.
lift0 :: (forall r. CodeGenFunction r a) -> T aSource
lift1 :: (forall r. a -> CodeGenFunction r b) -> T a -> T bSource
unlift0 :: T a -> forall r. CodeGenFunction r aSource
unlift1 :: (T a -> T b) -> forall r. a -> CodeGenFunction r bSource
constantValue :: a -> T aSource
class Flatten value whereSource
flatten :: value -> CodeGenFunction r (Registers value)Source
Flatten () | |
Flatten a => Flatten (T a) | |
Flatten a => Flatten (T a) | |
Flatten a => Flatten (Parameter a) | |
Flatten a => Flatten (Result a) | |
Flatten a => Flatten (Parameter a) | |
Flatten a => Flatten (State a) | |
Flatten a => Flatten (Parameter a) | |
Flatten a => Flatten (Parameter a) | |
(C a, Flatten a) => Flatten (T a) | |
Flatten (T a) | |
Flatten a => Flatten (ParameterPacked a) | |
Flatten a => Flatten (Parameter a) | |
Flatten a => Flatten (Parameter a) | |
(Flatten a, Flatten b) => Flatten (a, b) | |
(Flatten a, NaturalT n) => Flatten (Parameter n a) | |
Flatten a => Flatten (CascadeParameter n a) | |
(Flatten a, Flatten b, Flatten c) => Flatten (a, b, c) |
flattenTraversable :: (Flatten value, Traversable f) => f value -> CodeGenFunction r (f (Registers value))Source
unfoldFunctor :: (Flatten value, Functor f) => f (Registers value) -> f valueSource
flattenFunction :: (Flatten a, Flatten b) => (a -> b) -> Registers a -> CodeGenFunction r (Registers b)Source