Recent Releases of SparseConnectivityTracer

SparseConnectivityTracer - v1.0.1

SparseConnectivityTracer v1.0.1

Diff since v1.0.0

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

Diff since v0.6.21

This release is only breaking for users who touched unexported internals.

  • BREAKING Refactor internal types (#254)
  • Feature Select internal data structures for sparsity pattern representations via the TracerSparsityDetector and TracerLocalSparsityDetector keyword arguments gradient_pattern_type and hessian_pattern_type. Refer to the new doc page on "Performance" for more information. (#254, #256)
  • Deprecation 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

Diff since v0.6.20

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

Diff since v0.6.19

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

Diff since v0.6.18

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

Diff since v0.6.17

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

Diff since v0.6.16

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

Diff since v0.6.15

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

Diff since v0.6.14

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

Diff since v0.6.13

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

Diff since v0.6.12

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

Diff since v0.6.11

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

Diff since v0.6.10

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

Diff since v0.6.9

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

Diff since v0.6.8

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

Diff since v0.6.7

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

Diff since v0.6.6

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

Diff since v0.6.5

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

Diff since v0.6.4

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

Diff since v0.6.3

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

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: - 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

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: - 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

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: - 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

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: - 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

Diff since v0.5.0

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

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)

- Julia
Published by github-actions[bot] almost 2 years ago

SparseConnectivityTracer - v0.4.2

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)

- Julia
Published by github-actions[bot] almost 2 years ago

SparseConnectivityTracer - v0.4.1

SparseConnectivityTracer v0.4.1

Diff since v0.4.0

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

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: - 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

Diff since v0.3.2

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

Diff since v0.3.1

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

Diff since v0.3.0

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

Diff since v0.2.1

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

Diff since v0.2.0

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

Diff since v0.1.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