中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

可替换性

KML_LAPACK对外提供的接口,与MKL-LAPACK的接口参数和函数名完全一致,可以直接替换库使用。

表1 LAPACK的替换映射关系所示为可替换的接口与MKL中LAPACK的Fortran接口的映射关系(仅给出已优化的接口)。

表1 LAPACK的替换映射关系

MKL接口

KML对应接口

数据类型

描述

?getrf

?getrf

s、d、c、z

计算矩阵A的LU分解

?geqrf

?geqrf

s、d、c、z

计算矩阵的QR分解

?gerqf

?gerqf

s、d、c、z

计算矩阵的RQ分解

?geqlf

?geqlf

s、d、c、z

计算矩阵的QL分解

?gelqf

?gelqf

s、d、c、z

计算矩阵的LQ分解

?ppsv

?ppsv

s、d、c、z

计算矩阵A的Cholesky分解,并通过分解结果求解线性方程组

?ptsv

?ptsv

s、d、c、z

求解线性方程组,其中系数矩阵A为实(共轭)对称正定三对角矩阵。

?getri

?getri

s、d、c、z

根据?getrf得到的LU分解结果计算逆矩阵

?syevd

?syevd

s、d

计算对称(Hermite)矩阵的全部特征值和特征向量

?heevd

?heevd

c、z

计算对称(Hermite)矩阵的全部特征值和特征向量

?sytrd

?sytrd

s、d

将对称矩阵或Hermite矩阵通过相似变换成对称三对角T

?hetrd

?hetrd

c、z

将对称矩阵或Hermite矩阵通过相似变换成对称三对角T

?potrf

?potrf

s、d、c、z

计算对称正定矩阵或者Hermite正定矩阵的Cholesky分解

?pttrf

?pttrf

s、d、c、z

计算实(共轭)对称正定三对角矩阵A的LDL*或U*DU分解

?potri

?potri

s、d、c、z

计算对称正定矩阵的逆。

?gesv

?gesv

s、d、c、z

求解线性方程组,其中的矩阵,的矩阵。

?orglq

?orglq

s、d

生成具有正交行的实/复矩阵Q,且该矩阵定义为K个N阶基本反射器的乘积的前M行

?unglq

?unglq

c、z

生成具有正交行的实/复矩阵Q,且该矩阵定义为K个N阶基本反射器的乘积的前M行

?ormlq

?ormlq

s、d

计算,其中Q是由?gelqf计算得到。

?unmlq

?unmlq

c、z

计算,其中Q是由?gelqf计算得到。

?orgql

?orgql

s、d

生成具有正交列的实/复矩阵Q,且该矩阵定义为K个M阶基本反射器的乘积的前N列

?ungql

?ungql

c、z

生成具有正交列的实/复矩阵Q,且该矩阵定义为K个M阶基本反射器的乘积的前N列

?ormql

?ormql

s、d

计算,其中Q是由?geqlf计算得到。

?unmql

?unmql

c、z

计算,其中Q是由?geqlf计算得到。

?orgqr

?orgqr

s、d

生成具有正交行的实/复矩阵Q,且该矩阵定义为K个N阶基本反射器的乘积的前M行

?ungqr

?ungqr

c、z

生成具有正交行的实/复矩阵Q,且该矩阵定义为K个N阶基本反射器的乘积的前M行

?orgrq

?orgrq

s、d

生成具有正交行的实/复矩阵Q,且该矩阵定义为K个N阶基本反射器的乘积的前M行

?ungrq

?ungrq

c、z

生成具有正交行的实/复矩阵Q,且该矩阵定义为K个N阶基本反射器的乘积的前M行

?ormrq

?ormrq

s、d

计算,其中Q是由?gerqf计算得到。

?unmrq

?unmrq

c、z

计算,其中Q是由?gerqf计算得到。

?ormqr

?ormqr

s、d

计算,其中Q是由?geqrf计算得到。

?unmqr

?unmqr

c、z

计算,其中Q是由?geqrf计算得到。

?syev

?syev

s、d

计算对称(Hermite)矩阵的所有特征值与特征向量。

?heev

?heev

c、z

计算对称(Hermite)矩阵的所有特征值与特征向量。

?pttrs

?pttrs

s、d、c、z

求解三对角方程AX=B,其中系数矩阵A由?pttrf分解而来。

?ptts2

?ptts2

s、d、c、z

求解三对角方程AX=B,其中系数矩阵A由?pttrf分解而来。

?lasr

?lasr

s、d、c、z

对矩阵A做平面旋转操作。

?gtsv

?gtsv

s、d、c、z

求解线性方程组A*X=B,其中系数矩阵A为一般三对角矩阵。

?gttrf

?gttrf

s、d、c、z

计算一般三对角矩阵A的LU分解。

?gttrs

?gttrs

s、d、c、z

求解三对角方程A*X=B或A**T *X=B或A**H *X=B,其中系数矩阵A由?gttrf分解而来。

?sytrd_2stage

?sytrd_2stage

s、d、c、z

将对称矩阵或Hermite矩阵A转为对称或Hermite三对角矩阵T,

?trtrs

?trtrs

s、d、c、z

求解三角方程A * X = B,或A**T * X = B。

?laset

?laset

s、d、c、z

初始化m*n的矩阵,且将对角线元素设置为beta,非对角线元素设置为alpha。

?sptrf

?sptrf

s、d、c、z

计算压缩对称矩阵的LDL*或U*DU分解。

?hptrf

?hptrf

s、d、c、z

计算压缩Hermite矩阵的LDL*或U*DU分解。

?pptrf

?pptrf

s、d、c、z

计算压缩存储的对称正定矩阵的LLT或UTU分解。

?pptrs

?pptrs

s、d、c、z

求解三对角方程A*X=B或A**T *X=B或A**H *X=B。其中系数矩阵A由?gttrf分解而来。

?pptri

?pptri

s、d、c、z

计算压缩存储的对称正定矩阵的逆矩阵。

?getrs

?getrs

s、d、c、z

求解一般线性方程A*X=B或A**T * X=B或A**H * X=B。其中系数矩阵A由?getrf分解而来。

?posv

?posv

s、d、c、z

求解线性方程组。其中A为实对称或共轭对称的正定矩阵;X和B为矩阵。

?trtri

?trtri

s、d、c、z

计算上/下三角矩阵的逆矩阵。

?laswp

?laswp

s、d、c、z

对矩阵做一系列的行交换操作。

?lascl

?lascl

s、d、c、z

对矩阵做scalar操作。

?lange

?lange

s、d、c、z

计算矩阵的范数,包含:1范数,F范数,无穷范数等。

?sgesv

?gesv

ds、zc

求解线性方程组,其中的矩阵,的矩阵。

?gels

?gels

s、d、c、z

使用矩阵的QR或LQ分解来求解超定或欠定线性方程组。

?gelsd

?gelsd

s、d、c、z

使用分治法对线性最小二乘问题求解其最小范数解。

?gelss

?gelss

s、d、c、z

使用SVD方法对线性最小二乘问题求解其最小范数解。

?steqr

?steqr

s、d、c、z

使用QL或QR方法求解对称三对角矩阵的特征值和特征向量。

?gtts2

?gtts2

s、d、c、z

求解三对角方程A*X=B或A**T *X=B或A**H *X=B,其中系数矩阵A由?gttrf分解而来。

?ormbr

?ormbr

s、d

计算C=Q*C或Q**T*C或C*Q或C*Q**T或C=P*C或P**T*C或C*P或C*P**T,

?unmbr

?unmbr

c、z

计算C=Q*C或Q**T*C或C*Q或C*Q**T或C=P*C或P**T*C或C*P或C*P**T,

?orgtr

?orgtr

s、d

通过反射因子生成正交矩阵Q,其中反射因子由SYTRD计算得来。

?ungtr

?ungtr

c、z

通过反射因子生成正交矩阵Q,其中反射因子由SYTRD计算得来。

?lacpy

?lacpy

s、d、c、z

拷贝矩阵A的所有元素或部分元素到矩阵B。

?stedc

?stedc

s、d、c、z

对称三对角矩阵的特征值求解,使用Divide-and-Conquer算法。

?gesvd

?gesvd

s、d、c、z

一般矩阵SVD分解。

?gebrd

?gebrd

s、d、c、z

一般矩阵变换到两对角矩阵。

?bdsdc

?bdsdc

s、d

计算N*N的上/下双对角矩阵B的奇异值分解,使用分治算法。

?gesdd

?gesdd

s、d、c、z

计算矩形矩阵的奇异值分解,可以用来计算左和右奇异向量,使用分治算法。

?bdsqr

?bdsqr

s、d、c、z

使用对双对角矩阵的QR算法的SVD分解来求解奇异值或左右奇异向量。

以上接口均为Fortran接口,在C语言中使用时需在接口名称后增加下划线,且参数类型均为指针类型,请参见《Kunpeng HPCKit 24.0.0 开发指南》中“鲲鹏数学库开发指南 > 应用数学库 > KML_LAPACK库函数说明 > 函数定义”章节。

若需使用LAPACKE接口(MKL中标准的C接口),需在编译开源Netlib LAPACK时增加对LAPACKE封装库的编译,请参见迁移步骤中说明。