A comprehensive Go scientific library for numerical simulations, linear algebra, differential equations, and computational geometry.
Gosl is a Go scientific library designed for developing numerical simulations and solvers for differential equations. It provides essential functions for linear algebra, numerical methods, special functions, and computational geometry, focusing on high performance by linking with established C and Fortran libraries like OpenBLAS and LAPACK.
Researchers, engineers, and developers working on scientific computing, numerical simulations, and differential equation solvers who want to leverage Go's simplicity while maintaining high computational performance.
Gosl offers a unique combination of Go's developer-friendly ecosystem with the raw performance of battle-tested C/Fortran numerical libraries, making it ideal for building efficient scientific simulations without sacrificing productivity.
Linear algebra, eigenvalues, FFT, Bessel, elliptic, orthogonal polys, geometry, NURBS, numerical quadrature, 3D transfinite interpolation, random numbers, Mersenne twister, probability distributions, optimisation, differential equations.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages proven C and Fortran libraries like OpenBLAS and LAPACK, ensuring computational efficiency that naive Go implementations cannot match, as the README states naive Go matrix multiplication is over 100 times slower.
Provides a developer-friendly Go interface for complex numerical methods, abstracting the underlying C/Fortran libraries to simplify usage for Go programmers.
Includes essential packages for linear algebra, differential equations, FFT, and geometry, covering a wide range of scientific computing needs from the README's listed features.
Offers Docker-based setup that works out of the box on multiple platforms, as highlighted in the installation guide, making it easier to start without system-level configurations.
Native installation requires manually installing multiple system libraries like FFTW3 and MUMPS on Debian/Ubuntu, which can be error-prone and less straightforward on other operating systems.
Relies on CGO to interface with external libraries, introducing potential build issues, portability challenges, and compatibility problems compared to pure Go codebases.
Recent versions removed packages such as machine learning and plotting for maintenance, narrowing the library's focus and forcing users to seek external solutions for those features.