Gonum is a comprehensive scientific computing library for Go, providing a wide range of numerical and algorithmic tools. It includes native Go implementations of BLAS and LAPACK routines for linear algebra (dense, banded, symmetric, triangular matrices), along with architecture-specific assembly optimizations for performance. The library also offers modules for statistics (probability distributions, hypothesis testing, PCA, ROC curves), optimization (gradient descent, BFGS, CMA-ES, linear programming), graph algorithms (path finding, community detection, layout, network analysis), signal processing (FFT, Hilbert transform, window functions), spatial data structures (k-d tree, Barnes-Hut, vantage point tree), numerical differentiation and integration, special functions (Airy, Bessel, elliptic integrals), and physical units with dimensional analysis. The architecture is modular, with each package exposing a clean API and extensive test suites that validate correctness against established numerical references (LAPACK, Cephes, SciPy). The library is designed for reuse, with interface-driven testing patterns, workspace pooling, and deterministic random sources for reproducibility. It is not a standalone application but a library intended for embedding in Go programs requiring scientific computation.
Kalker is a multi-platform mathematical calculator implemented primarily in Rust. It provides a CLI with a REPL, a web component compiled to WebAssembly, and an Android mobile app via Capacitor. The core library (`kalk`) supports user-defined variables and functions, units, differentiation, integration, root finding, equation systems, matrices/vectors, complex numbers, and multiple number bases. The codebase is well-structured with a clear separation between parsing (lexer/parser), evaluation (interpreter), and a custom value system. It features extensive test files and integration tests for numerical methods. While the core numerical routines (tanh-sinh quadrature, Newton's method, Gaussian elimination) are tightly coupled to the interpreter, they are implemented with care and demonstrate non-trivial numerical analysis. The repository also includes build scripts for multiple targets and CI/CD pipelines.
This repository contains the legacy edition of 'Practical Numerical Methods with Python', a multi-campus MOOC (2014–2016) on numerical methods for science and engineering. It is organized as five stacked modules covering ODE integration (phugoid flight dynamics), finite-difference PDEs (convection, diffusion, waves), and elliptic problems (Laplace, Poisson, Stokes flow). The primary content is 26 Jupyter notebooks with interleaved theory, code, and assignments, plus helper Python modules and data files. The course is explicitly no longer updated; development has moved to a separate repository. The codebase is pedagogically strong but suffers from outdated dependencies (Python 3.4, NumPy 1.9.2, Numba 0.20.0), broken imports (numba.autojit removed), and reliance on a decommissioned Open edX platform for assessments. No tests, CI, or modern packaging exist. The repository is best treated as a historical archive and reference for numerical method patterns, not as a runnable course.