inf-backprop-0.2.0.0: Automatic differentiation and backpropagation.
Copyright(C) 2023 Alexey Tochin
LicenseBSD3 (see the file LICENSE)
MaintainerAlexey Tochin <Alexey.Tochin@gmail.com>
Safe HaskellNone
LanguageHaskell2010

Debug.DiffExpr

Description

Tools for symbolic differentiation expressions.

Synopsis

Documentation

twoArgFunc :: String -> SimpleExpr -> SimpleExpr -> SimpleExpr Source #

Create a binary function expression.

Examples

Expand
>>> import Debug.SimpleExpr (variable)
>>> twoArgFunc "f" (variable "x") (variable "y")
f(x,y)

class SymbolicFunc a where Source #

This typecalss is for creating symbolic unary function expressions.

It is used in conjunction with automatic differentiation to represent functions symbolically.

Examples

Expand
>>> import Debug.SimpleExpr (variable)
>>> import Numeric.InfBackprop (simpleDerivative)
>>> :{
 f :: SymbolicFunc a => a -> a
 f = unarySymbolicFunc "f"
:}
>>> f (variable "x")
f(x)
>>> simpleDerivative f (variable "x")
f'(x)*1

Methods

unarySymbolicFunc :: String -> a -> a Source #

Instances

Instances details
SymbolicFunc SimpleExpr Source #

SimpleExpr instance of SymbolicFunc typeclass.

Instance details

Defined in Debug.DiffExpr

Methods

unarySymbolicFunc :: String -> SimpleExpr -> SimpleExpr Source #

(SymbolicFunc a, Show a) => SymbolicFunc (Traced a) Source #

Traced instance of SymbolicFunc typeclass.

Instance details

Defined in Debug.DiffExpr

Methods

unarySymbolicFunc :: String -> Traced a -> Traced a Source #

(SymbolicFunc a, Multiplicative a) => SymbolicFunc (RevDiff t a a) Source #

RevDiff instance of SymbolicFunc typeclass.

Instance details

Defined in Debug.DiffExpr

Methods

unarySymbolicFunc :: String -> RevDiff t a a -> RevDiff t a a Source #

class BinarySymbolicFunc a where Source #

This typecalss is for creating symbolic binary function expressions.

It is used in conjunction with automatic differentiation to represent functions symbolically. See SymbolicFunc for unary functions.

Methods

binarySymbolicFunc :: String -> a -> a -> a Source #

Instances

Instances details
BinarySymbolicFunc SimpleExpr Source #

SimpleExpr instance of BinarySymbolicFunc typeclass.

Instance details

Defined in Debug.DiffExpr

Methods

binarySymbolicFunc :: String -> SimpleExpr -> SimpleExpr -> SimpleExpr Source #

(BinarySymbolicFunc a, Show a) => BinarySymbolicFunc (Traced a) Source #

Traced instance of BinarySymbolicFunc typeclass.

Instance details

Defined in Debug.DiffExpr

Methods

binarySymbolicFunc :: String -> Traced a -> Traced a -> Traced a Source #

(BinarySymbolicFunc a, Distributive a, Additive t) => BinarySymbolicFunc (RevDiff t a a) Source #

RevDiff instance of BinarySymbolicFunc typeclass.

Instance details

Defined in Debug.DiffExpr

Methods

binarySymbolicFunc :: String -> RevDiff t a a -> RevDiff t a a -> RevDiff t a a Source #

type TracedSimpleExpr = Traced SimpleExpr Source #

A traced version of SimpleExpr for debugging purposes.

type TSE = TracedSimpleExpr Source #

A type alias for Traced version of SimpleExpr.