123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- // Copyright ©2017 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.
- /*
- Package blas provides interfaces for the BLAS linear algebra standard.
- All methods must perform appropriate parameter checking and panic if
- provided parameters that do not conform to the requirements specified
- by the BLAS standard.
- Quick Reference Guide to the BLAS from http://www.netlib.org/lapack/lug/node145.html
- This version is modified to remove the "order" option. All matrix operations are
- on row-order matrices.
- Level 1 BLAS
- dim scalar vector vector scalars 5-element prefixes
- struct
- _rotg ( a, b ) S, D
- _rotmg( d1, d2, a, b ) S, D
- _rot ( n, x, incX, y, incY, c, s ) S, D
- _rotm ( n, x, incX, y, incY, param ) S, D
- _swap ( n, x, incX, y, incY ) S, D, C, Z
- _scal ( n, alpha, x, incX ) S, D, C, Z, Cs, Zd
- _copy ( n, x, incX, y, incY ) S, D, C, Z
- _axpy ( n, alpha, x, incX, y, incY ) S, D, C, Z
- _dot ( n, x, incX, y, incY ) S, D, Ds
- _dotu ( n, x, incX, y, incY ) C, Z
- _dotc ( n, x, incX, y, incY ) C, Z
- __dot ( n, alpha, x, incX, y, incY ) Sds
- _nrm2 ( n, x, incX ) S, D, Sc, Dz
- _asum ( n, x, incX ) S, D, Sc, Dz
- I_amax( n, x, incX ) s, d, c, z
- Level 2 BLAS
- options dim b-width scalar matrix vector scalar vector prefixes
- _gemv ( trans, m, n, alpha, a, lda, x, incX, beta, y, incY ) S, D, C, Z
- _gbmv ( trans, m, n, kL, kU, alpha, a, lda, x, incX, beta, y, incY ) S, D, C, Z
- _hemv ( uplo, n, alpha, a, lda, x, incX, beta, y, incY ) C, Z
- _hbmv ( uplo, n, k, alpha, a, lda, x, incX, beta, y, incY ) C, Z
- _hpmv ( uplo, n, alpha, ap, x, incX, beta, y, incY ) C, Z
- _symv ( uplo, n, alpha, a, lda, x, incX, beta, y, incY ) S, D
- _sbmv ( uplo, n, k, alpha, a, lda, x, incX, beta, y, incY ) S, D
- _spmv ( uplo, n, alpha, ap, x, incX, beta, y, incY ) S, D
- _trmv ( uplo, trans, diag, n, a, lda, x, incX ) S, D, C, Z
- _tbmv ( uplo, trans, diag, n, k, a, lda, x, incX ) S, D, C, Z
- _tpmv ( uplo, trans, diag, n, ap, x, incX ) S, D, C, Z
- _trsv ( uplo, trans, diag, n, a, lda, x, incX ) S, D, C, Z
- _tbsv ( uplo, trans, diag, n, k, a, lda, x, incX ) S, D, C, Z
- _tpsv ( uplo, trans, diag, n, ap, x, incX ) S, D, C, Z
- options dim scalar vector vector matrix prefixes
- _ger ( m, n, alpha, x, incX, y, incY, a, lda ) S, D
- _geru ( m, n, alpha, x, incX, y, incY, a, lda ) C, Z
- _gerc ( m, n, alpha, x, incX, y, incY, a, lda ) C, Z
- _her ( uplo, n, alpha, x, incX, a, lda ) C, Z
- _hpr ( uplo, n, alpha, x, incX, ap ) C, Z
- _her2 ( uplo, n, alpha, x, incX, y, incY, a, lda ) C, Z
- _hpr2 ( uplo, n, alpha, x, incX, y, incY, ap ) C, Z
- _syr ( uplo, n, alpha, x, incX, a, lda ) S, D
- _spr ( uplo, n, alpha, x, incX, ap ) S, D
- _syr2 ( uplo, n, alpha, x, incX, y, incY, a, lda ) S, D
- _spr2 ( uplo, n, alpha, x, incX, y, incY, ap ) S, D
- Level 3 BLAS
- options dim scalar matrix matrix scalar matrix prefixes
- _gemm ( transA, transB, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc ) S, D, C, Z
- _symm ( side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc ) S, D, C, Z
- _hemm ( side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc ) C, Z
- _syrk ( uplo, trans, n, k, alpha, a, lda, beta, c, ldc ) S, D, C, Z
- _herk ( uplo, trans, n, k, alpha, a, lda, beta, c, ldc ) C, Z
- _syr2k( uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc ) S, D, C, Z
- _her2k( uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc ) C, Z
- _trmm ( side, uplo, transA, diag, m, n, alpha, a, lda, b, ldb ) S, D, C, Z
- _trsm ( side, uplo, transA, diag, m, n, alpha, a, lda, b, ldb ) S, D, C, Z
- Meaning of prefixes
- S - float32 C - complex64
- D - float64 Z - complex128
- Matrix types
- GE - GEneral GB - General Band
- SY - SYmmetric SB - Symmetric Band SP - Symmetric Packed
- HE - HErmitian HB - Hermitian Band HP - Hermitian Packed
- TR - TRiangular TB - Triangular Band TP - Triangular Packed
- Options
- trans = NoTrans, Trans, ConjTrans
- uplo = Upper, Lower
- diag = Nonunit, Unit
- side = Left, Right (A or op(A) on the left, or A or op(A) on the right)
- For real matrices, Trans and ConjTrans have the same meaning.
- For Hermitian matrices, trans = Trans is not allowed.
- For complex symmetric matrices, trans = ConjTrans is not allowed.
- */
- package blas // import "gonum.org/v1/gonum/blas"
|