Module document_func

Source
Expand description

§BLAS Wrapper Structs

Document of BLAS wrappers is on-going work.

Terms of the following table is

  • Prototype: Prototype of BLAS wrappers.
    • For users, prototype is NOT designed to be used by API caller. One may wish to call generic structs (such as GEMM<F>) or directly call specialization (such as DGEMM).
    • For documents and structure of BLAS wrapper, please refer to hyperlinks of prototype (on docs.rs). We also refer LAPACK document.
  • Num Trait: Trait bound that could be applied on generics.
  • Generic: Generic structs of BLAS wrapper. This is designed to be called by API user. For example of GEMM<F>, this is type alias of GEMM_Builder<F>.
  • Specialization: Specialization structs of BLAS wrapper. This is designed to be called by API user, and have the same subroutine name to (legacy) BLAS.

Abbrivations

  • symm: Symmetric
  • hermi: Hermitian
  • tri: Triangular

§Level 3 BLAS

BLASPrototypeNum TraitGenericf32f64c32c64Description
gemmGEMM_<F>GEMMNumGEMM<F>SGEMMDGEMMCGEMMZGEMMgeneral matrix-matrix multiply
symmSYMM_<F>SYMMNumSYMM<F>SSYMMDSYMMCSYMMZSYMMsymm matrix-matrix multiply
hemmHEMM_<F>HEMMNumHEMM<F>CHEMMZHEMMhermi matrix-matrix multiply
syrkSYRK_<F>SYRKNumSYRK<F>SSYRKDSYRKCSYRKZSYRKsymm rank-k update
herkHERK_<F>HERKNumHERK<F>CHERKZHERKhermi rank-k update
syr2kSYR2K_<F>SYR2KNumSYR2K<F>SSYR2KDSYR2KCSYR2KZSYR2Ksymm rank-2k update
her2kHER2K_<F>HER2KNumHER2K<F>CHER2KZHER2Khermi rank-2k update
trmmTRMM_<F>TRMMNumTRMM<F>STRMMDTRMMCTRMMZTRMMtri matrix-matrix multiply
trsmTRSM_<F>TRSMNumTRSM<F>STRSMDTRSMCTRSMZTRSMtri matrix-matrix solve

§Level 3 BLAS (extensions)

BLASPrototypeNum TraitGenericf32f64c32c64Description
gemmt[GEMMT_<F>][GEMMTNum][GEMMT<F>][SGEMMT][DGEMMT][CGEMMT][ZGEMMT]general matrix-matrix multiply, tri update

§Level 2 BLAS (full)

BLASPrototypeNum TraitGenericf32f64c32c64Description
gemvGEMV_<F>GEMVNumGEMV<F>SGEMVDGEMVCGEMVZGEMVgeneral matrix-vector multiply
gerGER_<F>GERNumGER<F>SGERDGERCGERUZGERUgeneral matrix rank-1 update
gercGERC_<F>GERCNumGERC<F>CGERCZGERCgeneral matrix rank-1 update
{sy,he}mvHEMV_<F>HEMVNumHEMV<F>SSYMVDSYMVCHEMVZHEMVsymm/hermi matrix-vector multiply
{sy,he}rHER_<F>HERNumHER<F>SSYRDSYRCHERZHERsymm/hermi rank-1 update
{sy,he}r2HER2_<F>HER2NumHER2<F>SSYR2DSYR2CHER2ZHER2symm/hermi rank-2 update
trmvTRMV_<F>TRMVNumTRMV<F>STRMVDTRMVCTRMVZTRMVtri matrix-vector multiply
trsvTRSV_<F>TRSVNumTRSV<F>STRSVDTRSVCTRSVZTRSVtri matrix-vector solve

§Level 2 BLAS (packed)

BLASPrototypeNum TraitGenericf32f64c32c64Description
{sp,hp}mvHPMV_<F>HPMVNumHPMV<F>SSPMVDSPMVCHPMVZHPMVsymm/hermi matrix-vector multiply
{sp,hp}rHPR_<F>HPRNumHPR<F>SSPRDSPRCHPRZHPRsymm/hermi rank-1 update
{sp,hp}r2HPR2_<F>HPR2NumHPR2<F>SSPR2DSPR2CHPR2ZHPR2symm/hermi rank-2 update
tpmvTPMV_<F>TPMVNumTPMV<F>STPMVDTPMVCTPMVZTPMVtri matrix-vector multiply
tpsvTPSV_<F>TPSVNumTPSV<F>STPSVDTPSVCTPSVZTPSVtri matrix-vector solve

§Level 2 BLAS (banded)

BLASPrototypeNum TraitGenericf32f64c32c64Description
gbmvGBMV_<F>GBMVNumGBMV<F>SGBMVDGBMVCGBMVZGBMVgeneral matrix-vector multiply
{sb,hb}mvHBMV_<F>HBMVNumHBMV<F>SSBMVDSBMVCHBMVZHBMVsymm/hermi matrix-vector multiply
tbmvTBMV_<F>TBMVNumTBMV<F>STBMVDTBMVCTBMVZTBMVtri matrix-vector multiply
tbsvTBSV_<F>TBSVNumTBSV<F>STBSVDTBSVCTBSVZTBSVtri matrix-vector solve

§Level 1 BLAS

BLASPrototypeNum TraitGenericf32f64c32c64Description
asumASUM_<F>ASUMNumASUM<F>SASUMDASUMSCASUMDZASUM$\sum_i \big( \vert \mathrm{re} ( x_i ) \vert + \vert \mathrm{im} ( x_i ) \vert \big)$
nrm2NRM2_<F>NRM2NumNRM2<F>SNRM2DNRM2SCNRM2DZASUM$\Vert \boldsymbol{x} \Vert_2$
iamaxIAMAX_<F>IAMAXNumIAMAX<F>ISAMAXIDAMAXICAMAXIZAMAX$\arg \max_i \big( \vert \mathrm{re} ( x_i ) \vert + \vert \mathrm{im} ( x_i ) \vert \big)$