Skip to content

Releases: adrhill/SparseConnectivityTracer.jl

v0.6.3

02 Sep 17:58
Compare
Choose a tag to compare

SparseConnectivityTracer v0.6.3

Diff since v0.6.2

  • Feature Add DataInterpolations.jl package extension (#178)
  • Feature Add LogExpFunctions.jl package extension (#184)
  • Feature Add NaNMath.jl package extension (#187)
  • Feature Support two-argument atan and log (#185)
  • Documentation Document limitations of operator overloading utils (#180)
  • Documentation Reexport ADTypes interface (#182)
  • Documentation Update developer documentation URLs (#186)
  • Maintenance Reorganize code and update code generation utilities (#179, #183)

Merged pull requests:

Closed issues:

  • Add package extension for NaNMath.jl (#170)
  • Add package extension for LogExpFunctions.jl (#171)

v0.6.2

20 Aug 18:51
Compare
Choose a tag to compare

SparseConnectivityTracer v0.6.2

Diff since v0.6.1

  • Feature Return only primal value when applying non-differentiable methods to Dual numbers (#169)
  • Feature Increase sparsity for Diagonal inputs (#165)
  • Feature Add more methods on round, rand (#162)
  • Documentation This release brings large updates to the documentation:
    • Document limitations (#175)
    • Document global vs. local patterns (#176)
    • Add "How it works" developer documentation (#174)
    • Add developer documentation on custom overloads (#177)
  • Enhancement Refactor type conversions (#173, #168, #166)
  • Enhancement Make comparisons regular operators (#169)
  • Bugfix Fix Hessian on NNlib activation functions celu, elu, selu, hardswish (#162)
  • Bugfix Fix isless (#161)

Merged pull requests:

Closed issues:

  • Document control flow limitations of global tracers (#143)
  • Add custom trace_input methods for LinearAlgebra matrix types (#147)
  • Add support for round (#152)
  • Another problem with isless (#153)
  • Add guide on how to add custom overloads (#163)
  • More problems regarding round (#164)
  • Zero-derivative functions on dual numbers should only return the primal (#167)
  • Behavior of zeros (#172)

v0.6.1

12 Aug 20:18
Compare
Choose a tag to compare

SparseConnectivityTracer v0.6.1

Diff since v0.6.0

  • Enhancement Improve the performance of Hessian pattern tracing by an order of magnitude:
    • Internally represent Hessian with dictionaries (#155, #158)
    • Increase performance via symmetry of Hessian (#151)
  • Feature Support ComponentArrays (#146)
  • Feature Support boolean not (!) (#150)
  • Feature Support isless (#149)

Merged pull requests:

Closed issues:

  • Support more input types (#28)
  • Potential increase in performance via symmetry of Hessian (#34)
  • Is GPU support possible for Jacobian tracing? (#67)
  • How to handle complex numbers? (#102)
  • Add support for ComponentVector (#145)
  • Missing negation (#148)
  • Return Symmetric Hessians by default? (#154)

v0.6.0

30 Jul 21:31
Compare
Choose a tag to compare

SparseConnectivityTracer v0.6.0

Diff since v0.5.1

  • BREAKING Remove ConnectivityTracer (#140)
  • BREAKING Remove legacy interface (#140)
    • instead of jacobian_pattern(f, x), use jacobian_sparsity(f, x, TracerSparsityDetector())
    • instead of hessian_pattern(f, x), use hessian_sparsity(f, x, TracerSparsityDetector())
    • instead of local_jacobian_pattern(f, x), use jacobian_sparsity(f, x, TracerLocalSparsityDetector())
    • instead of local_hessian_pattern(f, x), use hessian_sparsity(f, x, TracerLocalSparsityDetector())
  • Bugfix Remove overloads on similar to reduce amount of invalidations (#132)
  • Bugfix Fix sparse array construction (#142)
  • Enhancement Add array overloads (#131)
  • Enhancement Generalize sparsity pattern representations (#139, #119)
  • Enhancement Reduce allocations of new tracers (#128)
  • Enhancement Reduce compile times (#119)

Merged pull requests:

Closed issues:

  • Add isempty flag to tracers (#80)
  • Shared sets and sets with shared objects (#107)
  • StackOverflow when creating SparseMatrixCSC with tracers as values (#108)
  • Generalize first- and second-order information in HessianTracer (#114)
  • Add AbstractArray{<:AbstractTracer} methods for common LinearAlgebra functions (#115)
  • [documentation] typo in a Tracer (#116)
  • Benchmarking against JuMP: faster on Jacobians, slower on Hessians (#118)
  • ADNLPModels test suite fails (#120)
  • SnoopCompile investigation (#122)
  • Remove overloads on similar (#123)
  • Missing sparse constructor overloads (#141)

v0.5.1

01 Jun 12:50
Compare
Choose a tag to compare

SparseConnectivityTracer v0.5.1

Diff since v0.5.0

Merged pull requests:

Closed issues:

  • Add optimization problems to "real-world" tests (#69)
  • Allow more Hessian set types than just Set{Tuple{Int,Int}} (#105)

v0.5.0

24 May 19:54
Compare
Choose a tag to compare

SparseConnectivityTracer v0.5.0

Diff since v0.4.2

Merged pull requests:

  • Support ifelse (#94) (@adrhill)
  • Restructure benchmarks, add Hessian test cases (#104) (@gdalle)
  • Fix 3-argument similar and add tests on type conversions (#106) (@adrhill)

Closed issues:

  • Add benchmarks for Dual and Hessian tracers (#88)
  • Global sparsity detection with control flow (#90)

v0.4.2

24 May 14:36
Compare
Choose a tag to compare

SparseConnectivityTracer v0.4.2

Diff since v0.4.1

Merged pull requests:

  • Make AbstractTracer subtype of Real (#92) (@adrhill)
  • Add back global Jacobian tests (#93) (@adrhill)
  • Limit Dual to Real primals, replace all Number with Real (#95) (@gdalle)
  • Add stdlib compat <0.0.1 (#97) (@gdalle)
  • Support Hessians on non-tracer outputs (#99) (@gdalle)
  • Constrain type of primal value in Dual (#101) (@adrhill)

Closed issues:

  • Make AbstractTracer a subtype of Real, not Number (#91)
  • Compat bounds for stdlibs (#96)
  • Support functions that don't depend on the input (#98)
  • Weird ambiguity on 1.6 but not on 1.10 (#100)

v0.4.1

22 May 22:08
Compare
Choose a tag to compare

SparseConnectivityTracer v0.4.1

Diff since v0.4.0

Merged pull requests:

Closed issues:

  • Support "Hessians" for vector-valued functions (#29)
  • Add tests for local derivatives (#66)
  • Support for linear algebra (#68)
  • Local sparsity support with ADTypes (#72)
  • Support dot products (#73)

v0.4.0

17 May 16:32
Compare
Choose a tag to compare

SparseConnectivityTracer v0.4.0

Diff since v0.3.3

New features

This release adds dual-number tracers that compute local sparsity patterns and are compatible with functions that require primal value information (e.g. iszero, >, ==).

These can be used via three new functions:

  • local_jacobian_pattern
  • local_hessian_pattern
  • local_connectivity_pattern

Merged pull requests:

Closed issues:

  • Return both Hessian and Jacobian patterns (#30)
  • Add local tracers (#56)
  • Refactor following theory (#57)
  • Operators with local sparsity > global sparsity (#64)
  • Support for linear algebra (#68)

v0.3.3

14 May 15:26
Compare
Choose a tag to compare

SparseConnectivityTracer v0.3.3

Diff since v0.3.2

Merged pull requests:

Closed issues:

  • Switch to Int by default instead of UInt (#61)