Copyright | (c) Edward Kmett 2010-2021 |
---|---|
License | BSD3 |
Maintainer | ekmett@gmail.com |
Stability | experimental |
Portability | GHC only |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Synopsis
- class (Mode t, Mode (D t), Num (D t)) => Jacobian t where
- type D t :: *
- unary :: (Scalar t -> Scalar t) -> D t -> t -> t
- lift1 :: (Scalar t -> Scalar t) -> (D t -> D t) -> t -> t
- lift1_ :: (Scalar t -> Scalar t) -> (D t -> D t -> D t) -> t -> t
- binary :: (Scalar t -> Scalar t -> Scalar t) -> D t -> D t -> t -> t -> t
- lift2 :: (Scalar t -> Scalar t -> Scalar t) -> (D t -> D t -> (D t, D t)) -> t -> t -> t
- lift2_ :: (Scalar t -> Scalar t -> Scalar t) -> (D t -> D t -> D t -> (D t, D t)) -> t -> t -> t
Documentation
class (Mode t, Mode (D t), Num (D t)) => Jacobian t where Source #
Jacobian
is useful for defining new AD primitives in a
fairly generic way.
unary :: (Scalar t -> Scalar t) -> D t -> t -> t Source #
lift1 :: (Scalar t -> Scalar t) -> (D t -> D t) -> t -> t Source #
lift1_ :: (Scalar t -> Scalar t) -> (D t -> D t -> D t) -> t -> t Source #
binary :: (Scalar t -> Scalar t -> Scalar t) -> D t -> D t -> t -> t -> t Source #
lift2 :: (Scalar t -> Scalar t -> Scalar t) -> (D t -> D t -> (D t, D t)) -> t -> t -> t Source #
lift2_ :: (Scalar t -> Scalar t -> Scalar t) -> (D t -> D t -> D t -> (D t, D t)) -> t -> t -> t Source #