Jump to navigation
Developer Zone
简体中文
English
Español
Português
Русский
Sign in
Signup
Support
Site to search:
Intel® DZ
Intel.com
Intel® Math Kernel Library
Documentation
Home
Features
Linear
Algebra
Fast Fourier
Transforms
Vector Statistics & Data
Fitting
Vector Math & Miscellaneous
Solvers
Performance
Benchmarks
Choose &
Download
Documentation
Browse All
Documentation
Get
Started
All Developer Programs
简体中文
English
Español
Português
Русский
Sign in
Signup
Support
Site to search:
Intel® DZ
Intel.com
Share
Tweet
Share
Send
Share
Download PDF
Developer Reference for Intel® Math Kernel Library - C
Submitted December 9, 2019
Contents
Getting Help and
Support
What's
New
Notational
Conventions
Overview
Performance
Enhancements
Parallelism
C Datatypes Specific to Intel
MKL
BLAS and Sparse BLAS
Routines
BLAS
Routines
Naming Conventions for BLAS
Routines
C Interface Conventions for BLAS
Routines
Matrix Storage Schemes for BLAS
Routines
BLAS Level 1 Routines and
Functions
cblas_?asum
cblas_?axpy
cblas_?copy
cblas_?dot
cblas_?sdot
cblas_?dotc
cblas_?dotu
cblas_?nrm2
cblas_?rot
cblas_?rotg
cblas_?rotm
cblas_?rotmg
cblas_?scal
cblas_?swap
cblas_i?amax
cblas_i?amin
cblas_?cabs1
BLAS Level 2
Routines
cblas_?gbmv
cblas_?gemv
cblas_?ger
cblas_?gerc
cblas_?geru
cblas_?hbmv
cblas_?hemv
cblas_?her
cblas_?her2
cblas_?hpmv
cblas_?hpr
cblas_?hpr2
cblas_?sbmv
cblas_?spmv
cblas_?spr
cblas_?spr2
cblas_?symv
cblas_?syr
cblas_?syr2
cblas_?tbmv
cblas_?tbsv
cblas_?tpmv
cblas_?tpsv
cblas_?trmv
cblas_?trsv
BLAS Level 3
Routines
cblas_?gemm
cblas_?hemm
cblas_?herk
cblas_?her2k
cblas_?symm
cblas_?syrk
cblas_?syr2k
cblas_?trmm
cblas_?trsm
Sparse BLAS Level 1
Routines
Vector
Arguments
Naming Conventions for Sparse BLAS
Routines
Routines and Data
Types
BLAS Level 1 Routines That Can Work With Sparse
Vectors
cblas_?axpyi
cblas_?doti
cblas_?dotci
cblas_?dotui
cblas_?gthr
cblas_?gthrz
cblas_?roti
cblas_?sctr
Sparse BLAS Level 2 and Level 3
Routines
Naming Conventions in Sparse BLAS Level 2 and Level
3
Sparse Matrix Storage Formats for Sparse BLAS
Routines
Routines and Supported
Operations
Interface
Consideration
Sparse BLAS Level 2 and Level 3
Routines.
mkl_?csrgemv
mkl_?bsrgemv
mkl_?coogemv
mkl_?diagemv
mkl_?csrsymv
mkl_?bsrsymv
mkl_?coosymv
mkl_?diasymv
mkl_?csrtrsv
mkl_?bsrtrsv
mkl_?cootrsv
mkl_?diatrsv
mkl_cspblas_?csrgemv
mkl_cspblas_?bsrgemv
mkl_cspblas_?coogemv
mkl_cspblas_?csrsymv
mkl_cspblas_?bsrsymv
mkl_cspblas_?coosymv
mkl_cspblas_?csrtrsv
mkl_cspblas_?bsrtrsv
mkl_cspblas_?cootrsv
mkl_?csrmv
mkl_?bsrmv
mkl_?cscmv
mkl_?coomv
mkl_?csrsv
mkl_?bsrsv
mkl_?cscsv
mkl_?coosv
mkl_?csrmm
mkl_?bsrmm
mkl_?cscmm
mkl_?coomm
mkl_?csrsm
mkl_?cscsm
mkl_?coosm
mkl_?bsrsm
mkl_?diamv
mkl_?skymv
mkl_?diasv
mkl_?skysv
mkl_?diamm
mkl_?skymm
mkl_?diasm
mkl_?skysm
mkl_?dnscsr
mkl_?csrcoo
mkl_?csrbsr
mkl_?csrcsc
mkl_?csrdia
mkl_?csrsky
mkl_?csradd
mkl_?csrmultcsr
mkl_?csrmultd
Sparse QR
Routines
mkl_sparse_set_qr_hint
mkl_sparse_?_qr
mkl_sparse_qr_reorder
mkl_sparse_?_qr_factorize
mkl_sparse_?_qr_solve
mkl_sparse_?_qr_qmult
mkl_sparse_?_qr_rsolve
BLAS and LAPACK Compact
Routines
mkl_?gemm_compact
mkl_?trsm_compact
mkl_?potrf_compact
mkl_?getrfnp_compact
mkl_?geqrf_compact
mkl_?getrinp_compact
Numerical Limitations for Compact BLAS and Compact LAPACK
Routines
mkl_?get_size_compact
mkl_get_format_compact
mkl_?gepack_compact
mkl_?geunpack_compact
Inspector-executor Sparse BLAS
Routines
Naming conventions in Inspector-executor Sparse BLAS
Routines
Sparse Matrix Storage Formats for Inspector-executor Sparse BLAS
Routines
Supported Inspector-executor Sparse BLAS
Operations
Two-stage Algorithm for Inspector-executor Sparse BLAS
routines
Matrix Manipulation
Routines
mkl_sparse_?_create_csr
mkl_sparse_?_create_csc
mkl_sparse_?_create_coo
mkl_sparse_?_create_bsr
mkl_sparse_copy
mkl_sparse_destroy
mkl_sparse_convert_csr
mkl_sparse_convert_bsr
mkl_sparse_?_export_csr
mkl_sparse_?_export_csc
mkl_sparse_?_export_bsr
mkl_sparse_?_set_value
mkl_sparse_?_update_values
mkl_sparse_order
Inspector-executor Sparse BLAS Analysis
Routines
mkl_sparse_set_lu_smoother_hint
mkl_sparse_set_mv_hint
mkl_sparse_set_sv_hint
mkl_sparse_set_mm_hint
mkl_sparse_set_sm_hint
mkl_sparse_set_dotmv_hint
mkl_sparse_set_symgs_hint
mkl_sparse_set_memory_hint
mkl_sparse_optimize
Inspector-Executor Sparse BLAS Execution
Routines
mkl_sparse_?_lu_smoother
mkl_sparse_?_mv
mkl_sparse_?_trsv
mkl_sparse_?_mm
mkl_sparse_?_trsm
mkl_sparse_?_add
mkl_sparse_spmm
mkl_sparse_?_spmmd
mkl_sparse_sp2m
mkl_sparse_sypr
mkl_sparse_?_syprd
mkl_sparse_?_symgs
mkl_sparse_?_symgs_mv
mkl_sparse_syrk
mkl_sparse_?_syrkd
mkl_sparse_?_dotmv
BLAS-like
Extensions
cblas_?axpby
cblas_?gemmt
cblas_?gemm3m
cblas_?gemm_batch
cblas_?gemm3m_batch
cblas_?trsm_batch
mkl_?imatcopy
mkl_?omatcopy
mkl_?omatcopy2
mkl_?omatadd
cblas_?gemm_pack_get_size,
cblas_gemm_*_pack_get_size
cblas_?gemm_alloc
cblas_?gemm_pack
cblas_gemm_*_pack
cblas_?gemm_compute
cblas_gemm_*_compute
cblas_?gemm_free
cblas_gemm_*
LAPACK
Routines
Choosing a LAPACK
Routine
C Interface Conventions for LAPACK
Routines
Matrix Layout for LAPACK
Routines
Matrix Storage Schemes for LAPACK
Routines
Mathematical Notation for LAPACK
Routines
Error
Analysis
LAPACK Linear Equation
Routines
LAPACK Linear Equation Computational
Routines
Matrix Factorization: LAPACK Computational
Routines
?getrf
mkl_?getrfnp
mkl_?getrfnpi
?getrf2
?gbtrf
?gttrf
?dttrfb
?potrf
?potrf2
?pstrf
?pftrf
?pptrf
?pbtrf
?pttrf
?sytrf
?sytrf_aa
?sytrf_rook
?sytrf_rk
?hetrf
?hetrf_aa
?hetrf_rook
?hetrf_rk
?sptrf
?hptrf
mkl_?spffrt2,
mkl_?spffrtx
Solving Systems of Linear Equations: LAPACK Computational
Routines
?getrs
?gbtrs
?gttrs
?dttrsb
?potrs
?pftrs
?pptrs
?pbtrs
?pttrs
?sytrs
?sytrs_aa
?sytrs_rook
?hetrs
?hetrs_aa
?hetrs_rook
?sytrs2
?hetrs2
?sytrs_3
?hetrs_3
?sptrs
?hptrs
?trtrs
?tptrs
?tbtrs
Estimating the Condition Number: LAPACK Computational
Routines
?gecon
?gbcon
?gtcon
?pocon
?ppcon
?pbcon
?ptcon
?sycon
?sycon_3
?hecon
?hecon_3
?spcon
?hpcon
?trcon
?tpcon
?tbcon
Refining the Solution and Estimating Its Error: LAPACK Computational
Routines
?gerfs
?gerfsx
?gbrfs
?gbrfsx
?gtrfs
?porfs
?porfsx
?pprfs
?pbrfs
?ptrfs
?syrfs
?syrfsx
?herfs
?herfsx
?sprfs
?hprfs
?trrfs
?tprfs
?tbrfs
Matrix Inversion: LAPACK Computational
Routines
?getri
mkl_?getrinp
?potri
?pftri
?pptri
?sytri
?hetri
?sytri2
?hetri2
?sytri2x
?hetri2x
?sytri_3
?hetri_3
?sptri
?hptri
?trtri
?tftri
?tptri
Matrix Equilibration: LAPACK Computational
Routines
?geequ
?geequb
?gbequ
?gbequb
?poequ
?poequb
?ppequ
?pbequ
?syequb
?heequb
LAPACK Linear Equation Driver
Routines
?gesv
?gesvx
?gesvxx
?gbsv
?gbsvx
?gbsvxx
?gtsv
?gtsvx
?dtsvb
?posv
?posvx
?posvxx
?ppsv
?ppsvx
?pbsv
?pbsvx
?ptsv
?ptsvx
?sysv
?sysv_aa
?sysv_rook
?sysv_rk
?sysvx
?sysvxx
?hesv
?hesv_aa
?hesv_rk
?hesvx
?hesvxx
?spsv
?spsvx
?hpsv
?hpsvx
LAPACK Least Squares and Eigenvalue Problem
Routines
LAPACK Least Squares and Eigenvalue Problem Computational
Routines
Orthogonal Factorizations: LAPACK Computational
Routines
?geqrf
?geqrfp
?geqrt
?gemqrt
?geqpf
?geqp3
?orgqr
?ormqr
?ungqr
?unmqr
?gelqf
?orglq
?ormlq
?unglq
?unmlq
?geqlf
?orgql
?ungql
?ormql
?unmql
?gerqf
?orgrq
?ungrq
?ormrq
?unmrq
?tzrzf
?ormrz
?unmrz
?ggqrf
?ggrqf
?tpqrt
?tpmqrt
Singular Value Decomposition: LAPACK Computational
Routines
?gebrd
?gbbrd
?orgbr
?ormbr
?ungbr
?unmbr
?bdsqr
?bdsdc
Symmetric Eigenvalue Problems: LAPACK Computational
Routines
?sytrd
?orgtr
?ormtr
?hetrd
?ungtr
?unmtr
?sptrd
?opgtr
?opmtr
?hptrd
?upgtr
?upmtr
?sbtrd
?hbtrd
?sterf
?steqr
?stemr
?stedc
?stegr
?pteqr
?stebz
?stein
?disna
Generalized Symmetric-Definite Eigenvalue Problems: LAPACK Computational
Routines
?sygst
?hegst
?spgst
?hpgst
?sbgst
?hbgst
?pbstf
Nonsymmetric Eigenvalue Problems: LAPACK Computational
Routines
?gehrd
?orghr
?ormhr
?unghr
?unmhr
?gebal
?gebak
?hseqr
?hsein
?trevc
?trevc3
?trsna
?trexc
?trsen
?trsyl
Generalized Nonsymmetric Eigenvalue Problems: LAPACK Computational
Routines
?gghrd
?ggbal
?ggbak
?gghd3
?hgeqz
?tgevc
?tgexc
?tgsen
?tgsyl
?tgsna
Generalized Singular Value Decomposition: LAPACK Computational
Routines
?ggsvp
?ggsvp3
?ggsvd3
?tgsja
Cosine-Sine Decomposition: LAPACK Computational
Routines
?bbcsd
?orbdb/?unbdb
LAPACK Least Squares and Eigenvalue Problem Driver
Routines
Linear Least Squares (LLS) Problems: LAPACK Driver
Routines
?gels
?gelsy
?gelss
?gelsd
Generalized Linear Least Squares (LLS) Problems: LAPACK Driver
Routines
?gglse
?ggglm
Symmetric Eigenvalue Problems: LAPACK Driver
Routines
?syev
?heev
?syevd
?heevd
?syevx
?heevx
?syevr
?heevr
?spev
?hpev
?spevd
?hpevd
?spevx
?hpevx
?sbev
?hbev
?sbevd
?hbevd
?sbevx
?hbevx
?stev
?stevd
?stevx
?stevr
Nonsymmetric Eigenvalue Problems: LAPACK Driver
Routines
?gees
?geesx
?geev
?geevx
Singular Value Decomposition: LAPACK Driver
Routines
?gesvd
?gesdd
?gejsv
?gesvj
?ggsvd
?gesvdx
?bdsvdx
Cosine-Sine Decomposition: LAPACK Driver
Routines
?orcsd/?uncsd
?orcsd2by1/?uncsd2by1
Generalized Symmetric Definite Eigenvalue Problems: LAPACK Driver
Routines
?sygv
?hegv
?sygvd
?hegvd
?sygvx
?hegvx
?spgv
?hpgv
?spgvd
?hpgvd
?spgvx
?hpgvx
?sbgv
?hbgv
?sbgvd
?hbgvd
?sbgvx
?hbgvx
Generalized Nonsymmetric Eigenvalue Problems: LAPACK Driver
Routines
?gges
?ggesx
?gges3
?ggev
?ggevx
?ggev3
LAPACK Auxiliary
Routines
?lacgv
?lacrm
?syconv
?syr
i?max1
?sum1
?gelq2
?geqr2
?geqrt2
?geqrt3
?getf2
?lacn2
?lacpy
?lakf2
?lange
?lansy
?lanhe
?lantr
LAPACKE_set_nancheck
LAPACKE_get_nancheck
?lapmr
?lapmt
?lapy2
?lapy3
?laran
?larfb
?larfg
?larft
?larfx
?large
?larnd
?larnv
?laror
?larot
?lartgp
?lartgs
?lascl
?lasd0
?lasd1
?lasd2
?lasd3
?lasd4
?lasd5
?lasd6
?lasd7
?lasd8
?lasd9
?lasda
?lasdq
?lasdt
?laset
?lasrt
?laswp
?latm1
?latm2
?latm3
?latm5
?latm6
?latme
?latmr
?lauum
?syswapr
?heswapr
?sfrk
?hfrk
?tfsm
?tfttp
?tfttr
?tpqrt2
?tprfb
?tpttf
?tpttr
?trttf
?trttp
?lacp2
?larcm
mkl_?tppack
mkl_?tpunpack
LAPACK Utility Functions and
Routines
ilaver
?lamch
LAPACK Test Functions and
Routines
?lagge
?laghe
?lagsy
?latms
Additional LAPACK Routines (Included for Compatibility with Netlib
LAPACK)
ScaLAPACK
Routines
Overview of ScaLAPACK
Routines
ScaLAPACK Array
Descriptors
Naming Conventions for ScaLAPACK
Routines
ScaLAPACK Computational
Routines
Systems of Linear Equations: ScaLAPACK Computational
Routines
Matrix Factorization: ScaLAPACK Computational
Routines
p?getrf
p?gbtrf
p?dbtrf
p?dttrf
p?potrf
p?pbtrf
p?pttrf
Solving Systems of Linear Equations: ScaLAPACK Computational
Routines
p?getrs
p?gbtrs
p?dbtrs
p?dttrs
p?potrs
p?pbtrs
p?pttrs
p?trtrs
Estimating the Condition Number: ScaLAPACK Computational
Routines
p?gecon
p?pocon
p?trcon
Refining the Solution and Estimating Its Error: ScaLAPACK Computational
Routines
p?gerfs
p?porfs
p?trrfs
Matrix Inversion: ScaLAPACK Computational
Routines
p?getri
p?potri
p?trtri
Matrix Equilibration: ScaLAPACK Computational
Routines
p?geequ
p?poequ
Orthogonal Factorizations: ScaLAPACK Computational
Routines
p?geqrf
p?geqpf
p?orgqr
p?ungqr
p?ormqr
p?unmqr
p?gelqf
p?orglq
p?unglq
p?ormlq
p?unmlq
p?geqlf
p?orgql
p?ungql
p?ormql
p?unmql
p?gerqf
p?orgrq
p?ungrq
p?ormr3
p?unmr3
p?ormrq
p?unmrq
p?tzrzf
p?ormrz
p?unmrz
p?ggqrf
p?ggrqf
Symmetric Eigenvalue Problems: ScaLAPACK Computational
Routines
p?syngst
p?syntrd
p?sytrd
p?ormtr
p?hengst
p?hentrd
p?hetrd
p?unmtr
p?stebz
p?stedc
p?stein
Nonsymmetric Eigenvalue Problems: ScaLAPACK Computational
Routines
p?gehrd
p?ormhr
p?unmhr
p?lahqr
p?trevc
Singular Value Decomposition: ScaLAPACK Driver
Routines
p?gebrd
p?ormbr
p?unmbr
Generalized Symmetric-Definite Eigenvalue Problems: ScaLAPACK Computational
Routines
p?sygst
p?hegst
ScaLAPACK Driver
Routines
p?gesv
p?gesvx
p?gbsv
p?dbsv
p?dtsv
p?posv
p?posvx
p?pbsv
p?ptsv
p?gels
p?syev
p?syevd
p?syevr
p?syevx
p?heev
p?heevd
p?heevr
p?heevx
p?gesvd
p?sygvx
p?hegvx
ScaLAPACK Auxiliary
Routines
p?lacgv
p?max1
pilaver
pmpcol
pmpim2
?combamax1
p?sum1
p?dbtrsv
p?dttrsv
p?gebal
p?gebd2
p?gehd2
p?gelq2
p?geql2
p?geqr2
p?gerq2
p?getf2
p?labrd
p?lacon
p?laconsb
p?lacp2
p?lacp3
p?lacpy
p?laevswp
p?lahrd
p?laiect
p?lamve
p?lange
p?lanhs
p?lansy,
p?lanhe
p?lantr
p?lapiv
p?lapv2
p?laqge
p?laqr0
p?laqr1
p?laqr2
p?laqr3
p?laqr5
p?laqsy
p?lared1d
p?lared2d
p?larf
p?larfb
p?larfc
p?larfg
p?larft
p?larz
p?larzb
p?larzc
p?larzt
p?lascl
p?lase2
p?laset
p?lasmsub
p?lasrt
p?lassq
p?laswp
p?latra
p?latrd
p?latrs
p?latrz
p?lauu2
p?lauum
p?lawil
p?org2l/p?ung2l
p?org2r/p?ung2r
p?orgl2/p?ungl2
p?orgr2/p?ungr2
p?orm2l/p?unm2l
p?orm2r/p?unm2r
p?orml2/p?unml2
p?ormr2/p?unmr2
p?pbtrsv
p?pttrsv
p?potf2
p?rot
p?rscl
p?sygs2/p?hegs2
p?sytd2/p?hetd2
p?trord
p?trsen
p?trti2
?lahqr2
?lamsh
?lapst
?laqr6
?lar1va
?laref
?larrb2
?larrd2
?larre2
?larre2a
?larrf2
?larrv2
?lasorte
?lasrt2
?stegr2
?stegr2a
?stegr2b
?stein2
?dbtf2
?dbtrf
?dttrf
?dttrsv
?pttrsv
?steqr2
?trmvt
pilaenv
pilaenvx
pjlaenv
Additional ScaLAPACK
Routines
ScaLAPACK Utility Functions and
Routines
p?labad
p?lachkieee
p?lamch
p?lasnbt
descinit
numroc
ScaLAPACK Redistribution/Copy
Routines
p?gemr2d
p?trmr2d
Sparse Solver
Routines
Intel® MKL PARDISO - Parallel Direct Sparse Solver
Interface
pardiso
pardisoinit
pardiso_64
pardiso_getenv,
pardiso_setenv
mkl_pardiso_pivot
pardiso_getdiag
pardiso_export
pardiso_handle_store
pardiso_handle_restore
pardiso_handle_delete
pardiso_handle_store_64
pardiso_handle_restore_64
pardiso_handle_delete_64
Intel® MKL PARDISO Parameters in Tabular
Form
pardiso iparm
Parameter
PARDISO_DATA_TYPE
Parallel Direct Sparse Solver for Clusters
Interface
cluster_sparse_solver
cluster_sparse_solver_64
cluster_sparse_solver_get_csr_size
cluster_sparse_solver_set_csr_ptrs
cluster_sparse_solver_set_ptr
cluster_sparse_solver_export
cluster_sparse_solver iparm
Parameter
Direct Sparse Solver (DSS) Interface
Routines
DSS Interface
Description
DSS Implementation
Details
DSS
Routines
dss_create
dss_define_structure
dss_reorder
dss_factor_real,
dss_factor_complex
dss_solve_real,
dss_solve_complex
dss_delete
dss_statistics
Iterative Sparse Solvers based on Reverse Communication Interface (RCI
ISS)
CG Interface
Description
FGMRES Interface
Description
RCI ISS
Routines
dcg_init
dcg_check
dcg
dcg_get
dcgmrhs_init
dcgmrhs_check
dcgmrhs
dcgmrhs_get
dfgmres_init
dfgmres_check
dfgmres
dfgmres_get
RCI ISS Implementation
Details
Preconditioners based on Incomplete LU Factorization
Technique
ILU0 and ILUT Preconditioners Interface
Description
dcsrilu0
dcsrilut
Sparse Matrix Checker
Routines
sparse_matrix_checker
sparse_matrix_checker_init
Extended Eigensolver
Routines
The FEAST
Algorithm
Extended Eigensolver
Functionality
Parallelism in Extended Eigensolver
Routines
Achieving Performance With Extended Eigensolver
Routines
Extended Eigensolver Interfaces for Eigenvalues within
Interval
Extended Eigensolver Naming
Conventions
feastinit
Extended Eigensolver Input
Parameters
Extended Eigensolver Output
Details
Extended Eigensolver RCI
Routines
Extended Eigensolver RCI Interface
Description
?feast_srci/?feast_hrci
Extended Eigensolver Predefined
Interfaces
Matrix
Storage
?feast_syev/?feast_heev
?feast_sygv/?feast_hegv
?feast_sbev/?feast_hbev
?feast_sbgv/?feast_hbgv
?feast_scsrev/?feast_hcsrev
?feast_scsrgv/?feast_hcsrgv
Vector Mathematical
Functions
VM Data Types, Accuracy Modes, and Performance
Tips
VM Naming
Conventions
VM Function
Interfaces
VM Mathematical Function
Interfaces
VM Pack Function
Interfaces
VM Unpack Function
Interfaces
VM Service Function
Interfaces
VM Input Function
Interfaces
VM Output Function
Interfaces