Copyright | (c) Edward Kmett 2010-2015 |
---|---|

License | BSD3 |

Maintainer | ekmett@gmail.com |

Stability | experimental |

Portability | GHC only |

Safe Haskell | None |

Language | Haskell2010 |

Unsafe and often partial combinators intended for internal usage.

Handle with care.

- data Forward a
- primal :: Num a => Forward a -> a
- tangent :: Num a => Forward a -> a
- bundle :: a -> a -> Forward a
- unbundle :: Num a => Forward a -> (a, a)
- apply :: Num a => (Forward a -> b) -> a -> b
- bind :: (Traversable f, Num a) => (f (Forward a) -> b) -> f a -> f b
- bind' :: (Traversable f, Num a) => (f (Forward a) -> b) -> f a -> (b, f b)
- bindWith :: (Traversable f, Num a) => (a -> b -> c) -> (f (Forward a) -> b) -> f a -> f c
- bindWith' :: (Traversable f, Num a) => (a -> b -> c) -> (f (Forward a) -> b) -> f a -> (b, f c)
- transposeWith :: (Functor f, Foldable f, Traversable g) => (b -> f a -> c) -> f (g a) -> g b -> g c

# Documentation

`Forward`

mode AD

(Num a, Bounded a) => Bounded (Forward a) | |

(Num a, Enum a) => Enum (Forward a) | |

(Num a, Eq a) => Eq (Forward a) | |

Floating a => Floating (Forward a) | |

Fractional a => Fractional (Forward a) | |

Data a => Data (Forward a) Source | |

Num a => Num (Forward a) | |

(Num a, Ord a) => Ord (Forward a) | |

Real a => Real (Forward a) | |

RealFloat a => RealFloat (Forward a) | |

RealFrac a => RealFrac (Forward a) | |

Show a => Show (Forward a) Source | |

Erf a => Erf (Forward a) | |

InvErf a => InvErf (Forward a) | |

Num a => Mode (Forward a) Source | |

Num a => Jacobian (Forward a) Source | |

type Scalar (Forward a) = a Source | |

type D (Forward a) = Id a Source |

bind :: (Traversable f, Num a) => (f (Forward a) -> b) -> f a -> f b Source

bind' :: (Traversable f, Num a) => (f (Forward a) -> b) -> f a -> (b, f b) Source

bindWith :: (Traversable f, Num a) => (a -> b -> c) -> (f (Forward a) -> b) -> f a -> f c Source

bindWith' :: (Traversable f, Num a) => (a -> b -> c) -> (f (Forward a) -> b) -> f a -> (b, f c) Source

transposeWith :: (Functor f, Foldable f, Traversable g) => (b -> f a -> c) -> f (g a) -> g b -> g c Source