ad-4.1: Automatic Differentiation

PortabilityGHC only
Stabilityexperimental
Maintainerekmett@gmail.com
Safe HaskellNone

Numeric.AD.Mode.Tower

Contents

Description

Higher order derivatives via a "dual number tower".

Synopsis

Documentation

data Tower a s Source

Tower is an AD Mode that calculates a tangent tower by forward AD, and provides fast diffsUU, diffsUF

Instances

Typeable2 Tower 
(Num a, Bounded a) => Bounded (Tower a s) 
(Num a, Enum a) => Enum (Tower a s) 
(Num a, Eq a) => Eq (Tower a s) 
Floating a => Floating (Tower a s) 
Fractional a => Fractional (Tower a s) 
(Data a, Data s) => Data (Tower a s) 
Num a => Num (Tower a s) 
(Num a, Ord a) => Ord (Tower a s) 
Real a => Real (Tower a s) 
RealFloat a => RealFloat (Tower a s) 
RealFrac a => RealFrac (Tower a s) 
Show a => Show (Tower a s) 
Erf a => Erf (Tower a s) 
InvErf a => InvErf (Tower a s) 
Num a => Mode (Tower a s) 
Num a => Jacobian (Tower a s) 

Taylor Series

taylor :: Fractional a => (forall s. Tower a s -> Tower a s) -> a -> a -> [a]Source

taylor0 :: Fractional a => (forall s. Tower a s -> Tower a s) -> a -> a -> [a]Source

Maclaurin Series

maclaurin :: Fractional a => (forall s. Tower a s -> Tower a s) -> a -> [a]Source

maclaurin0 :: Fractional a => (forall s. Tower a s -> Tower a s) -> a -> [a]Source

Derivatives

diff :: Num a => (forall s. Tower a s -> Tower a s) -> a -> aSource

diff' :: Num a => (forall s. Tower a s -> Tower a s) -> a -> (a, a)Source

diffs :: Num a => (forall s. Tower a s -> Tower a s) -> a -> [a]Source

diffs0 :: Num a => (forall s. Tower a s -> Tower a s) -> a -> [a]Source

diffsF :: (Functor f, Num a) => (forall s. Tower a s -> f (Tower a s)) -> a -> f [a]Source

diffs0F :: (Functor f, Num a) => (forall s. Tower a s -> f (Tower a s)) -> a -> f [a]Source

Directional Derivatives

du :: (Functor f, Num a) => (forall s. f (Tower a s) -> Tower a s) -> f (a, a) -> aSource

du' :: (Functor f, Num a) => (forall s. f (Tower a s) -> Tower a s) -> f (a, a) -> (a, a)Source

dus :: (Functor f, Num a) => (forall s. f (Tower a s) -> Tower a s) -> f [a] -> [a]Source

dus0 :: (Functor f, Num a) => (forall s. f (Tower a s) -> Tower a s) -> f [a] -> [a]Source

duF :: (Functor f, Functor g, Num a) => (forall s. f (Tower a s) -> g (Tower a s)) -> f (a, a) -> g aSource

duF' :: (Functor f, Functor g, Num a) => (forall s. f (Tower a s) -> g (Tower a s)) -> f (a, a) -> g (a, a)Source

dusF :: (Functor f, Functor g, Num a) => (forall s. f (Tower a s) -> g (Tower a s)) -> f [a] -> g [a]Source

dus0F :: (Functor f, Functor g, Num a) => (forall s. f (Tower a s) -> g (Tower a s)) -> f [a] -> g [a]Source