OSDN Git Service

Merge pull request #201 from Bytom/v0.1
[bytom/vapor.git] / vendor / gonum.org / v1 / gonum / blas / blas.go
diff --git a/vendor/gonum.org/v1/gonum/blas/blas.go b/vendor/gonum.org/v1/gonum/blas/blas.go
deleted file mode 100644 (file)
index 43700d0..0000000
+++ /dev/null
@@ -1,287 +0,0 @@
-// Copyright ©2013 The Gonum Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-//go:generate ./conversions.bash
-
-package blas
-
-// Flag constants indicate Givens transformation H matrix state.
-type Flag int
-
-const (
-       Identity    Flag = iota - 2 // H is the identity matrix; no rotation is needed.
-       Rescaling                   // H specifies rescaling.
-       OffDiagonal                 // Off-diagonal elements of H are units.
-       Diagonal                    // Diagonal elements of H are units.
-)
-
-// SrotmParams contains Givens transformation parameters returned
-// by the Float32 Srotm method.
-type SrotmParams struct {
-       Flag
-       H [4]float32 // Column-major 2 by 2 matrix.
-}
-
-// DrotmParams contains Givens transformation parameters returned
-// by the Float64 Drotm method.
-type DrotmParams struct {
-       Flag
-       H [4]float64 // Column-major 2 by 2 matrix.
-}
-
-// Transpose is used to specify the transposition operation for a
-// routine.
-type Transpose int
-
-const (
-       NoTrans Transpose = 111 + iota
-       Trans
-       ConjTrans
-)
-
-// Uplo is used to specify whether the matrix is an upper or lower
-// triangular matrix.
-type Uplo int
-
-const (
-       All Uplo = 120 + iota
-       Upper
-       Lower
-)
-
-// Diag is used to specify whether the matrix is a unit or non-unit
-// triangular matrix.
-type Diag int
-
-const (
-       NonUnit Diag = 131 + iota
-       Unit
-)
-
-// Side is used to specify from which side a multiplication operation
-// is performed.
-type Side int
-
-const (
-       Left Side = 141 + iota
-       Right
-)
-
-// Float32 implements the single precision real BLAS routines.
-type Float32 interface {
-       Float32Level1
-       Float32Level2
-       Float32Level3
-}
-
-// Float32Level1 implements the single precision real BLAS Level 1 routines.
-type Float32Level1 interface {
-       Sdsdot(n int, alpha float32, x []float32, incX int, y []float32, incY int) float32
-       Dsdot(n int, x []float32, incX int, y []float32, incY int) float64
-       Sdot(n int, x []float32, incX int, y []float32, incY int) float32
-       Snrm2(n int, x []float32, incX int) float32
-       Sasum(n int, x []float32, incX int) float32
-       Isamax(n int, x []float32, incX int) int
-       Sswap(n int, x []float32, incX int, y []float32, incY int)
-       Scopy(n int, x []float32, incX int, y []float32, incY int)
-       Saxpy(n int, alpha float32, x []float32, incX int, y []float32, incY int)
-       Srotg(a, b float32) (c, s, r, z float32)
-       Srotmg(d1, d2, b1, b2 float32) (p SrotmParams, rd1, rd2, rb1 float32)
-       Srot(n int, x []float32, incX int, y []float32, incY int, c, s float32)
-       Srotm(n int, x []float32, incX int, y []float32, incY int, p SrotmParams)
-       Sscal(n int, alpha float32, x []float32, incX int)
-}
-
-// Float32Level2 implements the single precision real BLAS Level 2 routines.
-type Float32Level2 interface {
-       Sgemv(tA Transpose, m, n int, alpha float32, a []float32, lda int, x []float32, incX int, beta float32, y []float32, incY int)
-       Sgbmv(tA Transpose, m, n, kL, kU int, alpha float32, a []float32, lda int, x []float32, incX int, beta float32, y []float32, incY int)
-       Strmv(ul Uplo, tA Transpose, d Diag, n int, a []float32, lda int, x []float32, incX int)
-       Stbmv(ul Uplo, tA Transpose, d Diag, n, k int, a []float32, lda int, x []float32, incX int)
-       Stpmv(ul Uplo, tA Transpose, d Diag, n int, ap []float32, x []float32, incX int)
-       Strsv(ul Uplo, tA Transpose, d Diag, n int, a []float32, lda int, x []float32, incX int)
-       Stbsv(ul Uplo, tA Transpose, d Diag, n, k int, a []float32, lda int, x []float32, incX int)
-       Stpsv(ul Uplo, tA Transpose, d Diag, n int, ap []float32, x []float32, incX int)
-       Ssymv(ul Uplo, n int, alpha float32, a []float32, lda int, x []float32, incX int, beta float32, y []float32, incY int)
-       Ssbmv(ul Uplo, n, k int, alpha float32, a []float32, lda int, x []float32, incX int, beta float32, y []float32, incY int)
-       Sspmv(ul Uplo, n int, alpha float32, ap []float32, x []float32, incX int, beta float32, y []float32, incY int)
-       Sger(m, n int, alpha float32, x []float32, incX int, y []float32, incY int, a []float32, lda int)
-       Ssyr(ul Uplo, n int, alpha float32, x []float32, incX int, a []float32, lda int)
-       Sspr(ul Uplo, n int, alpha float32, x []float32, incX int, ap []float32)
-       Ssyr2(ul Uplo, n int, alpha float32, x []float32, incX int, y []float32, incY int, a []float32, lda int)
-       Sspr2(ul Uplo, n int, alpha float32, x []float32, incX int, y []float32, incY int, a []float32)
-}
-
-// Float32Level3 implements the single precision real BLAS Level 3 routines.
-type Float32Level3 interface {
-       Sgemm(tA, tB Transpose, m, n, k int, alpha float32, a []float32, lda int, b []float32, ldb int, beta float32, c []float32, ldc int)
-       Ssymm(s Side, ul Uplo, m, n int, alpha float32, a []float32, lda int, b []float32, ldb int, beta float32, c []float32, ldc int)
-       Ssyrk(ul Uplo, t Transpose, n, k int, alpha float32, a []float32, lda int, beta float32, c []float32, ldc int)
-       Ssyr2k(ul Uplo, t Transpose, n, k int, alpha float32, a []float32, lda int, b []float32, ldb int, beta float32, c []float32, ldc int)
-       Strmm(s Side, ul Uplo, tA Transpose, d Diag, m, n int, alpha float32, a []float32, lda int, b []float32, ldb int)
-       Strsm(s Side, ul Uplo, tA Transpose, d Diag, m, n int, alpha float32, a []float32, lda int, b []float32, ldb int)
-}
-
-// Float64 implements the single precision real BLAS routines.
-type Float64 interface {
-       Float64Level1
-       Float64Level2
-       Float64Level3
-}
-
-// Float64Level1 implements the double precision real BLAS Level 1 routines.
-type Float64Level1 interface {
-       Ddot(n int, x []float64, incX int, y []float64, incY int) float64
-       Dnrm2(n int, x []float64, incX int) float64
-       Dasum(n int, x []float64, incX int) float64
-       Idamax(n int, x []float64, incX int) int
-       Dswap(n int, x []float64, incX int, y []float64, incY int)
-       Dcopy(n int, x []float64, incX int, y []float64, incY int)
-       Daxpy(n int, alpha float64, x []float64, incX int, y []float64, incY int)
-       Drotg(a, b float64) (c, s, r, z float64)
-       Drotmg(d1, d2, b1, b2 float64) (p DrotmParams, rd1, rd2, rb1 float64)
-       Drot(n int, x []float64, incX int, y []float64, incY int, c float64, s float64)
-       Drotm(n int, x []float64, incX int, y []float64, incY int, p DrotmParams)
-       Dscal(n int, alpha float64, x []float64, incX int)
-}
-
-// Float64Level2 implements the double precision real BLAS Level 2 routines.
-type Float64Level2 interface {
-       Dgemv(tA Transpose, m, n int, alpha float64, a []float64, lda int, x []float64, incX int, beta float64, y []float64, incY int)
-       Dgbmv(tA Transpose, m, n, kL, kU int, alpha float64, a []float64, lda int, x []float64, incX int, beta float64, y []float64, incY int)
-       Dtrmv(ul Uplo, tA Transpose, d Diag, n int, a []float64, lda int, x []float64, incX int)
-       Dtbmv(ul Uplo, tA Transpose, d Diag, n, k int, a []float64, lda int, x []float64, incX int)
-       Dtpmv(ul Uplo, tA Transpose, d Diag, n int, ap []float64, x []float64, incX int)
-       Dtrsv(ul Uplo, tA Transpose, d Diag, n int, a []float64, lda int, x []float64, incX int)
-       Dtbsv(ul Uplo, tA Transpose, d Diag, n, k int, a []float64, lda int, x []float64, incX int)
-       Dtpsv(ul Uplo, tA Transpose, d Diag, n int, ap []float64, x []float64, incX int)
-       Dsymv(ul Uplo, n int, alpha float64, a []float64, lda int, x []float64, incX int, beta float64, y []float64, incY int)
-       Dsbmv(ul Uplo, n, k int, alpha float64, a []float64, lda int, x []float64, incX int, beta float64, y []float64, incY int)
-       Dspmv(ul Uplo, n int, alpha float64, ap []float64, x []float64, incX int, beta float64, y []float64, incY int)
-       Dger(m, n int, alpha float64, x []float64, incX int, y []float64, incY int, a []float64, lda int)
-       Dsyr(ul Uplo, n int, alpha float64, x []float64, incX int, a []float64, lda int)
-       Dspr(ul Uplo, n int, alpha float64, x []float64, incX int, ap []float64)
-       Dsyr2(ul Uplo, n int, alpha float64, x []float64, incX int, y []float64, incY int, a []float64, lda int)
-       Dspr2(ul Uplo, n int, alpha float64, x []float64, incX int, y []float64, incY int, a []float64)
-}
-
-// Float64Level3 implements the double precision real BLAS Level 3 routines.
-type Float64Level3 interface {
-       Dgemm(tA, tB Transpose, m, n, k int, alpha float64, a []float64, lda int, b []float64, ldb int, beta float64, c []float64, ldc int)
-       Dsymm(s Side, ul Uplo, m, n int, alpha float64, a []float64, lda int, b []float64, ldb int, beta float64, c []float64, ldc int)
-       Dsyrk(ul Uplo, t Transpose, n, k int, alpha float64, a []float64, lda int, beta float64, c []float64, ldc int)
-       Dsyr2k(ul Uplo, t Transpose, n, k int, alpha float64, a []float64, lda int, b []float64, ldb int, beta float64, c []float64, ldc int)
-       Dtrmm(s Side, ul Uplo, tA Transpose, d Diag, m, n int, alpha float64, a []float64, lda int, b []float64, ldb int)
-       Dtrsm(s Side, ul Uplo, tA Transpose, d Diag, m, n int, alpha float64, a []float64, lda int, b []float64, ldb int)
-}
-
-// Complex64 implements the single precision complex BLAS routines.
-type Complex64 interface {
-       Complex64Level1
-       Complex64Level2
-       Complex64Level3
-}
-
-// Complex64Level1 implements the single precision complex BLAS Level 1 routines.
-type Complex64Level1 interface {
-       Cdotu(n int, x []complex64, incX int, y []complex64, incY int) (dotu complex64)
-       Cdotc(n int, x []complex64, incX int, y []complex64, incY int) (dotc complex64)
-       Scnrm2(n int, x []complex64, incX int) float32
-       Scasum(n int, x []complex64, incX int) float32
-       Icamax(n int, x []complex64, incX int) int
-       Cswap(n int, x []complex64, incX int, y []complex64, incY int)
-       Ccopy(n int, x []complex64, incX int, y []complex64, incY int)
-       Caxpy(n int, alpha complex64, x []complex64, incX int, y []complex64, incY int)
-       Cscal(n int, alpha complex64, x []complex64, incX int)
-       Csscal(n int, alpha float32, x []complex64, incX int)
-}
-
-// Complex64Level2 implements the single precision complex BLAS routines Level 2 routines.
-type Complex64Level2 interface {
-       Cgemv(tA Transpose, m, n int, alpha complex64, a []complex64, lda int, x []complex64, incX int, beta complex64, y []complex64, incY int)
-       Cgbmv(tA Transpose, m, n, kL, kU int, alpha complex64, a []complex64, lda int, x []complex64, incX int, beta complex64, y []complex64, incY int)
-       Ctrmv(ul Uplo, tA Transpose, d Diag, n int, a []complex64, lda int, x []complex64, incX int)
-       Ctbmv(ul Uplo, tA Transpose, d Diag, n, k int, a []complex64, lda int, x []complex64, incX int)
-       Ctpmv(ul Uplo, tA Transpose, d Diag, n int, ap []complex64, x []complex64, incX int)
-       Ctrsv(ul Uplo, tA Transpose, d Diag, n int, a []complex64, lda int, x []complex64, incX int)
-       Ctbsv(ul Uplo, tA Transpose, d Diag, n, k int, a []complex64, lda int, x []complex64, incX int)
-       Ctpsv(ul Uplo, tA Transpose, d Diag, n int, ap []complex64, x []complex64, incX int)
-       Chemv(ul Uplo, n int, alpha complex64, a []complex64, lda int, x []complex64, incX int, beta complex64, y []complex64, incY int)
-       Chbmv(ul Uplo, n, k int, alpha complex64, a []complex64, lda int, x []complex64, incX int, beta complex64, y []complex64, incY int)
-       Chpmv(ul Uplo, n int, alpha complex64, ap []complex64, x []complex64, incX int, beta complex64, y []complex64, incY int)
-       Cgeru(m, n int, alpha complex64, x []complex64, incX int, y []complex64, incY int, a []complex64, lda int)
-       Cgerc(m, n int, alpha complex64, x []complex64, incX int, y []complex64, incY int, a []complex64, lda int)
-       Cher(ul Uplo, n int, alpha float32, x []complex64, incX int, a []complex64, lda int)
-       Chpr(ul Uplo, n int, alpha float32, x []complex64, incX int, a []complex64)
-       Cher2(ul Uplo, n int, alpha complex64, x []complex64, incX int, y []complex64, incY int, a []complex64, lda int)
-       Chpr2(ul Uplo, n int, alpha complex64, x []complex64, incX int, y []complex64, incY int, ap []complex64)
-}
-
-// Complex64Level3 implements the single precision complex BLAS Level 3 routines.
-type Complex64Level3 interface {
-       Cgemm(tA, tB Transpose, m, n, k int, alpha complex64, a []complex64, lda int, b []complex64, ldb int, beta complex64, c []complex64, ldc int)
-       Csymm(s Side, ul Uplo, m, n int, alpha complex64, a []complex64, lda int, b []complex64, ldb int, beta complex64, c []complex64, ldc int)
-       Csyrk(ul Uplo, t Transpose, n, k int, alpha complex64, a []complex64, lda int, beta complex64, c []complex64, ldc int)
-       Csyr2k(ul Uplo, t Transpose, n, k int, alpha complex64, a []complex64, lda int, b []complex64, ldb int, beta complex64, c []complex64, ldc int)
-       Ctrmm(s Side, ul Uplo, tA Transpose, d Diag, m, n int, alpha complex64, a []complex64, lda int, b []complex64, ldb int)
-       Ctrsm(s Side, ul Uplo, tA Transpose, d Diag, m, n int, alpha complex64, a []complex64, lda int, b []complex64, ldb int)
-       Chemm(s Side, ul Uplo, m, n int, alpha complex64, a []complex64, lda int, b []complex64, ldb int, beta complex64, c []complex64, ldc int)
-       Cherk(ul Uplo, t Transpose, n, k int, alpha float32, a []complex64, lda int, beta float32, c []complex64, ldc int)
-       Cher2k(ul Uplo, t Transpose, n, k int, alpha complex64, a []complex64, lda int, b []complex64, ldb int, beta float32, c []complex64, ldc int)
-}
-
-// Complex128 implements the double precision complex BLAS routines.
-type Complex128 interface {
-       Complex128Level1
-       Complex128Level2
-       Complex128Level3
-}
-
-// Complex128Level1 implements the double precision complex BLAS Level 1 routines.
-type Complex128Level1 interface {
-       Zdotu(n int, x []complex128, incX int, y []complex128, incY int) (dotu complex128)
-       Zdotc(n int, x []complex128, incX int, y []complex128, incY int) (dotc complex128)
-       Dznrm2(n int, x []complex128, incX int) float64
-       Dzasum(n int, x []complex128, incX int) float64
-       Izamax(n int, x []complex128, incX int) int
-       Zswap(n int, x []complex128, incX int, y []complex128, incY int)
-       Zcopy(n int, x []complex128, incX int, y []complex128, incY int)
-       Zaxpy(n int, alpha complex128, x []complex128, incX int, y []complex128, incY int)
-       Zscal(n int, alpha complex128, x []complex128, incX int)
-       Zdscal(n int, alpha float64, x []complex128, incX int)
-}
-
-// Complex128Level2 implements the double precision complex BLAS Level 2 routines.
-type Complex128Level2 interface {
-       Zgemv(tA Transpose, m, n int, alpha complex128, a []complex128, lda int, x []complex128, incX int, beta complex128, y []complex128, incY int)
-       Zgbmv(tA Transpose, m, n int, kL int, kU int, alpha complex128, a []complex128, lda int, x []complex128, incX int, beta complex128, y []complex128, incY int)
-       Ztrmv(ul Uplo, tA Transpose, d Diag, n int, a []complex128, lda int, x []complex128, incX int)
-       Ztbmv(ul Uplo, tA Transpose, d Diag, n, k int, a []complex128, lda int, x []complex128, incX int)
-       Ztpmv(ul Uplo, tA Transpose, d Diag, n int, ap []complex128, x []complex128, incX int)
-       Ztrsv(ul Uplo, tA Transpose, d Diag, n int, a []complex128, lda int, x []complex128, incX int)
-       Ztbsv(ul Uplo, tA Transpose, d Diag, n, k int, a []complex128, lda int, x []complex128, incX int)
-       Ztpsv(ul Uplo, tA Transpose, d Diag, n int, ap []complex128, x []complex128, incX int)
-       Zhemv(ul Uplo, n int, alpha complex128, a []complex128, lda int, x []complex128, incX int, beta complex128, y []complex128, incY int)
-       Zhbmv(ul Uplo, n, k int, alpha complex128, a []complex128, lda int, x []complex128, incX int, beta complex128, y []complex128, incY int)
-       Zhpmv(ul Uplo, n int, alpha complex128, ap []complex128, x []complex128, incX int, beta complex128, y []complex128, incY int)
-       Zgeru(m, n int, alpha complex128, x []complex128, incX int, y []complex128, incY int, a []complex128, lda int)
-       Zgerc(m, n int, alpha complex128, x []complex128, incX int, y []complex128, incY int, a []complex128, lda int)
-       Zher(ul Uplo, n int, alpha float64, x []complex128, incX int, a []complex128, lda int)
-       Zhpr(ul Uplo, n int, alpha float64, x []complex128, incX int, a []complex128)
-       Zher2(ul Uplo, n int, alpha complex128, x []complex128, incX int, y []complex128, incY int, a []complex128, lda int)
-       Zhpr2(ul Uplo, n int, alpha complex128, x []complex128, incX int, y []complex128, incY int, ap []complex128)
-}
-
-// Complex128Level3 implements the double precision complex BLAS Level 3 routines.
-type Complex128Level3 interface {
-       Zgemm(tA, tB Transpose, m, n, k int, alpha complex128, a []complex128, lda int, b []complex128, ldb int, beta complex128, c []complex128, ldc int)
-       Zsymm(s Side, ul Uplo, m, n int, alpha complex128, a []complex128, lda int, b []complex128, ldb int, beta complex128, c []complex128, ldc int)
-       Zsyrk(ul Uplo, t Transpose, n, k int, alpha complex128, a []complex128, lda int, beta complex128, c []complex128, ldc int)
-       Zsyr2k(ul Uplo, t Transpose, n, k int, alpha complex128, a []complex128, lda int, b []complex128, ldb int, beta complex128, c []complex128, ldc int)
-       Ztrmm(s Side, ul Uplo, tA Transpose, d Diag, m, n int, alpha complex128, a []complex128, lda int, b []complex128, ldb int)
-       Ztrsm(s Side, ul Uplo, tA Transpose, d Diag, m, n int, alpha complex128, a []complex128, lda int, b []complex128, ldb int)
-       Zhemm(s Side, ul Uplo, m, n int, alpha complex128, a []complex128, lda int, b []complex128, ldb int, beta complex128, c []complex128, ldc int)
-       Zherk(ul Uplo, t Transpose, n, k int, alpha float64, a []complex128, lda int, beta float64, c []complex128, ldc int)
-       Zher2k(ul Uplo, t Transpose, n, k int, alpha complex128, a []complex128, lda int, b []complex128, ldb int, beta float64, c []complex128, ldc int)
-}