- Revamp
Setup.hsto usecabal-doctest. This makes it build withCabal-1.25, and makes thedoctests work withcabal new-buildand sandboxes.
- GHC 8 support
- Fix Kahn mode's
**implementation - Fix multiple problems in Erf and InvErf methods
- Added
NoEqversions of several combinators that can be used whenEqisn't available on the numeric type involved.
- Further improvements have been made in the performance of
Sparsemode, at least asymptotically, when used on functions with many variables. Since this is the target use-case forSparsein the first place, this seems like a good trade-off. Note: this results in an API change, but only in the API of anInternalmodule, so this is treated as a minor version bump.
- Made drastic improvements in the performance of
TowerandSparsemodes thanks to the help of Björn von Sydow. - Added constrained convex optimization.
- Incorporated some suggestions from herbie for improving floating point accuracy.
- Added
Newton.Doublemodules for performance.
reflection2 support
- Major bug fix for
grads,jacobians, and anything that usesSparsemode inNumeric.AD. Derivatives after the first two were previously incorrect.
- Support
natsversion 1
- Added
stochasticGradientDescent.
- Removed broken
Directedmode. - Added
Numeric.AD.Rank1combinators and moved most infinitesimal handling back out of the modes and into anADwrapper.
- Fixed a bug in the type of
conjugateGradientAscentandconjugateGradientDescentthat prevent users from being able to ever call it.
- Added the missing
instances.hheader file toextra-source-files.
- An overhaul permitting monomorphic modes was completed by @alang9.
- Add a
ForwardDoublemonomorphic mode
- Added support for
erfandinverf, etc. fromData.Number.Erf. - Split the infinitesimal and mode into two separate parameters to facilitate inlining and easier extension of the API.
- Build system improvements
- Removed unused LANGUAGE pragmas
- Added HLint configuration
- We now use exactly the same versions of the packages used to build
adwhen running the doctests.
- Renamed
ReversetoKahnandWengerttoReverse. We use Arthur Kahn's topological sorting algorithm to sort the tape after the fact in Kahn mode, while the stock Reverse mode builds a Wengert list as it goes, which is more efficient in practice.
- Export of the
conjugateGradientDescentandgradientDescentfromNumeric.AD
conjugateGradientDescentnow stops before it starts returning NaN results.
- Renamed
ChaintoWengertto reflect its use of Wengert lists for reverse mode. - Renamed
lifttoautoto avoid conflict with the more prevalenttransformerslibrary. - Fixed a bug in
Numeric.AD.Forward.gradWith', which caused it to return the wrong value for the primal.
- Added a better "convergence" test for
findZero - Compute
tanandtanhderivatives directly.
- Added
conjugateGradientDescentandconjugateGradientAscenttoNumeric.AD.Newton.
- Dependency bump
- Added
Chainmode, which isReverseusing a linear tape that doesn't need to be sorted. - Added a suite of doctests.
- Bug fix in
Forwardmode. It was previously yielding incorrect results for anything that usedbindorbind'internally.
- Moved the contents of
Numeric.AD.Mode.MixedintoNumeric.AD - Split off
Numeric.AD.Variadicfor the variadic combinators - Removed the
UU,FU,UF, andFFtype aliases. - Stopped exporting the types for
ModeandADfrom almost every module. ImportNumeric.AD.Typesif necessary. - Renamed
TensorstoJet - Dependency bump to be compatible with ghc 7.4.1 and mtl 2.1
- More aggressive zero tracking.
diff (**n) 0for constant n anddiff (0**)both now yield the correct answer for all modes.