Roadmap and known gaps¶
The scipy surface scijit does not cover yet. Most gaps are future work, a few larger because scipy implements them in C or C++, and a few are deliberate choices.
Subpackages¶
This release ships interpolate, optimize and integrate. Planned for later
releases: fft, linalg, stats, special, spatial, signal, ndimage,
sparse (sparse.linalg, sparse.csgraph), cluster and constants.
Missing routines (future work)¶
Within the shipped subpackages, in roughly the order expected:
subpackage |
routines |
|---|---|
|
|
|
|
|
|
least_squares is the large one. dual_annealing is a loop over an existing
minimizer. An implicit Radau/BDF would be the first prange-safe stiff solver
in the package; the wrapped LSODA runs sequentially. Also future work: ODRPACK
(scipy.odr), a Fortran wrap the build already handles, and KDTree/cKDTree,
larger because a jitclass cannot reference its own type, so the tree has to be
flattened into index arrays and every traversal rewritten.
Provided by numba and numpy¶
numba and numpy already run these inside @njit, so scijit does not duplicate
them: np.linalg (solve, inv, det, eig, svd, qr, cholesky), np.interp,
np.convolve, np.trapz, np.roots, np.gradient. numba’s native coverage
grows release to release. As it does, more of this surface, including routines
scijit ports today, becomes available natively and moves out of scope.
Backed by C or C++ in scipy¶
scipy implements these with C or C++ libraries. scijit wraps Fortran, so it does
not wrap those libraries directly. The algorithms are published, so an @njit
port or Fortran wrap is possible future work.
routine |
scipy library |
|---|---|
|
HiGHS |
|
DIRECT |
|
Qhull |
|
TNC, trlib |
griddata’s linear and cubic modes need Delaunay; only its nearest mode is
reachable without Qhull.
Deliberate scope limits¶
Choices, not gaps.
Randomized routines (
basinhopping,differential_evolution) take an integer seed. They are reproducible per seed and independent across parallel calls, but do not return scipy’s values, because numba cannot callnp.random.Generator. Deterministic routines return scipy’s values.Some wrapped routines are sequential-only, because the Fortran keeps its callback in a module variable. The thread-safety table in compatibility.md says which.