Scilab Home Page | Wiki | Bug Tracker | Forge | Mailing List Archives | Scilab Online Help | File Exchange
ATOMS : SciColpack details
Login with GitLab


Scilab interface to CSCsw/ColPack
(3430 downloads for this version - 17792 downloads for all versions)
A more recent valid version with binaries for Scilab 6.1 exists: 0.3
Stéphane Mottelet
Owner Organization
Creation Date
December 14, 2020
Source created on
Scilab 6.1.x
Binaries available on
Scilab 6.1.x:
macOS Linux 64-bit
Install command
--> atomsInstall("scicolpack")
            Scicolpack is is the Scilab interface to CSCsw/ColPack (, a
Graph Coloring Algorithm Package applied to efficient computation of sparse
Jacobian and Hessian.  When you have to compute the Jacobian of a function f or
the Hessian of f knowing its gradient g, once you know its sparsity pattern,
even if you have derived it symbolically, it may still be faster to estimate it
by using the techniques which are used by Colpack. Roughly speaking, this works
by building a graph where each vertex is associated to a column of the Jacobian
or Hessian, and an edge connects to vertices/columns if they are not
structurally orthogonal, i.e. have at least one non-zero term in a common row.
Then a proper coloring is done on this graph: at least, two adjacent vertices
cannot have the same color, but more properties of the coloring may be expected.
The coloring defines a partition of the columns under the form of p subsets and
the Jacobian (resp. Hessian) can be recovered from only p evaluation of
directional derivatives of f (resp. g). For example, for a tridiagonal matrix
the value of p is 3. In the Scilab interface these directional derivatives are
approximated by using finite differences (the toolbox allows to compute them by
using the complex step technique up to machine precision).            
Files (4)
[121.25 kB]
Miscellaneous file
Here are the timings for the computation of a minimal surface defined as the
graph of (x,y)→f(x,y) on [−1,1]×[−1,1] discretized on a 51x51 grid
(operators are approximated with order two finite differences). At each step of
the Newton algorithm the Jacobian of the non-linear system F(f)=0 has only 22801
non-zero terms (0.3% of the 6765201 terms of full matrix) and is estimated by
only 16 evaluations of F. Resolution takes only 0.146 seconds and as a
comparison the resolution of the same system with legacy tools of Scilab is more
than 2000 times slower.
[161.03 kB]
Source code archive

[1.27 MB]
macOS binary for Scilab 6.1.x

[2.44 MB]
Linux 64-bit binary for Scilab 6.1.x

News (0)
Comments (0)
Leave a comment
You must register and log in before leaving a comment.
Login with GitLab
Email notifications
Send me email when this toolbox has changes, new files or a new release.
You must register and log in before setting up notifications.