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

Downhill.BVar

Synopsis

Documentation

data BVar r a Source #

Variable is a value paired with derivative.

Constructors

BVar 

Fields

Instances

Instances details
(Floating b, HasGrad b, MScalar b ~ b) => Floating (BVar r b) Source # 
Instance details

Defined in Downhill.BVar

Methods

pi :: BVar r b #

exp :: BVar r b -> BVar r b #

log :: BVar r b -> BVar r b #

sqrt :: BVar r b -> BVar r b #

(**) :: BVar r b -> BVar r b -> BVar r b #

logBase :: BVar r b -> BVar r b -> BVar r b #

sin :: BVar r b -> BVar r b #

cos :: BVar r b -> BVar r b #

tan :: BVar r b -> BVar r b #

asin :: BVar r b -> BVar r b #

acos :: BVar r b -> BVar r b #

atan :: BVar r b -> BVar r b #

sinh :: BVar r b -> BVar r b #

cosh :: BVar r b -> BVar r b #

tanh :: BVar r b -> BVar r b #

asinh :: BVar r b -> BVar r b #

acosh :: BVar r b -> BVar r b #

atanh :: BVar r b -> BVar r b #

log1p :: BVar r b -> BVar r b #

expm1 :: BVar r b -> BVar r b #

log1pexp :: BVar r b -> BVar r b #

log1mexp :: BVar r b -> BVar r b #

(Num b, HasGrad b, MScalar b ~ b) => Num (BVar r b) Source # 
Instance details

Defined in Downhill.BVar

Methods

(+) :: BVar r b -> BVar r b -> BVar r b #

(-) :: BVar r b -> BVar r b -> BVar r b #

(*) :: BVar r b -> BVar r b -> BVar r b #

negate :: BVar r b -> BVar r b #

abs :: BVar r b -> BVar r b #

signum :: BVar r b -> BVar r b #

fromInteger :: Integer -> BVar r b #

(Fractional b, HasGrad b, MScalar b ~ b) => Fractional (BVar r b) Source # 
Instance details

Defined in Downhill.BVar

Methods

(/) :: BVar r b -> BVar r b -> BVar r b #

recip :: BVar r b -> BVar r b #

fromRational :: Rational -> BVar r b #

(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 # 
Instance details

Defined in Downhill.BVar

Associated Types

type Tang (BVar r p) Source #

type Grad (BVar r p) Source #

(AdditiveGroup b, HasGrad b) => AdditiveGroup (BVar r b) Source # 
Instance details

Defined in Downhill.BVar

Methods

zeroV :: BVar r b #

(^+^) :: BVar r b -> BVar r b -> BVar r b #

negateV :: BVar r b -> BVar r b #

(^-^) :: BVar r b -> BVar r b -> BVar r b #

(HasGrad p, HasGradAffine p) => AffineSpace (BVar r p) Source # 
Instance details

Defined in Downhill.BVar

Associated Types

type Diff (BVar r p) #

Methods

(.-.) :: BVar r p -> BVar r p -> Diff (BVar r p) #

(.+^) :: BVar r p -> Diff (BVar r p) -> BVar r p #

(VectorSpace v, HasGrad v, Tang v ~ v, HilbertSpace (Tang v) (Grad v), BasicVector (MScalar v), Grad (MScalar v) ~ MScalar v, InnerSpace v, HasGrad (MScalar v)) => InnerSpace (BVar r v) Source # 
Instance details

Defined in Downhill.BVar

Methods

(<.>) :: BVar r v -> BVar r v -> Scalar (BVar r v) #

(VectorSpace v, HasGrad v, Tang v ~ v, HasGrad (MScalar v), Grad (Scalar v) ~ Scalar v) => VectorSpace (BVar r v) Source # 
Instance details

Defined in Downhill.BVar

Associated Types

type Scalar (BVar r v) #

Methods

(*^) :: Scalar (BVar r v) -> BVar r v -> BVar r v #

(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 # 
Instance details

Defined in Downhill.BVar

Methods

evalGrad :: BVar r dv -> BVar r v -> Scalar (BVar r v) Source #

(HilbertSpace v dv, HasGrad (Scalar v), HasGrad v, HasGrad dv, Grad dv ~ v, Grad v ~ dv, Tang v ~ v, Tang dv ~ dv, Grad (Scalar dv) ~ Scalar dv) => HilbertSpace (BVar r v) (BVar r dv) Source # 
Instance details

Defined in Downhill.BVar

Methods

riesz :: BVar r v -> BVar r dv Source #

coriesz :: BVar r dv -> BVar r v Source #

type Grad (BVar r p) Source # 
Instance details

Defined in Downhill.BVar

type Grad (BVar r p) = BVar r (Grad p)
type Tang (BVar r p) Source # 
Instance details

Defined in Downhill.BVar

type Tang (BVar r p) = BVar r (Tang p)
type Diff (BVar r p) Source # 
Instance details

Defined in Downhill.BVar

type Diff (BVar r p) = BVar r (Tang p)
type Scalar (BVar r v) Source # 
Instance details

Defined in Downhill.BVar

type Scalar (BVar r v) = BVar r (MScalar v)

var :: a -> BVar (Grad a) a Source #

A variable with identity derivative.

constant :: forall r a. (BasicVector (Grad a), AdditiveGroup (Grad a)) => a -> BVar r a Source #

A variable with derivative of zero.

backprop :: forall r a. (HasGrad a, BasicVector r) => BVar r a -> Grad a -> r Source #

Reverse mode differentiation.

Pattern synonyms

pattern T2 :: forall r a b. (BasicVector (Grad a), BasicVector (Grad b)) => BVar r a -> BVar r b -> BVar r (a, b) Source #

pattern T3 :: forall r a b c. (BasicVector (Grad a), BasicVector (Grad b), BasicVector (Grad c)) => BVar r a -> BVar r b -> BVar r c -> BVar r (a, b, c) Source #