Data Types¶
NVPL BLAS types are defined in include/nvpl_blas_types.h
header file.
Complex Data Types¶
C / C++¶
For portability, NVPL BLAS defines its own single precision and double
precision complex data types: nvpl_scomplex_t
and nvpl_dcomplex_t
.
These types are structures with two fields (real
and imag
) of the
corresponding floating-point data type (float
and double
respectively).
For better interoperability with user’s code, it is allowed to redefine the
types before including nvpl_blas_types.h
, as long as they are ABI
compatible with the above definition.
For instance:
For C with standard C99 and newer one can do:
#include <complex.h> #define nvpl_scomplex_t float complex #define nvpl_dcomplex_t dobule complex #include "nvpl_blas_types.h"
For C++:
#include <complex> #define nvpl_scomplex_t std::complex<float> #define nvpl_dcomplex_t std::complex<double> #include "nvpl_blas_types.h"
Integer Data Types¶
See also
C / C++¶
NVPL BLAS defines the following integer data types:
nvpl_int32_t
: 32-bit integer, an alias toint32_t
nvpl_int64_t
: 64-bit integer, an alias toint64_t
nvpl_int_t
:an alias to
nvpl_int64_t
, ifNVPL_ILP64
macro is definedan alias to
nvpl_int32_t
, otherwise.
Most BLAS C and Fortran-style APIs use nvpl_int_t
that
allows using NVPL BLAS for both LP64 (where integers are 32-bit), and ILP64
(integers are 64-bit) modes based on presence or absence of NVPL_ILP64
macro.
Most Service APIs take integer parameters of fixed length,
for instance nvpl_int32_t
.
Please check the reference manual to see the exact API signature.
Fortran¶
Most BLAS APIs take integer parameters of type INTEGER
,
which has unspecified length, and which can be controlled with the compiler
flags (like -fdefault-integer-8
for GNU Fortran).
Most Service APIs take integer parameters of fixed length,
for instance INTEGER*4
.
Please check the reference manual to see the exact API signature.