All Versions
22
Latest Version
Avg Release Cycle
52 days
Latest Release
-

Changelog History
Page 1

  • v0.2.6.4 Changes

    June 30, 2020

    ๐Ÿš€ https://github.com/mstksg/backprop/releases/tag/v0.2.6.4

    • Compatibility with ghc-8.10.1 (@tonyday567)
  • v0.2.6.3 Changes

    August 13, 2019

    August 13, 2019

    ๐Ÿš€ https://github.com/mstksg/backprop/releases/tag/v0.2.6.3

    • Add Backprop instances for the various vinyl types.
    • Rewrite many Backprop instances over newtypes to coerce instead of go through Generics
  • v0.2.6.2 Changes

    April 08, 2019

    April 7, 2019

    ๐Ÿš€ https://github.com/mstksg/backprop/releases/tag/v0.2.6.2

    • Fix a numerical bug that would occur when an input is used directly as the result of a computation. (For example, gradBP id or gradBP2 const).
    • ๐ŸŽ Some internal changes to strictness which offers some performance boosts in computation of gradients.
  • v0.2.6.1 Changes

    August 07, 2018

    August 6, 2018

    ๐Ÿš€ https://github.com/mstksg/backprop/releases/tag/v0.2.6.1

    • ๐Ÿšš Removed redundant constraints from Floating instance of Op.
    • Fixed lower bound for vinyl dependency.
  • v0.2.6.0 Changes

    August 06, 2018

    August 6, 2018

    ๐Ÿš€ https://github.com/mstksg/backprop/releases/tag/v0.2.6.0

    • Dropped Expr instance of Backprop. I don't think anyone was actually using this. If you need this, please use Numeric.Backprop.Num instead!
    • Removed Rec re-exports.
    • Compatibility with vinyl-0.9, using the Data.Vinyl.Recursive interface. This requires some minor reshuffling of constraints but should not affect any monomorphic usage.
  • v0.2.5.0 Changes

    June 20, 2018

    June 19, 2018

    ๐Ÿš€ https://github.com/mstksg/backprop/releases/tag/v0.2.5.0

    • Since type-combinators has been unmaintained for over two years, and is no longer compatible with modern GHC, the library internals was rewritten to be built on the type-level combinators in the vinyl library instead. The main external API change is basically Every is replaced with AllConstrained, and Known Length is replaced with RecApplicative.

      To most users, this should make no difference API-wise. The only users affected should be those using the "-N" family of functions (backpropN), who have to pass in heterogeneous lists. Heterogeneous lists now must be passed in using vinyl syntax and operators instead of the previous type-combinators interface.

    • bpOp added, to allow for non-rank-N storage of backpropagatable functions in containers without impredicative types.

    • Benchmarks use microlens and microlens-th instead of lens.

  • v0.2.4.0 Changes

    May 29, 2018

    May 28, 2018

    ๐Ÿš€ https://github.com/mstksg/backprop/releases/tag/v0.2.4.0

    NOTE Major breaking changes to Explicit modules, and some re-shuffling of typeclass constraints on various non-explicit functions that should only affect polymorphic usage.

    • ๐ŸŽ Huge improvements in performance! Around 20-40% reduction in runtimes/overheads, with savings higher for large matrix situations or situations with expensive add.
    • However, this restructuring required major reshuffling of constraints on Backprop/Num for most functions. These are potentially breaking changes for polymorphic code, but monomorphic code should remain unchanged. However, code using the Explicit interfaces is most likely broken unfortunately. Fixes just include adding or dropping zeroFuncs to the appropriate functions.
    • Added warnings to Explicit modules that the API is "semi-stable".
    • overVar and %~~, for modifying fields. Essentially a wrapper over a viewVar and setVar.
    • Argument order in the backpropWith family of functions changed again; breaking change for those using any backpropWith function. However, the new order is much more usable.
    • Changes to the argument order in the backprop family of functions in the Explicit interfaces now reverted back to previous order, from v0.2.0 and before. Should be an "un-breaking" change, but will break code written in v0.2.3 style.
    • ๐Ÿ“š Bechmarks now include HKD access and a "hybrid" approach. Documentation updated to reflect results.
    • ๐Ÿ“š Documentation updated to include a new "unital" law for one, namely one = gradBP id.
    • Fixity declarations for ^^?, ^^?!, and <$>.
    • Added fmap . const and <$ to Prelude modules.
    • Backprop instances for Expr from simple-reflect
    • Added zeroVecNum and oneVecNum to Numeric.Backprop.Class, which is potentially more efficient than zeroVec and oneVec if the items are instances of Num and the vectors are larger. Also added NumVec newtype wrapper giving Backprop instances to vectors using zeroVecNum and oneVecNum instead of zeroVec and oneVec.
    • ๐Ÿ— Build.hs build script now also builds profiling results
  • v0.2.3.0 Changes

    May 25, 2018

    May 25, 2018

    ๐Ÿš€ https://github.com/mstksg/backprop/releases/tag/v0.2.3.0

    • Argument order in backpropWith family of functions switched around to allow for final gradient to be given after-the-fact. Breaking change for anyone using any backpropWith function.
    • As a consequence of the previous change, backprop family of functions in Explicit interfaces also all changed argument order. Breaking change only for those using the Explicit interfaces.
    • Explicit collectVar no longer needs a ZeroFunc for the container, and so all versions of collectVar and functions that use it (fmap, liftA2, liftA3, traverse, mapAccumL, mapAccumR) no longer require Backprop or Num instances for the final returned container type. This enables a lot more flexibility in container types. Breaking change only for those using the Explicit interfaces.
    • BV pattern synonym added to Numeric.Backprop, abstracting over application of splitBV and joinBV.
    • foldr and foldl' added to Prelude modules, for convenience.
    • round and fromIntegral' ("unround") added to Prelude modules.
  • v0.2.2.0 Changes

    May 12, 2018

    May 12, 2018

    ๐Ÿš€ https://github.com/mstksg/backprop/releases/tag/v0.2.2.0

    • evalBP0 added, for convenience for no-argument values that need to be evaluated without backpropagation.
    • ๐Ÿ’… splitBV and joinBV for "higher-kinded data" style BVar manipulation, via the BVGroup helper typeclass.
    • toList, mapAccumL, and mapAccumR for Prelude.Backprop modules
    • Backprop instance for BVar
    • COMPLETE pragmas for T2 and T3
    • Un-exported gzero, gadd, and gone from Numeric.Backprop.Class
    • Many, many more instances of Backprop
    • Backprop instance for Proxy made non-strict for add
    • Swapped type variable order for a few library functions, which might potentially be breaking changes.

    Internal

    • ๐Ÿ“š Fixed documentation for Num and Explicit Prelude modules, and rewrote normal and Num Prelude modules in terms of canonical Prelude definitions
    • Switched to errorWithoutStackTrace wherever appropriate (in Internal module)
  • v0.2.1.0 Changes

    May 08, 2018

    May 8, 2018

    ๐Ÿš€ https://github.com/mstksg/backprop/releases/tag/v0.2.1.0

    • Added ABP newtype wrapper to Numeric.Backprop.Class (re-exported from Numeric.Backprop and Numeric.Backprop.Explicit) to give free Backprop instances for Applicative actions.
    • Added NumBP newtype wrapper to Numeric.Backprop.Class (re-exported in the same places as ABP) to give free Backprop instances for Num instances.
    • Added ^^?! (unsafe access) to Numeric.Backprop and Numeric.Backprop.Num.
    • Backprop instance for Natural from Numeric.Natural. Should actually be safe, unlike its Num instance!
    • zfFunctor and ofFunctor for instances of Functor for Numeric.Backprop.Explicit.
    • realToFrac and fromIntegral to Prelude modules
    • T2 and T3 patterns for Numeric.Backprop, for conveniently constructing and deconstructing tuples.