Double
Double-precision floating point numbers. It is desirable that this
type be at least equal in range and precision to the IEEE
double-precision type.
Double-precision floating point numbers. It is desirable that this
type be at least equal in range and precision to the IEEE
double-precision type.
Mixed-Mode Automatic Differentiation, specialized to doubles.
Each combinator exported from this module chooses an appropriate AD
mode. The following basic operations are supported, modified as
appropriate by the suffixes below:
- grad computes the gradient (partial derivatives) of a
function at a point
- jacobian computes the Jacobian matrix of a function at a
point
- diff computes the derivative of a function at a point
- du computes a directional derivative of a function at a
point
- hessian compute the Hessian matrix (matrix of second
partial derivatives) of a function at a point
The suffixes have the following meanings:
- ' -- also return the answer
- With lets the user supply a function to blend the input
with the output
- F is a version of the base function lifted to return a
Traversable (or Functor) result
- s means the function returns all higher derivatives in a
list or f-branching Stream
- T means the result is transposed with respect to the
traditional formulation.
- 0 means that the resulting derivative list is padded with
0s at the end.
Root finding using Halley's rational method (the second in the class
of Householder methods). Assumes the function is three times
continuously differentiable and converges cubically when progress can
be made.
This module provides reverse-mode Automatic Differentiation
implementation using linear time topological sorting after the fact.
For this form of reverse-mode AD we use
StableName to recover
sharing information from the tape to avoid combinatorial explosion,
and thus run asymptotically faster than it could without such sharing
information, but the use of side-effects contained herein is benign.
Unsafe and often partial combinators intended for internal usage.
Handle with care.
Forward Mode AD specialized to
Double. This enables the entire
structure to be unboxed.
This module provides reverse-mode Automatic Differentiation using
post-hoc linear time topological sorting.
For reverse mode AD we use
StableName to recover sharing
information from the tape to avoid combinatorial explosion, and thus
run asymptotically faster than it could without such sharing
information, but the use of side-effects contained herein is benign.
Reverse-mode automatic differentiation using Wengert lists and
Data.Reflection
This version is specialized to
Double enabling the entire
structure to be unboxed.
Higher order derivatives via a "dual number tower".
Higher order derivatives via a "dual number tower".