A Julia package to exploit the sparsity found in derivative matrices to enhance and speed up their computation with the help of matrix coloring. Jacobians of large dimensions frequently have a lot of elements equal to zero, and this fact can be utilised to speed up the process of computing such matrices. This package is fundamentally based and works on this observation.
This package comprises of three separate and independent modules: Automatic Sparsity Detection
, Matrix Partitioning
, and Automatic Differentiation and Recovery
.
Under automatic sparsity detection, there are 2 main methods:
i. Partial Computation of Jacobians
ii. Analytical Method
Under matrix partitioning, we have 2 sub categories:
i. distance-1-coloring, under which we have
- Recursive-Largest First Algorithm (
contraction_algo.jl
) - Backtracking Sequential Algorithm (
BSC_algo.jl
) - Largest-First Algorithm
- DSATUR Algorithm
ii. distance-2-coloring
- greedy distance-2-coloring algorithm
- greedy star coloring algorithm
Under automatic recovery module, I plan on implementing 2 direct recovery methods:
i. Automatic Differentiation Recovery
ii. Forward Differencing Recovery