Commits

Anonymous committed d7f8a3f

update for go-weekly.2012-02-22 (remove Makefiles+pkg is now bitbucket.org/binet/go-cblas/pkg/cblas)

  • Participants
  • Parent commits cccc111
  • Tags go-weekly.2012-02-22

Comments (0)

Files changed (12)

File Makefile

-# Copyright 2009 The Go Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file.
-
-include ${GOROOT}/src/Make.inc
-
-all: install
-
-DIRS=\
-        pkg\
-        tests\
-
-
-clean.dirs: $(addsuffix .clean, $(DIRS))
-install.dirs: $(addsuffix .install, $(DIRS))
-nuke.dirs: $(addsuffix .nuke, $(DIRS))
-test.dirs: $(addsuffix .test, $(TEST))
-bench.dirs: $(addsuffix .bench, $(BENCH))
-
-%.clean:
-	+cd $* && $(QUOTED_GOBIN)/gomake clean
-
-%.install:
-	+cd $* && $(QUOTED_GOBIN)/gomake install
-
-clean: clean.dirs
-
-install: install.dirs
-
-#-include ${GOROOT}/src/Make.deps

File pkg/Makefile

-# Copyright 2009 The Go Authors.  All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file.
-
-include $(GOROOT)/src/Make.inc
-
-TARG=cblas
-
-CGO_LDFLAGS=-lcblas
-
-CGOFILES=\
-	cblas_lvl1.go\
-	cblas_lvl2.go\
-	cblas_lvl3.go\
-	cblas.go
-
-
-include $(GOROOT)/src/Make.pkg
-
-%: install %.go
-	$(GC) $*.go
-	$(LD) -o $@ $*.$O

File pkg/cblas.go

-// simplistic wrapper around the C-interface to the BLAS
-package cblas
-
-/*
- #cgo LDFLAGS: -lcblas
- #include "cblas.h"
-*/
-import "C"
-
-/*
- * Enumerated and derived types
- */
-
-type Index int
-
-type Order C.enum_CBLAS_ORDER
-
-const (
-	RowMajor = Order(101)
-	ColMajor = Order(102)
-)
-
-type Transpose C.enum_CBLAS_TRANSPOSE
-
-const (
-	NoTrans   = Transpose(111)
-	Trans     = Transpose(112)
-	ConjTrans = Transpose(113)
-)
-
-type UpLo C.enum_CBLAS_UPLO
-
-const (
-	Upper = UpLo(121)
-	Lower = UpLo(122)
-)
-
-type Diag C.enum_CBLAS_DIAG
-
-const (
-	NonUnit = Diag(131)
-	Unit    = Diag(132)
-)
-
-type Side C.enum_CBLAS_SIDE
-
-const (
-	Left  = Side(141)
-	Right = Side(142)
-)
-
-// EOF

File pkg/cblas/cblas.go

+// simplistic wrapper around the C-interface to the BLAS
+package cblas
+
+/*
+ #cgo LDFLAGS: -lcblas
+ #include "cblas.h"
+*/
+import "C"
+
+/*
+ * Enumerated and derived types
+ */
+
+type Index int
+
+type Order C.enum_CBLAS_ORDER
+
+const (
+	RowMajor = Order(101)
+	ColMajor = Order(102)
+)
+
+type Transpose C.enum_CBLAS_TRANSPOSE
+
+const (
+	NoTrans   = Transpose(111)
+	Trans     = Transpose(112)
+	ConjTrans = Transpose(113)
+)
+
+type UpLo C.enum_CBLAS_UPLO
+
+const (
+	Upper = UpLo(121)
+	Lower = UpLo(122)
+)
+
+type Diag C.enum_CBLAS_DIAG
+
+const (
+	NonUnit = Diag(131)
+	Unit    = Diag(132)
+)
+
+type Side C.enum_CBLAS_SIDE
+
+const (
+	Left  = Side(141)
+	Right = Side(142)
+)
+
+// EOF

File pkg/cblas/cblas_lvl1.go

+// simplistic wrapper around the C-interface to the BLAS
+package cblas
+
+/*
+ #include <complex.h>
+ #undef I
+ #include "cblas.h"
+ */
+import "C"
+import "unsafe"
+
+/*
+ * ===========================================================================
+ * Prototypes for level 1 BLAS functions (complex are recast as routines)
+ * ===========================================================================
+ */
+
+/*
+ float  cblas_sdsdot(const int N, const float alpha, const float *X, const int incX, const float *Y, const int incY);
+ */
+func Sdsdot(alpha float32, x, y []float32) float32 {
+	if len(x) != len(y) {
+		panic("slices' size differ")
+	}
+
+	c_N := C.int(len(x))
+	c_alpha := C.float(alpha)
+
+	c_X := (*C.float)(unsafe.Pointer(&x[0]))
+	c_incX := C.int(1)
+
+	c_Y := (*C.float)(unsafe.Pointer(&y[0]))
+	c_incY := C.int(1)
+
+	return float32(
+		C.cblas_sdsdot(c_N, c_alpha,
+		c_X, c_incX,
+		c_Y, c_incY))
+}
+
+/*
+ double cblas_dsdot(const int N, const float *X, const int incX, const float *Y, const int incY);
+ */
+func Dsdot(x, y []float32) float64 {
+	if len(x) != len(y) {
+		panic("slices' size differ")
+	}
+
+	c_N := C.int(len(x))
+
+	c_X := (*C.float)(unsafe.Pointer(&x[0]))
+	c_incX := C.int(1)
+
+	c_Y := (*C.float)(unsafe.Pointer(&y[0]))
+	c_incY := C.int(1)
+
+	return float64(
+		C.cblas_dsdot(c_N,
+		c_X, c_incX,
+		c_Y, c_incY))
+}
+
+/*
+ float  cblas_sdot(const int N, const float  *X, const int incX, const float  *Y, const int incY);
+ */
+func Sdot(x, y []float32) float32 {
+	if len(x) != len(y) {
+		panic("slices' size differ")
+	}
+
+	c_N := C.int(len(x))
+
+	c_X := (*C.float)(unsafe.Pointer(&x[0]))
+	c_incX := C.int(1)
+
+	c_Y := (*C.float)(unsafe.Pointer(&y[0]))
+	c_incY := C.int(1)
+
+	return float32(
+		C.cblas_sdot(c_N,
+		c_X, c_incX,
+		c_Y, c_incY))
+
+}
+
+/*
+ double cblas_ddot(const int N, const double *X, const int incX, const double *Y, const int incY);
+ */
+func Ddot(x, y []float64) float64 {
+	if len(x) != len(y) {
+		panic("slices' size differ")
+	}
+
+	c_N := C.int(len(x))
+
+	c_X := (*C.double)(unsafe.Pointer(&x[0]))
+	c_incX := C.int(1)
+
+	c_Y := (*C.double)(unsafe.Pointer(&y[0]))
+	c_incY := C.int(1)
+
+	return float64(
+		C.cblas_ddot(c_N,
+		c_X, c_incX,
+		c_Y, c_incY))
+}
+
+/*
+ void   cblas_cdotu_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *dotu);
+ */
+func Cdotu(x, y []complex64) complex64 {
+
+	if len(x) != len(y) {
+		panic("slices' size differ")
+	}
+
+	var ret C.complexfloat
+	c_ret := unsafe.Pointer(&ret)
+
+	c_N := C.int(len(x))
+
+	c_X := unsafe.Pointer(&x[0])
+	c_incX := C.int(1)
+
+	c_Y := unsafe.Pointer(&y[0])
+	c_incY := C.int(1)
+
+	C.cblas_cdotu_sub(c_N,
+		c_X, c_incX,
+		c_Y, c_incY,
+		c_ret)
+
+	return complex(
+		float32(C.crealf(ret)),
+		float32(C.cimagf(ret)))
+}
+
+/*
+ void   cblas_cdotc_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *dotc);
+ */
+func Cdotc(x, y []complex64) complex64 {
+
+	if len(x) != len(y) {
+		panic("slices' size differ")
+	}
+
+	var ret C.complexfloat
+	c_ret := unsafe.Pointer(&ret)
+
+	c_N := C.int(len(x))
+
+	c_X := unsafe.Pointer(&x[0])
+	c_incX := C.int(1)
+
+	c_Y := unsafe.Pointer(&y[0])
+	c_incY := C.int(1)
+
+	C.cblas_cdotc_sub(c_N,
+		c_X, c_incX,
+		c_Y, c_incY,
+		c_ret)
+
+	return complex(
+		float32(C.crealf(ret)),
+		float32(C.cimagf(ret)))
+}
+
+/*
+ void   cblas_zdotu_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *dotu);
+ */
+func Zdotu(x, y []complex128) complex128 {
+
+	if len(x) != len(y) {
+		panic("slices' size differ")
+	}
+
+	var ret C.complexdouble
+
+	c_ret := unsafe.Pointer(&ret)
+
+	c_N := C.int(len(x))
+
+	c_X := unsafe.Pointer(&x[0])
+	c_incX := C.int(1)
+
+	c_Y := unsafe.Pointer(&y[0])
+	c_incY := C.int(1)
+
+	C.cblas_zdotu_sub(c_N,
+		c_X, c_incX,
+		c_Y, c_incY,
+		c_ret)
+
+	return complex(
+		float64(C.creal(ret)),
+		float64(C.cimag(ret)))
+}
+
+/*
+ void   cblas_zdotc_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *dotc);
+ */
+func Zdotc(x,y []complex64) complex64 {
+
+	if len(x) != len(y) {
+		panic("slices' size differ")
+	}
+
+	var ret C.complexfloat
+	c_ret := unsafe.Pointer(&ret)
+
+	c_N := C.int(len(x))
+
+	c_X    := unsafe.Pointer(&x[0])
+	c_incX := C.int(1)
+
+	c_Y    := unsafe.Pointer(&y[0])
+	c_incY := C.int(1)
+
+	C.cblas_cdotu_sub(c_N,
+		c_X, c_incX,
+		c_Y, c_incY,
+		c_ret)
+
+	return complex(
+		float32(C.crealf(ret)), 
+		float32(C.cimagf(ret)))
+}
+
+/*
+ float  cblas_snrm2(const int N, const float *X, const int incX);
+ */
+func Snrm2(x []float32) float32 {
+
+	c_N := C.int(len(x))
+
+	c_X := (*C.float)(unsafe.Pointer(&x[0]))
+	c_incX := C.int(1)
+
+	return float32(C.cblas_snrm2(c_N, c_X, c_incX))
+}
+
+/*
+ float  cblas_sasum(const int N, const float *X, const int incX);
+ */
+func Sasum(x []float32) float32 {
+
+	c_N := C.int(len(x))
+
+	c_X := (*C.float)(unsafe.Pointer(&x[0]))
+	c_incX := C.int(1)
+
+	return float32(C.cblas_sasum(c_N, c_X, c_incX))
+}
+
+/*
+ double cblas_dnrm2(const int N, const double *X, const int incX);
+ */
+func Dnrm2(x []float64) float64 {
+	c_N := C.int(len(x))
+
+	c_X := (*C.double)(unsafe.Pointer(&x[0]))
+	c_incX := C.int(1)
+
+	return float64(C.cblas_dnrm2(c_N, c_X, c_incX))
+}
+
+/*
+ double cblas_dasum(const int N, const double *X, const int incX);
+ */
+func Dasum(x []float64) float64 {
+	c_N := C.int(len(x))
+
+	c_X := (*C.double)(unsafe.Pointer(&x[0]))
+	c_incX := C.int(1)
+
+	return float64(C.cblas_dasum(c_N, c_X, c_incX))
+}
+
+/*
+ float  cblas_scnrm2(const int N, const void *X, const int incX);
+ */
+func Scnrm2(x []complex64) float32 {
+
+	c_N := C.int(len(x))
+	
+	c_X    := unsafe.Pointer(&x[0])
+	c_incX := C.int(1)
+
+	return float32(C.cblas_scnrm2(c_N, c_X, c_incX))
+}
+
+/*
+ float  cblas_scasum(const int N, const void *X, const int incX);
+ */
+func Scasum(x []complex64) float32 {
+
+	c_N := C.int(len(x))
+
+	c_X := unsafe.Pointer(&x[0])
+	c_incX := C.int(1)
+
+	return float32(C.cblas_scasum(c_N, c_X, c_incX))
+}
+
+/*
+ double  cblas_dznrm2(const int N, const void *X, const int incX);
+ */
+func Dznrm2(x []complex64) float64 {
+
+	c_N := C.int(len(x))
+
+	c_X := unsafe.Pointer(&x[0])
+	c_incX := C.int(1)
+
+	return float64(C.cblas_dznrm2(c_N, c_X, c_incX))
+}
+
+/*
+ double  cblas_dzasum(const int N, const void *X, const int incX);
+ */
+func Dzasum(x []complex128) float64 {
+
+	c_N := C.int(len(x))
+
+	c_X := unsafe.Pointer(&x[0])
+	c_incX := C.int(1)
+
+	return float64(C.cblas_dzasum(c_N, c_X, c_incX))
+}
+
+
+// functions having standard 4 prefixes (S D C Z)
+
+/*
+ CBLAS_INDEX cblas_isamax(const int N, const float  *X, const int incX);
+ */
+func Isamax(x []float32) Index {
+	c_N := C.int(len(x))
+	c_X := (*C.float)(unsafe.Pointer(&x[0]))
+	c_incX := C.int(1)
+	return Index(C.cblas_isamax(c_N, c_X, c_incX))
+}
+
+/*
+ CBLAS_INDEX cblas_idamax(const int N, const double *X, const int incX);
+ */
+func Idamax(x []float64) Index {
+	c_N := C.int(len(x))
+	c_X := (*C.double)(unsafe.Pointer(&x[0]))
+	c_incX := C.int(1)
+	return Index(C.cblas_idamax(c_N, c_X, c_incX))
+}

File pkg/cblas/cblas_lvl2.go

+// simplistic wrapper around the C-interface to the BLAS
+package cblas
+
+//#include "cblas.h"
+//#include <stdlib.h>
+//#include <string.h>
+import "C"
+//import "unsafe"
+
+func Sgemv() {
+
+}

File pkg/cblas/cblas_lvl3.go

+// simplistic wrapper around the C-interface to the BLAS
+package cblas
+
+//#include "cblas.h"
+//#include <stdlib.h>
+//#include <string.h>
+import "C"
+//import "unsafe"
+
+func Sgemm() {
+
+}

File pkg/cblas_lvl1.go

-// simplistic wrapper around the C-interface to the BLAS
-package cblas
-
-/*
- #include <complex.h>
- #undef I
- #include "cblas.h"
- */
-import "C"
-import "unsafe"
-
-/*
- * ===========================================================================
- * Prototypes for level 1 BLAS functions (complex are recast as routines)
- * ===========================================================================
- */
-
-/*
- float  cblas_sdsdot(const int N, const float alpha, const float *X, const int incX, const float *Y, const int incY);
- */
-func Sdsdot(alpha float32, x, y []float32) float32 {
-	if len(x) != len(y) {
-		panic("slices' size differ")
-	}
-
-	c_N := C.int(len(x))
-	c_alpha := C.float(alpha)
-
-	c_X := (*C.float)(unsafe.Pointer(&x[0]))
-	c_incX := C.int(1)
-
-	c_Y := (*C.float)(unsafe.Pointer(&y[0]))
-	c_incY := C.int(1)
-
-	return float32(
-		C.cblas_sdsdot(c_N, c_alpha,
-		c_X, c_incX,
-		c_Y, c_incY))
-}
-
-/*
- double cblas_dsdot(const int N, const float *X, const int incX, const float *Y, const int incY);
- */
-func Dsdot(x, y []float32) float64 {
-	if len(x) != len(y) {
-		panic("slices' size differ")
-	}
-
-	c_N := C.int(len(x))
-
-	c_X := (*C.float)(unsafe.Pointer(&x[0]))
-	c_incX := C.int(1)
-
-	c_Y := (*C.float)(unsafe.Pointer(&y[0]))
-	c_incY := C.int(1)
-
-	return float64(
-		C.cblas_dsdot(c_N,
-		c_X, c_incX,
-		c_Y, c_incY))
-}
-
-/*
- float  cblas_sdot(const int N, const float  *X, const int incX, const float  *Y, const int incY);
- */
-func Sdot(x, y []float32) float32 {
-	if len(x) != len(y) {
-		panic("slices' size differ")
-	}
-
-	c_N := C.int(len(x))
-
-	c_X := (*C.float)(unsafe.Pointer(&x[0]))
-	c_incX := C.int(1)
-
-	c_Y := (*C.float)(unsafe.Pointer(&y[0]))
-	c_incY := C.int(1)
-
-	return float32(
-		C.cblas_sdot(c_N,
-		c_X, c_incX,
-		c_Y, c_incY))
-
-}
-
-/*
- double cblas_ddot(const int N, const double *X, const int incX, const double *Y, const int incY);
- */
-func Ddot(x, y []float64) float64 {
-	if len(x) != len(y) {
-		panic("slices' size differ")
-	}
-
-	c_N := C.int(len(x))
-
-	c_X := (*C.double)(unsafe.Pointer(&x[0]))
-	c_incX := C.int(1)
-
-	c_Y := (*C.double)(unsafe.Pointer(&y[0]))
-	c_incY := C.int(1)
-
-	return float64(
-		C.cblas_ddot(c_N,
-		c_X, c_incX,
-		c_Y, c_incY))
-}
-
-/*
- void   cblas_cdotu_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *dotu);
- */
-func Cdotu(x, y []complex64) complex64 {
-
-	if len(x) != len(y) {
-		panic("slices' size differ")
-	}
-
-	var ret C.complexfloat
-	c_ret := unsafe.Pointer(&ret)
-
-	c_N := C.int(len(x))
-
-	c_X := unsafe.Pointer(&x[0])
-	c_incX := C.int(1)
-
-	c_Y := unsafe.Pointer(&y[0])
-	c_incY := C.int(1)
-
-	C.cblas_cdotu_sub(c_N,
-		c_X, c_incX,
-		c_Y, c_incY,
-		c_ret)
-
-	return complex(
-		float32(C.crealf(ret)),
-		float32(C.cimagf(ret)))
-}
-
-/*
- void   cblas_cdotc_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *dotc);
- */
-func Cdotc(x, y []complex64) complex64 {
-
-	if len(x) != len(y) {
-		panic("slices' size differ")
-	}
-
-	var ret C.complexfloat
-	c_ret := unsafe.Pointer(&ret)
-
-	c_N := C.int(len(x))
-
-	c_X := unsafe.Pointer(&x[0])
-	c_incX := C.int(1)
-
-	c_Y := unsafe.Pointer(&y[0])
-	c_incY := C.int(1)
-
-	C.cblas_cdotc_sub(c_N,
-		c_X, c_incX,
-		c_Y, c_incY,
-		c_ret)
-
-	return complex(
-		float32(C.crealf(ret)),
-		float32(C.cimagf(ret)))
-}
-
-/*
- void   cblas_zdotu_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *dotu);
- */
-func Zdotu(x, y []complex128) complex128 {
-
-	if len(x) != len(y) {
-		panic("slices' size differ")
-	}
-
-	var ret C.complexdouble
-
-	c_ret := unsafe.Pointer(&ret)
-
-	c_N := C.int(len(x))
-
-	c_X := unsafe.Pointer(&x[0])
-	c_incX := C.int(1)
-
-	c_Y := unsafe.Pointer(&y[0])
-	c_incY := C.int(1)
-
-	C.cblas_zdotu_sub(c_N,
-		c_X, c_incX,
-		c_Y, c_incY,
-		c_ret)
-
-	return complex(
-		float64(C.creal(ret)),
-		float64(C.cimag(ret)))
-}
-
-/*
- void   cblas_zdotc_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *dotc);
- */
-func Zdotc(x,y []complex64) complex64 {
-
-	if len(x) != len(y) {
-		panic("slices' size differ")
-	}
-
-	var ret C.complexfloat
-	c_ret := unsafe.Pointer(&ret)
-
-	c_N := C.int(len(x))
-
-	c_X    := unsafe.Pointer(&x[0])
-	c_incX := C.int(1)
-
-	c_Y    := unsafe.Pointer(&y[0])
-	c_incY := C.int(1)
-
-	C.cblas_cdotu_sub(c_N,
-		c_X, c_incX,
-		c_Y, c_incY,
-		c_ret)
-
-	return complex(
-		float32(C.crealf(ret)), 
-		float32(C.cimagf(ret)))
-}
-
-/*
- float  cblas_snrm2(const int N, const float *X, const int incX);
- */
-func Snrm2(x []float32) float32 {
-
-	c_N := C.int(len(x))
-
-	c_X := (*C.float)(unsafe.Pointer(&x[0]))
-	c_incX := C.int(1)
-
-	return float32(C.cblas_snrm2(c_N, c_X, c_incX))
-}
-
-/*
- float  cblas_sasum(const int N, const float *X, const int incX);
- */
-func Sasum(x []float32) float32 {
-
-	c_N := C.int(len(x))
-
-	c_X := (*C.float)(unsafe.Pointer(&x[0]))
-	c_incX := C.int(1)
-
-	return float32(C.cblas_sasum(c_N, c_X, c_incX))
-}
-
-/*
- double cblas_dnrm2(const int N, const double *X, const int incX);
- */
-func Dnrm2(x []float64) float64 {
-	c_N := C.int(len(x))
-
-	c_X := (*C.double)(unsafe.Pointer(&x[0]))
-	c_incX := C.int(1)
-
-	return float64(C.cblas_dnrm2(c_N, c_X, c_incX))
-}
-
-/*
- double cblas_dasum(const int N, const double *X, const int incX);
- */
-func Dasum(x []float64) float64 {
-	c_N := C.int(len(x))
-
-	c_X := (*C.double)(unsafe.Pointer(&x[0]))
-	c_incX := C.int(1)
-
-	return float64(C.cblas_dasum(c_N, c_X, c_incX))
-}
-
-/*
- float  cblas_scnrm2(const int N, const void *X, const int incX);
- */
-func Scnrm2(x []complex64) float32 {
-
-	c_N := C.int(len(x))
-	
-	c_X    := unsafe.Pointer(&x[0])
-	c_incX := C.int(1)
-
-	return float32(C.cblas_scnrm2(c_N, c_X, c_incX))
-}
-
-/*
- float  cblas_scasum(const int N, const void *X, const int incX);
- */
-func Scasum(x []complex64) float32 {
-
-	c_N := C.int(len(x))
-
-	c_X := unsafe.Pointer(&x[0])
-	c_incX := C.int(1)
-
-	return float32(C.cblas_scasum(c_N, c_X, c_incX))
-}
-
-/*
- double  cblas_dznrm2(const int N, const void *X, const int incX);
- */
-func Dznrm2(x []complex64) float64 {
-
-	c_N := C.int(len(x))
-
-	c_X := unsafe.Pointer(&x[0])
-	c_incX := C.int(1)
-
-	return float64(C.cblas_dznrm2(c_N, c_X, c_incX))
-}
-
-/*
- double  cblas_dzasum(const int N, const void *X, const int incX);
- */
-func Dzasum(x []complex128) float64 {
-
-	c_N := C.int(len(x))
-
-	c_X := unsafe.Pointer(&x[0])
-	c_incX := C.int(1)
-
-	return float64(C.cblas_dzasum(c_N, c_X, c_incX))
-}
-
-
-// functions having standard 4 prefixes (S D C Z)
-
-/*
- CBLAS_INDEX cblas_isamax(const int N, const float  *X, const int incX);
- */
-func Isamax(x []float32) Index {
-	c_N := C.int(len(x))
-	c_X := (*C.float)(unsafe.Pointer(&x[0]))
-	c_incX := C.int(1)
-	return Index(C.cblas_isamax(c_N, c_X, c_incX))
-}
-
-/*
- CBLAS_INDEX cblas_idamax(const int N, const double *X, const int incX);
- */
-func Idamax(x []float64) Index {
-	c_N := C.int(len(x))
-	c_X := (*C.double)(unsafe.Pointer(&x[0]))
-	c_incX := C.int(1)
-	return Index(C.cblas_idamax(c_N, c_X, c_incX))
-}

File pkg/cblas_lvl2.go

-// simplistic wrapper around the C-interface to the BLAS
-package cblas
-
-//#include "cblas.h"
-//#include <stdlib.h>
-//#include <string.h>
-import "C"
-//import "unsafe"
-
-func Sgemv() {
-
-}

File pkg/cblas_lvl3.go

-// simplistic wrapper around the C-interface to the BLAS
-package cblas
-
-//#include "cblas.h"
-//#include <stdlib.h>
-//#include <string.h>
-import "C"
-//import "unsafe"
-
-func Sgemm() {
-
-}

File tests/Makefile

-# Copyright 2009 The Go Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file.
-
-include ${GOROOT}/src/Make.inc
-
-TARG=go-cblas-t1
-GOFILES=\
-	t1.go
-
-include ${GOROOT}/src/Make.cmd
 package main
 
 import "fmt"
-import "cblas"
+import "bitbucket.org/binet/go-cblas/pkg/cblas"
 
 func main() {
 	{