gosl alternatives and similar packages
Based on the "Science and Data Analysis" category.
Alternatively, view gosl alternatives based on common mentions on social networks and blogs.

gonum
Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more. 
gonum/plot
gonum/plot provides an API for building and drawing plots in Go. 
Stats
A statistics package with common functions that are missing from the Golang standard library. 
streamtools
general purpose, graphical tool for dealing with streams of data. 
goraph
A pure Go graph theory library(data structure, algorith visualization) 
dataframego
Dataframes for machinelearning and statistics (similar to pandas). 
gonum/mat64
The general purpose package for matrix computation. Package mat64 provides basic linear algebra operations for float64 matrices. 
calendarheatmap
Calendar heatmap in plain Go inspired by Github contribution activity. 
TextRank
TextRank implementation in Golang with extendable features (summarization, weighting, phrase extraction) and multithreading (goroutine) support. 
sparse
Go Sparse matrix formats for linear algebra supporting scientific and machine learning applications, compatible with gonum matrix libraries. 
vectormath
Vectormath for Go, an adaptation of the scalar C functions from Sony's Vector Math library, as found in the Bullet2.79 source code. (currently inactive) 
triangolatte
2D triangulation library. Allows translating lines and polygons (both based on points) to the language of GPUs. 
PiHex
Implementation of the "BaileyBorweinPlouffe" algorithm for the hexadecimal number Pi 
ode
An ordinary differential equation (ODE) solver which supports extended states and channelbased iteration stop conditions. 
GoStats
GoStats is an Open Source GoLang library for math statistics mostly used in Machine Learning domains, it covers most of the Statistical measures functions. 
gofrac
A (goinstallable) fractions library for go with support for basic arithmetic. 
assocentity
Package assocentity returns the average distance from words to a given entity. 
gofn
Mathematical functions written in Go language, that are not covered by math pkg 
rootfinding
rootfinding algorithms library for finding roots of quadratic functions. 
mudlarkgo
A collection of packages providing (hopefully) useful code for use in software using Google's Go programming language.
Scout APM  Leadingedge performance monitoring starting at $39/month
Do you think we are missing an alternative of gosl or a related project?
Popular Comparisons
README
Gosl  Go scientific library
Gosl is a set of tools for developing scientific simulations using the Go language. We mainly consider the development of numerical methods and solvers for differential equations but also present some functions for fast Fourier transforms, the generation of random numbers, probability distributions, and computational geometry.
This library contains essential functions for linear algebra computations (operations between all combinations of vectors and matrices, eigenvalues and eigenvectors, linear solvers) and the development of numerical methods (e.g. numerical quadrature).
We link Gosl with existent libraries written in C and Fortran, such as OpenBLAS, LAPACK, UMFPACK, MUMPS, QUADPACK and FFTW3. These existing libraries have been fundamental for the development of highperformant simulations over many years. We believe that it is nearly impossible to rewrite these libraries in native Go and at the same time achieve the same speed delivered by them. Just for reference, a naive implementation of matrixmatrix multiplication in Go is more than 100 times slower than OpenBLAS.
Installation
Because of other (awesome) libraries, the easiest way to work with Gosl is via Docker. Having Docker and VS Code installed, you can start developing powerful numerical simulations using Gosl in a matter of minutes. Furthermore, the best part of it is that it works on Windows, Linux, and macOS out of the box.
Containerized (recommended)
 Install Docker
 Install Visual Studio Code
 Install the Remote Development extension for VS Code
 Clone https://github.com/cpmech/hellogosl
 Create your application within a container (see gif below)
Done. And your system will "remain clean."
[](zdocs/vscodeopenincontainer.gif)
Our Docker Image also contains Go and the Go Tools for working with VS Code (or not). Below is a video showing the convenience of VS Code + the Go tools + Gosl. Note how fast VS Code is in finding the function ReadLines and the package gosl/io even under a clash with Go's io package. Upon file save, the Go tools automatically add the required imports. Note also the very convenient autocompletion of the callback function given to ReadLines. Also, Code + the Go tools nicely fill the function arguments with default values.
[](zdocs/vscodegosl01.gif)
Another great thing about VS Code is it's IntelliSense. Here, as soon as we start typing "m comma n twodot equal T dot", VS Code immediately offers Size()
as the first option because it matches the preceding code. Fantastic!
[](zdocs/vscodeintellisense01.png)
Debian/Ubuntu GNU Linux
First we have to first install some extra libraries before calling go get.
Install dependencies
sudo aptget install y noinstallrecommends \
gcc \
gfortran \
libopenmpidev \
liblapackedev \
libopenblasdev \
libmetisdev \
libsuitesparsedev \
libmumpsdev \
libfftw3dev \
libfftw3mpidev
Download Gosl
go get github.com/cpmech/gosl
Done. Installation completed.
Documentation
Gosl includes the following essential packages:
 chk. To check numerical results and for unit testing
 io. Input/output including printing to the terminal and handling files
 utl. To generate series (e.g. linspace) and other functions as in pylab/matlab/octave
 mpi. Message Passing Interface for parallel computing
 la. Linear Algebra: vector, matrix, efficient sparse solvers, eigenvalues, decompositions
Gosl includes the following main packages:
 fun. Special functions, DFT, FFT, Bessel, elliptical integrals, orthogonal polynomials, interpolators
 gm. Geometry algorithms and structures
 hb. Pseudo hierarchical binary (hb) data file format
 num. Fundamental numerical methods such as root solvers, nonlinear solvers, numerical derivatives and quadrature
 ode. Solvers for ordinary differential equations
 opt. Numerical optimization: Interior Point, Conjugate Gradients, Powell, Grad Descent
 pde. Solvers for partial differential equations (FDM, Spectral, FEM)
 rnd. Random numbers and probability distributions
(see each subdirectory for more information)
Examples
Please check out https://github.com/cpmech/goslexamples
Benchmarks
Please check out https://github.com/cpmech/goslbenchmarks
Previous version
The previous version, including more packages, is available here and can be used with the Docker image 1.1.3 as in this hello gosl example.
These other packages, such as machine learning, plotting, etc., have been removed because they do not depend on CGO and may be developed independently. We can now maintain the core of Gosl more efficiently, which has a focus on the foundation for other scientific code.