1# Gonum BLAS [![GoDoc](https://godoc.org/gonum.org/v1/gonum/blas?status.svg)](https://godoc.org/gonum.org/v1/gonum/blas)
2
3A collection of packages to provide BLAS functionality for the [Go programming
4language](http://golang.org)
5
6## Installation
7```sh
8  go get gonum.org/v1/gonum/blas/...
9```
10
11## Packages
12
13### blas
14
15Defines [BLAS API](http://www.netlib.org/blas/blast-forum/cinterface.pdf) split in several
16interfaces.
17
18### blas/gonum
19
20Go implementation of the BLAS API (incomplete, implements the `float32` and `float64` API).
21
22### blas/blas64 and blas/blas32
23
24Wrappers for an implementation of the double (i.e., `float64`) and single (`float32`)
25precision real parts of the BLAS API.
26
27```Go
28package main
29
30import (
31	"fmt"
32
33	"gonum.org/v1/gonum/blas/blas64"
34)
35
36func main() {
37	v := blas64.Vector{Inc: 1, Data: []float64{1, 1, 1}}
38	fmt.Println("v has length:", blas64.Nrm2(len(v.Data), v))
39}
40```
41
42### blas/cblas128 and blas/cblas64
43
44Wrappers for an implementation of the double (i.e., `complex128`) and single (`complex64`)
45precision complex parts of the blas API.
46
47Currently blas/cblas64 and blas/cblas128 require gonum.org/v1/netlib/blas.
48