Releases: adrhill/SparseConnectivityTracer.jl
Releases · adrhill/SparseConnectivityTracer.jl
v0.6.3
SparseConnectivityTracer v0.6.3
Add DataInterpolations.jl package extension (#178)
Add LogExpFunctions.jl package extension (#184)
Add NaNMath.jl package extension (#187)
Support two-argument
atan
andlog
(#185)Document limitations of operator overloading utils (#180)
Reexport ADTypes interface (#182)
Update developer documentation URLs (#186)
Reorganize code and update code generation utilities (#179, #183)
Merged pull requests:
DataInterpolations
support (#178) (@SouthEndMusic)- Reorganize code (#179) (@adrhill)
- Document limitations of operator overloading utils (#180) (@adrhill)
- Minor fixes to documentation (#182) (@adrhill)
- Update code generation utilities (#183) (@adrhill)
- Add LogExpFunctions package extension (#184) (@adrhill)
- Add two-arg
atan
,log
(#185) (@adrhill) - Rename developer documentation folder (#186) (@adrhill)
- Add NaNMath package extension (#187) (@adrhill)
Closed issues:
v0.6.2
SparseConnectivityTracer v0.6.2
Return only primal value when applying non-differentiable methods to
Dual
numbers (#169)Increase sparsity for Diagonal inputs (#165)
Add more methods on
round
,rand
(#162)This release brings large updates to the documentation:
Refactor type conversions (#173, #168, #166)
Make comparisons regular operators (#169)
Fix Hessian on NNlib activation functions
celu
,elu
,selu
,hardswish
(#162)Fix
isless
(#161)
Merged pull requests:
- Fix
isless
and update tests (#161) (@adrhill) - More methods for
round
andrand
, fix NNlib (#162) (@adrhill) - Increase sparsity for
Diagonal
inputs (#165) (@adrhill) - Fix
convert
onDual
(#166) (@adrhill) - Add direct type conversion on
Dual
(#168) (@adrhill) - Return only
primal
when applying non-differentiable methods toDual
(#169) (@adrhill) - Refactor type conversions (#173) (@adrhill)
- Add "How it works" developer documentation (#174) (@adrhill)
- Document limitations (#175) (@adrhill)
- Document global vs. local sparsity patterns (#176) (@adrhill)
- Document how to add custom overloads (#177) (@adrhill)
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
SparseConnectivityTracer v0.6.1
Improve the performance of Hessian pattern tracing by an order of magnitude:
Support ComponentArrays (#146)
Support boolean not (
!
) (#150)Support
isless
(#149)
Merged pull requests:
- Support ComponentArrays (#146) (@gdalle)
- Support
isless
(#149) (@adrhill) - Support boolean not
!
(#150) (@adrhill) - Increase performance via symmetry of Hessian (#151) (@adrhill)
- Bring back dictionaries for Hessian patterns (#155) (@adrhill)
- Rename variables in Hessian tracer code (#156) (@adrhill)
- Smaller benchmarks (#157) (@adrhill)
- Use
DictHessianPattern
as default tracer pattern (#158) (@adrhill) - Remove randomness from benchmarks (#159) (@adrhill)
- Rename benchmarks to avoid parsing of tuples (#160) (@adrhill)
Closed issues:
v0.6.0
SparseConnectivityTracer v0.6.0
Remove
ConnectivityTracer
(#140)Remove legacy interface (#140)
- instead of
jacobian_pattern(f, x)
, usejacobian_sparsity(f, x, TracerSparsityDetector())
- instead of
hessian_pattern(f, x)
, usehessian_sparsity(f, x, TracerSparsityDetector())
- instead of
local_jacobian_pattern(f, x)
, usejacobian_sparsity(f, x, TracerLocalSparsityDetector())
- instead of
local_hessian_pattern(f, x)
, usehessian_sparsity(f, x, TracerLocalSparsityDetector())
- instead of
Remove overloads on
similar
to reduce amount of invalidations (#132)Fix sparse array construction (#142)
Add array overloads (#131)
Generalize sparsity pattern representations (#139, #119)
Reduce allocations of new tracers (#128)
Reduce compile times (#119)
Merged pull requests:
- Fix typo in docs (#117) (@adrhill)
- Generalize sparsity pattern representations (#119) (@adrhill)
- Clean up NLPModels test suite (#121) (@gdalle)
- Add CITATION (#125) (@adrhill)
- Fix tracer overloads on exponent function (#126) (@adrhill)
- Slim down benchmark suite (#127) (@adrhill)
- Avoid allocating new tracers (#128) (@adrhill)
- Restructure code and rename operator traits (#129) (@adrhill)
- Add array overloads (#131) (@adrhill)
- Remove overloads on
similar
(#132) (@adrhill) - Add shared Hessian tracer à la Walther (#135) (@gdalle)
- Put benchmark boilerplate into subpackage (#136) (@gdalle)
- Introduce sparsity patterns (#139) (@adrhill)
- Remove
ConnectivityTracer
and legacy API (#140) (@adrhill) - Fix sparse array construction (#142) (@adrhill)
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
SparseConnectivityTracer v0.5.1
Merged pull requests:
- Add NLPModels testing (#83) (@gdalle)
- Allow more generic hessian set types (#103) (@gdalle)
- Get rid of UInt64 (#109) (@gdalle)
- Fix
float
, fix constructor tests (#110) (@adrhill) - Measure code coverage of test directory (#111) (@adrhill)
- Fix failing benchmarks (#112) (@gdalle)
- Fix
real
, improve code coverage (#113) (@adrhill)
Closed issues:
v0.5.0
v0.4.2
SparseConnectivityTracer v0.4.2
Merged pull requests:
- Make
AbstractTracer
subtype ofReal
(#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:
v0.4.1
SparseConnectivityTracer v0.4.1
Merged pull requests:
- Replace operator symbols with operator objects (#71) (@gdalle)
- Add conj, real, transpose, adjoint on numbers (#75) (@gdalle)
- Revamp classification tests (#76) (@gdalle)
- Put overloading mechanism into functions (#77) (@gdalle)
- Add influence classification for ConnectivityTracer (#78) (@gdalle)
- Test on 1.6 too (#79) (@gdalle)
- Add
TracerLocalSparsityDetector
(#81) (@adrhill) - Add SpecialFunctions extension (#82) (@gdalle)
- Fix dual
HessianTracer
on exponent (#84) (@adrhill) - Add NNlib extension (#85) (@adrhill)
- Split
Connectivity
- andGradientTracer
tests (#86) (@adrhill) - Remove unused interpolation (#87) (@adrhill)
- Add back interpolation (#89) (@adrhill)
Closed issues:
v0.4.0
SparseConnectivityTracer v0.4.0
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:
- Refactor code to match theory (#59) (@adrhill)
- Add local tracers (#65) (@adrhill)
- Support Flux
Conv
layers with ReLU activation functions (#70) (@adrhill)
Closed issues:
v0.3.3
SparseConnectivityTracer v0.3.3
Merged pull requests:
- Bump julia-actions/cache from 1 to 2 (#49) (@dependabot[bot])
- Bump actions/cache from 3 to 4 (#60) (@dependabot[bot])
- Sparse matrices with Int indices (#62) (@gdalle)
Closed issues:
- Switch to
Int
by default instead ofUInt
(#61)