| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Downhill.BVar.Num
Documentation
Automatic differentiation for Num hierarchy.
Polymorphic functions of type such as Num a => a -> a
can't be differentiated directly, because backprop needs some additional instances.
AsNum wrapper provides those instances.
derivative :: (forall b. Floating b => b -> b) -> (forall a. Floating a => a -> a) derivative fun x0 = backpropNum (fun (var (AsNum x0)))
AsNum a implements many instances in terms of Num a instance.
Instances
| Floating a => Floating (AsNum a) Source # | |
| Num a => Num (AsNum a) Source # | |
| Fractional a => Fractional (AsNum a) Source # | |
| Show a => Show (AsNum a) Source # | |
| Num a => Manifold (AsNum a) Source # | |
| Num a => BasicVector (AsNum a) Source # | |
Defined in Downhill.BVar.Num Associated Types type VecBuilder (AsNum a) Source # Methods sumBuilder :: VecBuilder (AsNum a) -> AsNum a Source # identityBuilder :: AsNum a -> VecBuilder (AsNum a) Source # | |
| Num a => AdditiveGroup (AsNum a) Source # | |
| Num a => AffineSpace (AsNum a) Source # | |
| Num a => VectorSpace (AsNum a) Source # | |
| Num a => Dual (AsNum a) (AsNum a) Source # | |
| Num a => MetricTensor (AsNum a) (AsNum a) Source # | |
| type Grad (AsNum a) Source # | |
Defined in Downhill.BVar.Num | |
| type Tang (AsNum a) Source # | |
Defined in Downhill.BVar.Num | |
| type VecBuilder (AsNum a) Source # | |
Defined in Downhill.BVar.Num | |
| type Diff (AsNum a) Source # | |
Defined in Downhill.BVar.Num | |
| type Scalar (AsNum a) Source # | |
Defined in Downhill.BVar.Num | |
numbvarValue :: NumBVar a -> a Source #
backpropNum :: forall a. Num a => NumBVar a -> a Source #