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.