Sign inDemoInstall

Package Overview
File Explorer

Install Socket

Protect your apps from supply chain attacks


Gonum is a set of packages designed to make writing numerical and scientific algorithms productive, performant, and scalable. Gonum contains libraries for matrices and linear algebra; statistics, probability distributions, and sampling; tools for function differentiation, integration, and optimization; network creation and analysis; and more.


Version published


# Gonum

[![Build status](](
[![Build status](](
[![ reference](](
[![Go Report Card](](

## Installation

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 using the gc compiler on the [two most recent Go releases]( on Linux (386, amd64 and arm64), macOS and Windows (both on amd64).

Note that floating point behavior may differ between compiler versions and between architectures due to differences in floating point operation implementations.

## Release schedule

The Gonum modules are released on a six-month release schedule, aligned with the Go releases.
_i.e.:_ when `Go-1.x` is released, `Gonum-v0.n.0` is released around the same time.
Six months after, `Go-1.x+1` is released, and `Gonum-v0.n+1.0` as well.

The release schedule, based on the current Go release schedule is thus:

- `Gonum-v0.n.0`: February
- `Gonum-v0.n+1.0`: August

## 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:

- safe — do not use assembly or unsafe
- bounds — use bounds checks even in internal calls
- 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](

## Issues [![TODOs](](

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

## License

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.

The W3C test suites in graph/formats/rdf are distributed under both the [W3C Test Suite License]( and the [W3C 3-clause BSD License](


Last updated on 19 Aug 2023

Did you know?

Socket installs a GitHub app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.


Related posts

SocketSocket SOC 2 Logo


  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc