- Add
Semigroup
instance forId
.
- Support
doctest-0.12
- Revamp
Setup.hs
to usecabal-doctest
. This makes it build withCabal-2.0
, and makes thedoctest
s work withcabal new-build
and sandboxes.
- GHC 8 support
- Fix Kahn mode's
**
implementation - Fix multiple problems in Erf and InvErf methods
- Added
NoEq
versions of several combinators that can be used whenEq
isn't available on the numeric type involved.
- Further improvements have been made in the performance of
Sparse
mode, at least asymptotically, when used on functions with many variables. Since this is the target use-case forSparse
in the first place, this seems like a good trade-off. Note: this results in an API change, but only in the API of anInternal
module, so this is treated as a minor version bump.
- Made drastic improvements in the performance of
Tower
andSparse
modes 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.Double
modules for performance.
reflection
2 support
- Major bug fix for
grads
,jacobians
, and anything that usesSparse
mode inNumeric.AD
. Derivatives after the first two were previously incorrect.
- Support
nats
version 1
- Added
stochasticGradientDescent
.
- Removed broken
Directed
mode. - Added
Numeric.AD.Rank1
combinators and moved most infinitesimal handling back out of the modes and into anAD
wrapper.
- Fixed a bug in the type of
conjugateGradientAscent
andconjugateGradientDescent
that prevent users from being able to ever call it.
- Added the missing
instances.h
header file toextra-source-files
.
- An overhaul permitting monomorphic modes was completed by @alang9.
- Add a
ForwardDouble
monomorphic mode
- Added support for
erf
andinverf
, 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
ad
when running the doctests.
- Renamed
Reverse
toKahn
andWengert
toReverse
. 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
conjugateGradientDescent
andgradientDescent
fromNumeric.AD
conjugateGradientDescent
now stops before it starts returning NaN results.
- Renamed
Chain
toWengert
to reflect its use of Wengert lists for reverse mode. - Renamed
lift
toauto
to avoid conflict with the more prevalenttransformers
library. - 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
tan
andtanh
derivatives directly.
- Added
conjugateGradientDescent
andconjugateGradientAscent
toNumeric.AD.Newton
.
- Dependency bump
- Added
Chain
mode, which isReverse
using a linear tape that doesn't need to be sorted. - Added a suite of doctests.
- Bug fix in
Forward
mode. It was previously yielding incorrect results for anything that usedbind
orbind'
internally.
- Moved the contents of
Numeric.AD.Mode.Mixed
intoNumeric.AD
- Split off
Numeric.AD.Variadic
for the variadic combinators - Removed the
UU
,FU
,UF
, andFF
type aliases. - Stopped exporting the types for
Mode
andAD
from almost every module. ImportNumeric.AD.Types
if necessary. - Renamed
Tensors
toJet
- Dependency bump to be compatible with ghc 7.4.1 and mtl 2.1
- More aggressive zero tracking.
diff (**n) 0
for constant n anddiff (0**)
both now yield the correct answer for all modes.