数据类型#
NVPL LAPACK 类型在 include/nvpl_lapack_types.h
头文件中定义。
复数数据类型#
C / C++#
为了可移植性,NVPL LAPACK 定义了其自身的单精度和双精度复数数据类型:nvpl_scomplex_t
和 nvpl_dcomplex_t
。这些类型是结构体,包含两个字段(real
和 imag
),分别是对应的浮点数据类型(float
和 double
)。
为了更好地与用户的代码互操作,允许在包含 nvpl_lapack_types.h
之前重新定义这些类型,只要它们与上述定义 ABI 兼容并且定义了 NVPL_LAPACK_COMPLEX_CUSTOM
。
例如
对于使用 C99 及更高标准的 C 语言,可以这样做
#include <complex.h> #define NVPL_LAPACK_COMPLEX_CUSTOM #define nvpl_scomplex_t float complex #define nvpl_dcomplex_t double complex #include "nvpl_lapack_types.h"
对于 C++
#include <complex> #define NVPL_LAPACK_COMPLEX_CUSTOM #define nvpl_scomplex_t std::complex<float> #define nvpl_dcomplex_t std::complex<double> #include "nvpl_lapack_types.h"
整数数据类型#
另请参阅
C / C++#
NVPL LAPACK 定义了以下 3 种整数数据类型
nvpl_int32_t
:32 位整数,是int32_t
的别名。nvpl_int64_t
:64 位整数,是int64_t
的别名。nvpl_int_t
:如果定义了宏NVPL_ILP64
,则是nvpl_int64_t
的别名,否则是nvpl_int32_t
的别名。
在 nvpl_lapack.h
中的 NVPL LAPACK C 声明使用整数类型 nvpl_int_t
,以便应用程序可以定义宏 NVPL_ILP64
并链接 ILP64 接口库,或者在未定义 NVPL_ILP64
的情况下链接 LP64 接口。
服务类型#
nvpl_lapack_math_mode_t#
C / C++
NVPL LAPACK 定义了枚举 nvpl_lapack_math_mode_t
,具有以下值
NVPL_LAPACK_MATH_MODE_DEFAULT
,NVPL LAPACK 内部计算的默认数学模式NVPL_LAPACK_MATH_MODE_PEDANTIC
,启用对数值病态情况处理的额外关注NVPL_LAPACK_MATH_MODE_USE_GLOBAL
,可用于重置线程局部数学模式设置的特殊值。
注意:建议使用默认数学模式,除非观察到数值伪像或不良行为。详见数学模式。
nvpl_lapack_env_mode_t#
C / C++
NVPL LAPACK 定义了枚举 nvpl_lapack_env_mode_t
,具有以下值
NVPL_LAPACK_ENV_MODE_DEFAULT
,遵循环境变量NVPL_LAPACK_ENV_MODE_IGNORE
,忽略环境变量NVPL_LAPACK_ENV_MODE_USE_GLOBAL
,可用于重置线程局部环境模式设置的特殊值。
详见环境模式。