1 // Copyright ©2017 The Gonum Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
6 Package blas provides interfaces for the BLAS linear algebra standard.
8 All methods must perform appropriate parameter checking and panic if
9 provided parameters that do not conform to the requirements specified
12 Quick Reference Guide to the BLAS from http://www.netlib.org/lapack/lug/node145.html
14 This version is modified to remove the "order" option. All matrix operations are
15 on row-order matrices.
19 dim scalar vector vector scalars 5-element prefixes
23 _rotmg( d1, d2, a, b ) S, D
24 _rot ( n, x, incX, y, incY, c, s ) S, D
25 _rotm ( n, x, incX, y, incY, param ) S, D
26 _swap ( n, x, incX, y, incY ) S, D, C, Z
27 _scal ( n, alpha, x, incX ) S, D, C, Z, Cs, Zd
28 _copy ( n, x, incX, y, incY ) S, D, C, Z
29 _axpy ( n, alpha, x, incX, y, incY ) S, D, C, Z
30 _dot ( n, x, incX, y, incY ) S, D, Ds
31 _dotu ( n, x, incX, y, incY ) C, Z
32 _dotc ( n, x, incX, y, incY ) C, Z
33 __dot ( n, alpha, x, incX, y, incY ) Sds
34 _nrm2 ( n, x, incX ) S, D, Sc, Dz
35 _asum ( n, x, incX ) S, D, Sc, Dz
36 I_amax( n, x, incX ) s, d, c, z
40 options dim b-width scalar matrix vector scalar vector prefixes
42 _gemv ( trans, m, n, alpha, a, lda, x, incX, beta, y, incY ) S, D, C, Z
43 _gbmv ( trans, m, n, kL, kU, alpha, a, lda, x, incX, beta, y, incY ) S, D, C, Z
44 _hemv ( uplo, n, alpha, a, lda, x, incX, beta, y, incY ) C, Z
45 _hbmv ( uplo, n, k, alpha, a, lda, x, incX, beta, y, incY ) C, Z
46 _hpmv ( uplo, n, alpha, ap, x, incX, beta, y, incY ) C, Z
47 _symv ( uplo, n, alpha, a, lda, x, incX, beta, y, incY ) S, D
48 _sbmv ( uplo, n, k, alpha, a, lda, x, incX, beta, y, incY ) S, D
49 _spmv ( uplo, n, alpha, ap, x, incX, beta, y, incY ) S, D
50 _trmv ( uplo, trans, diag, n, a, lda, x, incX ) S, D, C, Z
51 _tbmv ( uplo, trans, diag, n, k, a, lda, x, incX ) S, D, C, Z
52 _tpmv ( uplo, trans, diag, n, ap, x, incX ) S, D, C, Z
53 _trsv ( uplo, trans, diag, n, a, lda, x, incX ) S, D, C, Z
54 _tbsv ( uplo, trans, diag, n, k, a, lda, x, incX ) S, D, C, Z
55 _tpsv ( uplo, trans, diag, n, ap, x, incX ) S, D, C, Z
57 options dim scalar vector vector matrix prefixes
59 _ger ( m, n, alpha, x, incX, y, incY, a, lda ) S, D
60 _geru ( m, n, alpha, x, incX, y, incY, a, lda ) C, Z
61 _gerc ( m, n, alpha, x, incX, y, incY, a, lda ) C, Z
62 _her ( uplo, n, alpha, x, incX, a, lda ) C, Z
63 _hpr ( uplo, n, alpha, x, incX, ap ) C, Z
64 _her2 ( uplo, n, alpha, x, incX, y, incY, a, lda ) C, Z
65 _hpr2 ( uplo, n, alpha, x, incX, y, incY, ap ) C, Z
66 _syr ( uplo, n, alpha, x, incX, a, lda ) S, D
67 _spr ( uplo, n, alpha, x, incX, ap ) S, D
68 _syr2 ( uplo, n, alpha, x, incX, y, incY, a, lda ) S, D
69 _spr2 ( uplo, n, alpha, x, incX, y, incY, ap ) S, D
73 options dim scalar matrix matrix scalar matrix prefixes
75 _gemm ( transA, transB, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc ) S, D, C, Z
76 _symm ( side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc ) S, D, C, Z
77 _hemm ( side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc ) C, Z
78 _syrk ( uplo, trans, n, k, alpha, a, lda, beta, c, ldc ) S, D, C, Z
79 _herk ( uplo, trans, n, k, alpha, a, lda, beta, c, ldc ) C, Z
80 _syr2k( uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc ) S, D, C, Z
81 _her2k( uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc ) C, Z
82 _trmm ( side, uplo, transA, diag, m, n, alpha, a, lda, b, ldb ) S, D, C, Z
83 _trsm ( side, uplo, transA, diag, m, n, alpha, a, lda, b, ldb ) S, D, C, Z
87 S - float32 C - complex64
88 D - float64 Z - complex128
92 GE - GEneral GB - General Band
93 SY - SYmmetric SB - Symmetric Band SP - Symmetric Packed
94 HE - HErmitian HB - Hermitian Band HP - Hermitian Packed
95 TR - TRiangular TB - Triangular Band TP - Triangular Packed
99 trans = NoTrans, Trans, ConjTrans
102 side = Left, Right (A or op(A) on the left, or A or op(A) on the right)
104 For real matrices, Trans and ConjTrans have the same meaning.
105 For Hermitian matrices, trans = Trans is not allowed.
106 For complex symmetric matrices, trans = ConjTrans is not allowed.
108 package blas // import "gonum.org/v1/gonum/blas"