Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- class (Scalar v ~ Scalar dv, AdditiveGroup (Scalar v), VectorSpace v, VectorSpace dv) => Dual v dv where
- class (Dual (Tang p) (Grad p), BasicVector (Grad p), Scalar (Tang p) ~ Scalar (Grad p)) => HasGrad p where
- type MScalar p = Scalar (Tang p)
- type GradBuilder v = VecBuilder (Grad v)
- type HasGradAffine p = (AffineSpace p, HasGrad p, HasGrad (Tang p), Tang p ~ Diff p, Tang (Tang p) ~ Tang p, Grad (Tang p) ~ Grad p)
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
.
Nothing
Instances
Dual Integer Integer Source # | |
Dual Double Double Source # | |
Dual Float Float Source # | |
Num a => Dual (AsNum a) (AsNum a) Source # | |
(Scalar a ~ Scalar b, Dual a da, Dual b db) => Dual (a, b) (da, db) Source # | |
Defined in Downhill.Grad | |
(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 # | |
Defined in Downhill.Grad |
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.
Instances
HasGrad Integer Source # | |
HasGrad Double Source # | |
HasGrad Float Source # | |
Num a => HasGrad (AsNum a) Source # | |
HasGrad a => HasGrad (TraversableVar f a) Source # | |
Defined in Downhill.BVar.Traversable type Tang (TraversableVar f a) Source # type Grad (TraversableVar f a) Source # | |
(HasGrad a, HasGrad b, MScalar b ~ MScalar a) => HasGrad (a, b) Source # | |
(HasGrad a, HasGrad b, HasGrad c, MScalar b ~ MScalar a, MScalar c ~ MScalar a) => HasGrad (a, b, c) Source # | |
type GradBuilder v = VecBuilder (Grad v) Source #