downhill-0.3.0.0: Reverse mode automatic differentiation
Safe HaskellSafe-Inferred
LanguageHaskell2010

Downhill.Grad

Synopsis

Documentation

class (Scalar v ~ Scalar dv, AdditiveGroup (Scalar v), VectorSpace v, VectorSpace dv) => Dual v dv where Source #

Dual of a vector v is a linear map v -> Scalar v.

Minimal complete definition

Nothing

Methods

evalGrad :: dv -> v -> Scalar v Source #

default evalGrad :: (GDual (Scalar v) (Rep v) (Rep dv), Generic dv, Generic v) => dv -> v -> Scalar v Source #

Instances

Instances details
Dual Integer Integer Source # 
Instance details

Defined in Downhill.Grad

Dual Double Double Source # 
Instance details

Defined in Downhill.Grad

Dual Float Float Source # 
Instance details

Defined in Downhill.Grad

Num a => Dual (AsNum a) (AsNum a) Source # 
Instance details

Defined in Downhill.BVar.Num

Methods

evalGrad :: AsNum a -> AsNum a -> Scalar (AsNum a) Source #

(Scalar a ~ Scalar b, Dual a da, Dual b db) => Dual (a, b) (da, db) Source # 
Instance details

Defined in Downhill.Grad

Methods

evalGrad :: (da, db) -> (a, b) -> Scalar (a, b) Source #

(Scalar a ~ Scalar b, Scalar a ~ Scalar c, Dual a da, Dual b db, Dual c dc) => Dual (a, b, c) (da, db, dc) Source # 
Instance details

Defined in Downhill.Grad

Methods

evalGrad :: (da, db, dc) -> (a, b, c) -> Scalar (a, b, c) Source #

class (Dual (Tang p) (Grad p), BasicVector (Grad p), Scalar (Tang p) ~ Scalar (Grad p)) => HasGrad p Source #

Differentiable functions don't need to be constrained to vector spaces, they can be defined on other smooth manifolds, too.

Associated Types

type Tang p :: Type Source #

Tangent space.

type Grad p :: Type Source #

Cotangent space.

Instances

Instances details
HasGrad Integer Source # 
Instance details

Defined in Downhill.Grad

Associated Types

type Tang Integer Source #

type Grad Integer Source #

HasGrad Double Source # 
Instance details

Defined in Downhill.Grad

Associated Types

type Tang Double Source #

type Grad Double Source #

HasGrad Float Source # 
Instance details

Defined in Downhill.Grad

Associated Types

type Tang Float Source #

type Grad Float Source #

Num a => HasGrad (AsNum a) Source # 
Instance details

Defined in Downhill.BVar.Num

Associated Types

type Tang (AsNum a) Source #

type Grad (AsNum a) Source #

HasGrad a => HasGrad (TraversableVar f a) Source # 
Instance details

Defined in Downhill.BVar.Traversable

Associated Types

type Tang (TraversableVar f a) Source #

type Grad (TraversableVar f a) Source #

(HasGrad a, HasGrad b, MScalar b ~ MScalar a) => HasGrad (a, b) Source # 
Instance details

Defined in Downhill.Grad

Associated Types

type Tang (a, b) Source #

type Grad (a, b) Source #

(HasGrad a, HasGrad b, HasGrad c, MScalar b ~ MScalar a, MScalar c ~ MScalar a) => HasGrad (a, b, c) Source # 
Instance details

Defined in Downhill.Grad

Associated Types

type Tang (a, b, c) Source #

type Grad (a, b, c) Source #

type MScalar p = Scalar (Tang p) Source #

type HasGradAffine p = (AffineSpace p, HasGrad p, HasGrad (Tang p), Tang p ~ Diff p, Tang (Tang p) ~ Tang p, Grad (Tang p) ~ Grad p) Source #