SparseConnectivityTracer.jl
SparseConnectivityTracer.jl copied to clipboard
Fast operator-overloading Jacobian & Hessian sparsity detection.
Fix #69 There are still disagreements between SCT and JuMP but I'm not sure we're wrong, so I've labeled them as broken tests I also skip a few tests for...
To avoid excessive allocations in Hessian tracing, we can make a new set type holding a reference to a shared set, such that every intermediate scalar quantity shares the same...
At the moment, using `TracerSparsityDetector{G,H}` with `H` something other than `Set{Tuple{Int,Int}}` will fail. But one might like to try: 1. `G = MySet{Int}` and `H = MySet{Tuple{Int,Int}}` (definitely) 2. `G...
Since empty tracers are constructed by functions like `similar`, `zero` & friends, empty tracers occur often enough to make it worthwhile to add a binary `isempty` flag. This can be...
The Hessian tracer added in #20 keeps track of all first and second-order interactions between indices. However, these aren't all needed due to symmetry. To make an analogy using Polynomials,...
With a statically sized set type (e.g. a custom `BitSet` implemented on `n` UInt64), running `GradientTracer` on GPUs might be possible.
**Level 1 (good)** Internal operations on `Complex{Dual}` and `Complex{Tracer}` should be supported, as long as there are `Real` numbers at the start and at the end. Requires overloading conversions and...
I think we should look at the list on https://docs.julialang.org/en/v1.12-dev/base/math/
@amontoison pointed out that we could test sparsity detection on suites of optimization problems with - https://github.com/JuliaSmoothOptimizers/OptimizationProblems.jl - https://github.com/JuliaSmoothOptimizers/NLPModelsJuMP.jl