A collection of packages to provide BLAS functionality for the Go programming language
go get gonum.org/v1/gonum/blas/...
If you want to use OpenBLAS, install it in any directory:
git clone https://github.com/xianyi/OpenBLAS cd OpenBLAS make
The blas/cgo package provides bindings to C-backed BLAS packages. blas/cgo needs the CGO_LDFLAGS environment variable to point to the blas installation. More information can be found in the cgo command documentation.
Then install the blas/cgo package:
CGO_LDFLAGS="-L/path/to/OpenBLAS -lopenblas" go install gonum.org/v1/netlib/blas
For Windows you can download binary packages for OpenBLAS at SourceForge.
If you want to use a different BLAS package such as the Intel MKL you can adjust the CGO_LDFLAGS variable:
CGO_LDFLAGS="-lmkl_rt" go install gonum.org/v1/netlib/blas
On OS X the easiest solution is to use the libraries provided by the system:
CGO_LDFLAGS="-framework Accelerate" go install gonum.org/v1/netlib/blas
Defines BLAS API split in several interfaces.
Go implementation of the BLAS API (incomplete, implements the float32 and float64 API).
Wrappers for an implementation of the double (i.e., float64) and single (float32) precision real parts of the BLAS API.
package main import ( "fmt" "gonum.org/v1/gonum/blas/blas64" ) func main() { v := blas64.Vector{Inc: 1, Data: []float64{1, 1, 1}} fmt.Println("v has length:", blas64.Nrm2(len(v.Data), v)) }
Wrappers for an implementation of the double (i.e., complex128) and single (complex64) precision complex parts of the blas API.
Currently blas/cblas64 and blas/cblas128 require gonum.org/v1/netlib/blas.