Skip to content
Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github github: extend issues templates Sep 29, 2018
.travis travis: remove gocc go.mod work around Mar 21, 2019
blas blas/gonum: slice arguments to exact length Feb 12, 2019
floats all: fix mispellings Jan 27, 2019
fourier all: fix up missing or malformatted package doc comments Jun 7, 2018
graph graph/internal/set: make complex set operations pure functions Mar 19, 2019
integrate integrate/quad/internal: fix character encoding Mar 1, 2019
internal internal/asm/f64: fix copyright headers Mar 10, 2019
lapack lapack/gonum: clean up panic strings and their usage Mar 8, 2019
mat mat: fix test for changes in Go runtime Mar 19, 2019
mathext mathext: Rename GammaInc and friends to GammaIncReg (#782) Jan 5, 2019
num dualquat: fix example documentation Mar 6, 2019
optimize optimize: Change initialization, remove Needser, and update Problem f… ( Feb 1, 2019
unit unit: fix up package docs Mar 19, 2019
AUTHORS A+C: add Kirill Motkov Mar 5, 2019 CONTRIBUTING: link to rather than repeating Mar 1, 2019
CONTRIBUTORS A+C: add Kirill Motkov Mar 5, 2019
LICENSE README: refer to third party and additional licenses Mar 10, 2019
go.mod modules: add to go.mod and commit go.sum Mar 13, 2019

Gonum Build Status Build status GoDoc Go Report Card stability-unstable


The core packages of the gonum suite are written in pure Go with some assembly. Installation is done using go get.

go get -u

Supported Go versions

Gonum supports and tests on the three most recent minor versions of Go on Linux and Windows.

Build tags

The gonum packages use a variety of build tags to set non-standard build conditions. Building gonum applications will work without knowing how to use these tags, but they can be used during testing and to control the use of assembly and CGO code.

The current list of non-internal tags is as follows:

  • appengine — do not use assembly or unsafe
  • safe — synonym for appengine
  • bounds — use bounds checks even in internal calls
  • cblas — use CGO BLAS implementation in tests (only in mat package)
  • noasm — do not use assembly implementations
  • tomita — use Tomita, Tanaka, Takahashi pivot choice for maximimal clique calculation, otherwise use random pivot (only in topo package)


If you find any bugs, feel free to file an issue on the github issue tracker. Discussions on API changes, added features, code review, or similar requests are preferred on the gonum-dev Google Group.!forum/gonum-dev


Original code is licensed under the Gonum License found in the LICENSE file. Portions of the code are subject to the additional licenses found in THIRD_PARTY_LICENSES. All third party code is licensed either under a BSD or MIT license.

Code in graph/formats/dot is dual licensed Public Domain Dedication and Gonum License, and users are free to choose the license which suits their needs for this code.

You can’t perform that action at this time.