18#ifndef _spm_datatypes_h_
19#define _spm_datatypes_h_
22#include "spm/config.h"
51#define SPM_MPI_INT MPI_INTEGER8
52#define SPM_INT_MAX INT64_MAX
54#elif defined(SPM_INT32)
58#define SPM_MPI_INT MPI_INTEGER4
59#define SPM_INT_MAX INT32_MAX
61#elif defined(SPM_LONG)
65#define SPM_MPI_INT MPI_LONG
66#define SPM_INT_MAX LONG_MAX
72#define SPM_MPI_INT MPI_INT
73#define SPM_INT_MAX INT_MAX
99 return ( a < b ) ? a : b;
121 return ( a > b ) ? a : b;
143 return ( a + b - 1 ) / b;
155#if defined(_MSC_VER) && !defined(__INTEL_COMPILER)
165#if !defined(__cplusplus) && defined(HAVE_COMPLEX_H)
173#ifndef DOXYGEN_SHOULD_SKIP_THIS
215 return sizeof( float );
217 return sizeof( double );
219 return 2 *
sizeof( float );
221 return 2 *
sizeof( double );
223 fprintf( stderr,
"spm_size_of: invalid type parameter\n" );
225 return sizeof( double );
static size_t spm_size_of(spm_coeftype_t type)
Double datatype that is not converted through precision generator functions.
double spm_fixdbl_t
Double datatype that is not converted through precision generator functions.
static spm_int_t spm_iceil(spm_int_t a, spm_int_t b)
Internal function to compute ceil(a,b).
static spm_int_t spm_imin(spm_int_t a, spm_int_t b)
Internal function to compute min(a,b).
static spm_int_t spm_imax(spm_int_t a, spm_int_t b)
Internal function to compute max(a,b).
enum spm_coeftype_e spm_coeftype_t
Arithmetic types.
struct spmatrix_s spmatrix_t
The sparse matrix data structure.
double _Complex spm_complex64_t
The double complex arithmetic datatype.
int spm_int_t
The main integer datatype used in spm arrays.
float _Complex spm_complex32_t
The real complex arithmetic datatype.
unsigned int spm_uint_t
The main unsigned integer datatype used in spm arrays.
The sparse matrix data structure.