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 v dv => HilbertSpace v dv where
- class (Dual (Tang p) (Grad p), Scalar (Tang p) ~ Scalar (Grad p)) => Manifold p where
- type HasGrad p = (Manifold p, BasicVector (Grad p))
- 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 # | |
(HasGrad (Scalar v), HasGrad v, HasGrad dv, Dual v dv, Grad dv ~ v, Grad v ~ dv, Tang v ~ v, Tang dv ~ dv, Grad (Scalar dv) ~ Scalar dv) => Dual (BVar r v) (BVar r dv) 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 v dv => HilbertSpace v dv where Source #
Instances
class (Dual (Tang p) (Grad p), Scalar (Tang p) ~ Scalar (Grad p)) => Manifold p Source #
Instances
Manifold Integer Source # | |
Manifold Double Source # | |
Manifold Float Source # | |
Num a => Manifold (AsNum a) Source # | |
(HasGrad (MScalar p), HasGrad (Tang p), HasGrad (Grad p), Grad (Grad p) ~ Tang p, Tang (Grad p) ~ Grad p, Tang (Tang p) ~ Tang p, Grad (Tang p) ~ Grad p, Grad (MScalar p) ~ MScalar p, Scalar (Grad p) ~ Scalar (Tang p), Manifold p) => Manifold (BVar r p) Source # | |
Manifold a => Manifold (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) => Manifold (a, b) Source # | |
(HasGrad a, HasGrad b, HasGrad c, MScalar b ~ MScalar a, MScalar c ~ MScalar a) => Manifold (a, b, c) Source # | |
type HasGrad p = (Manifold p, BasicVector (Grad p)) Source #
Differentiable functions don't need to be constrained to vector spaces, they can be defined on other smooth manifolds, too.
type GradBuilder v = VecBuilder (Grad v) Source #