blas

A BLAS implementation for Go [DEPRECATED]

  • Owner: gonum/blas
  • Platform:
  • License::
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

Gonum BLAS Build Status Coverage Status GoDoc

This repository is no longer maintained. Development has moved to https://github.com/gonum/gonum.

A collection of packages to provide BLAS functionality for the Go programming
language

Installation

  go get github.com/gonum/blas

BLAS C-bindings

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 github.com/gonum/blas/cgo

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 github.com/gonum/blas/cgo

On OS X the easiest solution is to use the libraries provided by the system:

  CGO_LDFLAGS="-framework Accelerate" go install github.com/gonum/blas/cgo

Packages

blas

Defines BLAS API split in several
interfaces.

blas/native

Go implementation of the BLAS API (incomplete, implements the float32 and float64 API)

blas/cgo

Binding to a C implementation of the cblas interface (e.g. ATLAS, OpenBLAS, Intel MKL)

The recommended (free) option for good performance on both Linux and Darwin is OpenBLAS.

blas/blas64 and blas/blas32

Wrappers for an implementation of the double (i.e., float64) and single (float32)
precision real parts of the blas API

package main

import (
	"fmt"

	"github.com/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))
}

blas/cblas128 and blas/cblas64

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 blas/cgo.

Issues

If you find any bugs, feel free to file an issue on the github issue tracker for gonum/gonum or gonum/netlib for the CGO implementation if the bug exists in that reposity; no code changes will be made to this repository. Other discussions should be taken to the gonum-dev Google Group.

https://groups.google.com/forum/#!forum/gonum-dev

License

Please see github.com/gonum/license for general
license information, contributors, authors, etc on the Gonum suite of packages.

Main metrics

Overview
Name With Ownergonum/blas
Primary LanguageGo
Program languageShell (Language Count: 4)
Platform
License:
所有者活动
Created At2013-04-23 04:48:28
Pushed At2018-12-08 22:07:07
Last Commit At2018-12-08 22:30:49
Release Count0
用户参与
Stargazers Count171
Watchers Count19
Fork Count16
Commits Count564
Has Issues Enabled
Issues Count37
Issue Open Count0
Pull Requests Count152
Pull Requests Open Count0
Pull Requests Close Count18
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private