Recent Releases of SparseConnectivityTracer
SparseConnectivityTracer - v1.0.1
SparseConnectivityTracer v1.0.1
Merged pull requests:
- Fix a typo in adtypes_interface.jl (#257) (@amontoison)
- Fix invalidations on ismissing and isnothing (#259) (@adrhill)
Closed issues: - The isnothing and ismissing overloads cause invalidations (#258)
- Julia
Published by github-actions[bot] 6 months ago
SparseConnectivityTracer - v1.0.0
SparseConnectivityTracer v1.0.0
This release is only breaking for users who touched unexported internals.
Refactor internal types (#254)
Select internal data structures for sparsity pattern representations via the
TracerSparsityDetectorandTracerLocalSparsityDetectorkeyword argumentsgradient_pattern_typeandhessian_pattern_type. Refer to the new doc page on "Performance" for more information. (#254, #256)Move DataInterpolations.jl extension out of SCT (#255)
Merged pull requests: - mention PreallocationTools.jl (#253) (@ranocha) - Simplify tracer types (#254) (@adrhill) - Move DataInterpolations extension out of SCT (#255) (@adrhill) - Document configuration of data structures for sparsity patterns (#256) (@adrhill)
Closed issues: - Add preparation mechanism (#218) - Simplify interface, document set type selection (#240) - Support PreallocationTools.jl (#250)
- Julia
Published by github-actions[bot] 8 months ago
SparseConnectivityTracer - v0.6.21
SparseConnectivityTracer v0.6.21
Merged pull requests: - Remove global overloads based on auxiliary values, document design principles (#249) (@adrhill)
- Julia
Published by github-actions[bot] 9 months ago
SparseConnectivityTracer - v0.6.20
SparseConnectivityTracer v0.6.20
Merged pull requests: - Generalize code generation for 2-to-1 operators with auxiliary non-tracer inputs (#247) (@adrhill) - Temporarily disable global overloads based on auxiliary values (#248) (@adrhill)
Closed issues: - Select output type of sparsity pattern (#14) - Benchmarks with BundleAdjustmentModels.jl (#134) - Complex number support (#220) - Refactor code generation mechanism to support global sparsity based on non-tracer argument values (#244)
- Julia
Published by github-actions[bot] 9 months ago
SparseConnectivityTracer - v0.6.19
SparseConnectivityTracer v0.6.19
Merged pull requests: - Add matrix multiplication shortcuts (#241) (@gdalle) - Stop tracing through multiplication by zero (#243) (@gdalle) - Use Runic for code formatting (#245) (@adrhill)
Closed issues: - Take into account multiplication by fixed (non-dual) 0 (#242)
- Julia
Published by github-actions[bot] 9 months ago
SparseConnectivityTracer - v0.6.18
SparseConnectivityTracer v0.6.18
Merged pull requests: - DataInterpolations v8 compatiblity (#234) (@visr)
- Julia
Published by github-actions[bot] 10 months ago
SparseConnectivityTracer - v0.6.17
SparseConnectivityTracer v0.6.17
Merged pull requests: - Performance optimization in pattern creation (#239) (@gdalle)
- Julia
Published by github-actions[bot] 11 months ago
SparseConnectivityTracer - v0.6.16
SparseConnectivityTracer v0.6.16
Merged pull requests: - Fix \ for Dual (#236) (@ErikQQY)
Closed issues:
- TypeError with \ using BigFloat (#235)
- Add support for RecursiveArrayTools.jl (#237)
- Julia
Published by github-actions[bot] 11 months ago
SparseConnectivityTracer - v0.6.15
SparseConnectivityTracer v0.6.15
Merged pull requests: - Add stable API for tracer type (#233) (@gdalle)
- Julia
Published by github-actions[bot] 12 months ago
SparseConnectivityTracer - v0.6.14
SparseConnectivityTracer v0.6.14
Merged pull requests: - Add stable API for allocation of buffers (#232) (@adrhill)
- Julia
Published by github-actions[bot] 12 months ago
SparseConnectivityTracer - v0.6.13
SparseConnectivityTracer v0.6.13
Merged pull requests:
- Return Dual on zero and friends (#231) (@adrhill)
Closed issues:
- zero on Dual return Float (#230)
- Julia
Published by github-actions[bot] about 1 year ago
SparseConnectivityTracer - v0.6.12
SparseConnectivityTracer v0.6.12
Merged pull requests:
- Fix 3-arg dot ambiguity (#228) (@adrhill)
Closed issues:
- Add array level overloads for * and dot (#133)
- dot ambiguity (#227)
- Julia
Published by github-actions[bot] about 1 year ago
SparseConnectivityTracer - v0.6.11
SparseConnectivityTracer v0.6.11
SCT has a new preprint! 🎉 Check it out on the arXiv: Sparser, Better, Faster, Stronger: Efficient Automatic Differentiation for Sparse Jacobians and Hessians
Add overloads for 3-argument
dot(#226)
Merged pull requests:
- Cite preprint (#225) (@adrhill)
- Add overloads for dot (#226) (@adrhill)
Closed issues:
- HessianTracer does not handle dot (#224)
- Julia
Published by github-actions[bot] about 1 year ago
SparseConnectivityTracer - v0.6.10
SparseConnectivityTracer v0.6.10
Merged pull requests: - Bump codecov/codecov-action from 4 to 5 (#215) (@dependabot[bot]) - fix link to DI.jl/sparsity docs in readme (#219) (@hexaeder) - Add compat for DataInterpolations v7 (#221) (@visr) - Fix jacobian_sparsity for inplace function (#223) (@ErikQQY)
Closed issues: - Undef reference appeared when using jacobian_sparsity for in-place function (#222)
- Julia
Published by github-actions[bot] about 1 year ago
SparseConnectivityTracer - v0.6.9
SparseConnectivityTracer v0.6.9
Merged pull requests: - Simplify DataInterpolations.jl extension (#210) (@adrhill) - Relax type annotations in Jacobian output parsing (#217) (@adrhill)
Closed issues: - Failure to parse local Jacobian sparsity pattern (#216)
- Julia
Published by github-actions[bot] over 1 year ago
SparseConnectivityTracer - v0.6.8
SparseConnectivityTracer v0.6.8
Merged pull requests:
- Increase code coverage (#206) (@adrhill)
- Support clamp and clamp! (#208) (@adrhill)
- Remove DuplicateVector (#209) (@adrhill)
Closed issues:
- Fix DuplicateVector performance (#63)
- Overload lu on matrices of tracers (#138)
- Specialize array overloads (#192)
- clamp gives TypeError from julia 1.11 (#207)
- Julia
Published by github-actions[bot] over 1 year ago
SparseConnectivityTracer - v0.6.7
SparseConnectivityTracer v0.6.7
Merged pull requests:
- Drop compatibility with Julia versions below LTS (#204) (@adrhill)
- Move @noinline into code generation utilities (#205) (@adrhill)
Closed issues:
- Move @noinline into generated overloads once Julia 1.6 compatibility is dropped (#130)
- Julia
Published by github-actions[bot] over 1 year ago
SparseConnectivityTracer - v0.6.6
SparseConnectivityTracer v0.6.6
Merged pull requests:
- Generate 2-to-1 overloads on arbitrary types (#197) (@adrhill)
- Fix JET and DataInterpolations tests (#198) (@adrhill)
- Update CI: test on LTS and pre-release build (#199) (@adrhill)
- Add ForwardDiff package extension (#200) (@adrhill)
- Fix detector display by replacing println with print (#201) (@gdalle)
- Avoid overwriting methods when generating 2-to-1 overloads on arbitrary types (#202) (@adrhill)
- Remove ForwardDiff extension (#203) (@adrhill)
Closed issues: - Interoperability with dual numbers (#196)
- Julia
Published by github-actions[bot] over 1 year ago
SparseConnectivityTracer - v0.6.5
SparseConnectivityTracer v0.6.5
Merged pull requests: - Fix "How it works" docs (#193) (@adrhill) - Fix LogExpFunctions compat entry (#195) (@adrhill)
Closed issues: - Handle StaticArrays? (#144)
- Julia
Published by github-actions[bot] over 1 year ago
SparseConnectivityTracer - v0.6.4
SparseConnectivityTracer v0.6.4
Merged pull requests:
- Make imports explicit, test with ExplicitImports.jl (#188) (@adrhill)
- Shorter printing of default detectors (#190) (@adrhill)
- Refer to TracerSparsityDetector as detector instead of method (#191) (@adrhill)
Closed issues: - Scalar operators to support (#74) - Remove SparseArrays dependency? (#181) - More concise printing of detector type? (#189)
- Julia
Published by github-actions[bot] over 1 year ago
SparseConnectivityTracer - 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
atanandlog(#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: - Add package extension for NaNMath.jl (#170) - Add package extension for LogExpFunctions.jl (#171)
- Julia
Published by github-actions[bot] over 1 year ago
SparseConnectivityTracer - v0.6.2
SparseConnectivityTracer v0.6.2
Return only primal value when applying non-differentiable methods to
Dualnumbers (#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 and rand, fix NNlib (#162) (@adrhill)
- Increase sparsity for Diagonal inputs (#165) (@adrhill)
- Fix convert on Dual (#166) (@adrhill)
- Add direct type conversion on Dual (#168) (@adrhill)
- Return only primal when applying non-differentiable methods to Dual (#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)
- Julia
Published by github-actions[bot] over 1 year ago
SparseConnectivityTracer - 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:
- 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)
- Julia
Published by github-actions[bot] over 1 year ago
SparseConnectivityTracer - 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
similarto 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)
- Julia
Published by github-actions[bot] over 1 year ago
SparseConnectivityTracer - 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:
- Add optimization problems to "real-world" tests (#69)
- Allow more Hessian set types than just Set{Tuple{Int,Int}} (#105)
- Julia
Published by github-actions[bot] almost 2 years ago
SparseConnectivityTracer - v0.5.0
SparseConnectivityTracer v0.5.0
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)
- Julia
Published by github-actions[bot] almost 2 years ago
SparseConnectivityTracer - v0.4.2
SparseConnectivityTracer v0.4.2
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)
- Julia
Published by github-actions[bot] almost 2 years ago
SparseConnectivityTracer - 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- and GradientTracer tests (#86) (@adrhill)
- Remove unused interpolation (#87) (@adrhill)
- Add back interpolation (#89) (@adrhill)
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)
- Julia
Published by github-actions[bot] almost 2 years ago
SparseConnectivityTracer - 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_patternlocal_hessian_patternlocal_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: - 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)
- Julia
Published by github-actions[bot] almost 2 years ago
SparseConnectivityTracer - 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 of UInt (#61)
- Julia
Published by github-actions[bot] almost 2 years ago
SparseConnectivityTracer - v0.3.2
SparseConnectivityTracer v0.3.2
Merged pull requests:
- Improve HessianTracer performance (#45) (@adrhill)
- Split tests to improve modularity and debloat runtests.jl (#46) (@gdalle)
- Add RecursiveSet and DuplicateVector + better benchmarking of Brusselator (#50) (@gdalle)
- Use ADTypes interface in real world tests (#52) (@adrhill)
- Refactor tracer types (#53) (@adrhill)
- Add benchmarks (#58) (@adrhill)
Closed issues:
- HessianTracer type improvements (#40)
- Use ADTypes interface in real-world tests (#48)
- Support arbitrary Dictionary types for HessianTracer (#51)
- Add CI benchmarking (#54)
- Julia
Published by github-actions[bot] almost 2 years ago
SparseConnectivityTracer - v0.3.1
SparseConnectivityTracer v0.3.1
Merged pull requests:
- Remove AbstractIndexSet typing (#33) (@gdalle)
- Use mergewith in additive_merge (#36) (@adrhill)
- Refactor pattern extraction (#37) (@adrhill)
- Add SortedVector set type (#38) (@gdalle)
- Get rid of union! (#42) (@gdalle)
- Revert "Get rid of union!" (#43) (@gdalle)
- Merge HessianTracers without union! (#44) (@gdalle)
Closed issues:
- Use mergewith for merging dicts of sets (#35)
- Get rid of union! and push! (#39)
- Fix Hessian for SortedVector (#41)
- Julia
Published by github-actions[bot] almost 2 years ago
SparseConnectivityTracer - v0.3.0
SparseConnectivityTracer v0.3.0
Merged pull requests: - Support user-defined set types (#31) (@adrhill) - Refactor high-level API (#32) (@adrhill)
Closed issues: - Hessian-tracing over ForwardDiff is broken (#13) - Let user select set-type used in tracers (#23)
- Julia
Published by github-actions[bot] almost 2 years ago
SparseConnectivityTracer - v0.2.1
SparseConnectivityTracer v0.2.1
Merged pull requests: - Fix Hessian order promotion and add tests (#27) (@adrhill)
Closed issues: - Hessian tests fail with DI (#26)
- Julia
Published by github-actions[bot] almost 2 years ago
SparseConnectivityTracer - v0.2.0
SparseConnectivityTracer v0.2.0
Merged pull requests:
- Add JacobianTracer (#22) (@adrhill)
- Add HessianTracer (#24) (@adrhill)
- Increase code coverage (#25) (@adrhill)
Closed issues:
- Add JacobianTracer (#19)
- Add HessianTracer (#20)
- Julia
Published by github-actions[bot] almost 2 years ago
SparseConnectivityTracer - v0.1.0
SparseConnectivityTracer v0.1.0
Merged pull requests:
- Initial functionality (#2) (@adrhill)
- Add Doctests (#3) (@adrhill)
- Compare with Symbolics (#4) (@gdalle)
- Bump julia-actions/setup-julia from 1 to 2 (#5) (@dependabot[bot])
- Add more operators (#6) (@adrhill)
- Add constant empty tracer to avoid allocating sets (#7) (@adrhill)
- Add SparseDiffTools extension (#9) (@gdalle)
- Use BitSet for Tracer input set (#11) (@adrhill)
- Minor fixes (#12) (@adrhill)
- Order classification (#18) (@gdalle)
Closed issues: - Define a sparsity detection trait following SparseDiffTools specs (#8) - Example integration with DI (#10)
- Julia
Published by github-actions[bot] almost 2 years ago