# gonum/gonum

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/gonum-gonum).**

8,316 stars · 573 forks · Go · bsd-3-clause

## Links

- GitHub: https://github.com/gonum/gonum
- Homepage: https://www.gonum.org/
- awesome-repositories: https://awesome-repositories.com/repository/gonum-gonum.md

## Topics

`data-analysis` `go` `golang` `graph` `matrix` `scientific-computing` `statistics`

## Description

Gonum is a numerical computing library for the Go programming language, providing a collection of packages for scientific computing, linear algebra, statistics, and optimization. It functions as a framework for performing complex numerical computations and solving systems of linear equations.

The project includes a dedicated graph analysis framework for modeling network graphs and solving connectivity and pathfinding problems. It also provides a statistical analysis toolkit for computing descriptive and inferential statistics and estimating mixture entropy.

The library's capability surface covers a wide range of mathematical domains, including linear algebra operations, the calculation of basic statistical metrics, and the implementation of shortest path algorithms for graph theory.

## Tags

### Scientific & Mathematical Computing

- [Scientific Computing](https://awesome-repositories.com/f/scientific-mathematical-computing/high-performance-execution-environments/scientific-computing-platforms/scientific-computing.md) — A comprehensive framework for performing complex numerical computations, linear algebra, and mathematical optimizations in Go.
- [Graph Analysis Frameworks](https://awesome-repositories.com/f/scientific-mathematical-computing/graph-analysis-frameworks.md) — Provides a dedicated set of data structures and algorithms for modeling network graphs and pathfinding.
- [Linear Algebra Libraries](https://awesome-repositories.com/f/scientific-mathematical-computing/linear-algebra-libraries.md) — Provides a complete system for performing matrix and vector operations and solving linear equations in Go.
- [Shortest Path Algorithms](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/algorithms-and-complexity/algorithms/graph-processing/shortest-path-algorithms.md) — Implements specialized algorithms to calculate the most efficient path between nodes in a network. ([source](https://www.gonum.org/post/word_ladder/))
- [Statistical Analysis Libraries](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/statistics-probability/statistical-analysis-libraries.md) — Provides a comprehensive toolkit for computing descriptive and inferential statistics and numerical approximations. ([source](https://www.gonum.org/category/go/))
- [Statistical Analysis Libraries](https://awesome-repositories.com/f/scientific-mathematical-computing/research-analysis-workflows/research-and-data-analysis-tools/statistical-analysis-libraries.md) — Provides specialized functions for computing descriptive and inferential statistics to analyze data distributions.
- [Contiguous Slice Representations](https://awesome-repositories.com/f/scientific-mathematical-computing/block-based-matrix-decompositions/contiguous-slice-representations.md) — Stores dense numerical data in contiguous memory blocks for efficient indexing and high cache locality.
- [Numerical Approximation Methods](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-approximation-methods.md) — Employs iterative techniques for finding real-valued roots and solving complex numerical equations.
- [Entropy Estimators](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/automatic-differentiation/entropy-estimators.md) — Estimates the differential entropy of mixture distributions using pairwise distance functions. ([source](https://www.gonum.org/))
- [Statistical Moment Calculation](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/statistics-probability/statistical-analysis-libraries/statistical-metric-calculators/statistical-moment-calculation.md) — Computes statistical moments such as mean, variance, and standard deviation using biased and unbiased estimators. ([source](https://www.gonum.org/post/intro_to_stats_with_gonum/))

### Part of an Awesome List

- [Numerical Computing](https://awesome-repositories.com/f/awesome-lists/data/numerical-computing.md) — A comprehensive collection of packages for scientific calculations, linear algebra, and data analysis in Go.

### Data & Databases

- [Graph Theory](https://awesome-repositories.com/f/data-databases/graph-computing-systems/graph-theory.md) — Provides mathematical tools for modeling network graphs using nodes and edges to solve connectivity problems.
- [Graph Relationship Modeling](https://awesome-repositories.com/f/data-databases/graph-relationship-modeling.md) — Models relationships between entities as nodes and edges to solve connectivity and pathfinding problems. ([source](https://www.gonum.org/post/intro_to_gonum))

### Software Engineering & Architecture

- [Numerical Operation Interfaces](https://awesome-repositories.com/f/software-engineering-architecture/generic-component-architectures/numerical-operation-interfaces.md) — Provides generic interfaces for vector and matrix operations to decouple algorithms from storage backends.
- [Interface-Based Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/graph-algorithms/interface-based-abstractions.md) — Decouples graph algorithms from data structures using standard methods for node and edge access.
- [Memory Layout Optimizations](https://awesome-repositories.com/f/software-engineering-architecture/memory-layout-optimizations.md) — Implements memory layout strategies to optimize CPU cache locality for large scientific datasets.
