/diffhask

DSL for forward and reverse mode automatic differentiation in Haskell. Port of DiffSharp.

Primary LanguageHaskellMIT LicenseMIT

diffhask

Hackage Build status MIT license

Vive la programmation différentielle!

-- Yan LeCun

DSL for forward and reverse mode automatic differentiation via a version of operator overloading.

Port of DiffSharp to Haskell; currently a work in progress.

Example usage:

let g a b = (a + b / a) / (D 2.0 :: D Float)
compute $ diff' (fixPoint g (D 1.2)) (D 25.0 :: D Float) 
-- (D 1.0, D 5.0), (D 1.0, D 0.1)