librsb  1.3
Macros
rsb_types.h File Reference

Macros and constants, which are type specific and used by rsb.h.
Here reside declarations related to supported matrix numerical types, and other declarations according to the build time options.
If you wish to use this library with different matrix numerical types, you shall regenerate the library source code accordingly; see the README file how to do this.
Only a those declarations which are documented are meant to be part of the API.
The rest is meant as internals.
See also matrix_type_symbols_section. More...

Macros

#define RSB_LIBRSB_VER_STRING   "1.3.0"
 Library version string. More...
 
#define RSB_HEADER_VERSION_STRING   "librsb version 1.3.0.0-nightly - 202201211223"
 Library header version string. More...
 
#define RSB_LIBRSB_VER_MAJOR   1
 Major version. More...
 
#define RSB_LIBRSB_VER_MINOR   3
 Minor version. More...
 
#define RSB_LIBRSB_VER_PATCH   0
 Patch version. More...
 
#define RSB_LIBRSB_VER   10300
 Version number. More...
 
#define RSB_LIBRSB_VER_DATE   202201211223
 Version release date. More...
 
#define RSB_HAVE_TYPE_DOUBLE   1
 Type double is supported, so RSB_HAVE_TYPE_DOUBLE is defined . More...
 
#define RSB_HAVE_TYPE_FLOAT   1
 Type float is supported, so RSB_HAVE_TYPE_FLOAT is defined . More...
 
#define RSB_HAVE_TYPE_FLOAT_COMPLEX   1
 Type float complex is supported, so RSB_HAVE_TYPE_FLOAT_COMPLEX is defined . More...
 
#define RSB_HAVE_TYPE_DOUBLE_COMPLEX   1
 Type double complex is supported, so RSB_HAVE_TYPE_DOUBLE_COMPLEX is defined . More...
 
#define RSB_DEFAULT_TYPE   double
 The default numerical matrix type (can be used for declarations), used in the example programs. More...
 
#define RSB_DEFAULT_POSSIBLY_INTEGER_TYPE   double
 The default, integer if possible , numerical type (can be used for declarations). More...
 
#define RSB_DEFAULT_POSSIBLY_FIRST_BLAS_TYPE   float
 The default, blas if possible , numerical type (can be used for declarations). More...
 
#define RSB_DEFAULT_TYPE_STRING   "double"
 A string specifying the name of the default type. More...
 
#define RSB_DEFAULT_POSSIBLY_INTEGER_TYPE_STRING   "double"
 A string specifying the name of the default possibly integer type. More...
 
#define RSB_DEFAULT_SYMMETRY   RSB_SYMMETRY_U
 The default symmetry flag. More...
 
#define RSB_DEFAULT_TRANSPOSITION   RSB_TRANSPOSITION_N
 The default transposition flag (no transposition). More...
 
#define RSB_HAVE_ANY_COMPLEX_TYPE   1
 Defined to 1 if any complex type has been configured in. Currently: (float complex,double complex). More...
 
#define RSB_ROWS_TRANSPOSITIONS_ARRAY   {RSB_TRANSPOSITION_N, RSB_TRANSPOSITION_T, RSB_TRANSPOSITION_C, RSB_TRANSPOSITION_INVALID}
 An array with transposition constants. More...
 
#define RSB_TRANSPOSITIONS_ARRAY_LENGTH   3 /* valid transpositions in RSB_ROWS_TRANSPOSITIONS_ARRAY */
 
#define RSB_TYPE_INDEX_DOUBLE   0
 
#define RSB_TYPE_INDEX_FLOAT   1
 
#define RSB_TYPE_INDEX_FLOAT_COMPLEX   2
 
#define RSB_TYPE_INDEX_DOUBLE_COMPLEX   3
 
Values for matrix transposition flags (rsb_trans_t).

Note that for non complex types, the Hermitian flag will act as simple transposed.

#define RSB_TRANSPOSITION_N   0x4E
 N: Non transposed flag, valid for rsb_trans_t typed variables. More...
 
#define RSB_TRANSPOSITION_T   0x54
 T: Transposed flag value, valid for rsb_trans_t valued variables. More...
 
#define RSB_TRANSPOSITION_C   0x43
 C: Conjugated transpose flag, valid for rsb_trans_t typed variables. More...
 
#define RSB_TRANSPOSITION_INVALID   0x3F
 ?: Transposition type flag value guaranteed to be invalid. Useful for tests. Valid as char. More...
 
Supported matrix numerical types.

#define RSB_MATRIX_TYPES_LIST_CXX   double,float,std::complex<float>,std::complex<double>
 list of C++ types configured in this librsb build, usable in <rsb.hpp> (since RSB_LIBRSB_VER>=10300) More...
 
Valid symbol values for matrix numerical type specification (type codes).

#define RSB_NUMERICAL_TYPE_SAME_TYPE   1
 a bogus type flag for specifying no type conversion More...
 
#define RSB_NUMERICAL_TYPE_DOUBLE   'D'
 Character code for type double. See rsb_type_t . More...
 
#define RSB_NUMERICAL_TYPE_SAME_TYPE   1
 a bogus type flag for specifying no type conversion More...
 
#define RSB_NUMERICAL_TYPE_FLOAT   'S'
 Character code for type float. See rsb_type_t . More...
 
#define RSB_NUMERICAL_TYPE_SAME_TYPE   1
 a bogus type flag for specifying no type conversion More...
 
#define RSB_NUMERICAL_TYPE_FLOAT_COMPLEX   'C'
 Character code for type float complex. See rsb_type_t . More...
 
#define RSB_NUMERICAL_TYPE_SAME_TYPE   1
 a bogus type flag for specifying no type conversion More...
 
#define RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX   'Z'
 Character code for type double complex. See rsb_type_t . More...
 
#define RSB_NUMERICAL_TYPE_FORTRAN_SAME_TYPE   1
 a bogus type flag for specifying no type conversion More...
 
#define RSB_NUMERICAL_TYPE_FORTRAN_INT   ICHAR('I')
 Character code for type int, to be used (only) from Fortran. More...
 
#define RSB_NUMERICAL_TYPE_FORTRAN_DOUBLE   ICHAR('D')
 Character code for type double, to be used (only) from Fortran. More...
 
#define RSB_NUMERICAL_TYPE_FORTRAN_FLOAT   ICHAR('S')
 Character code for type float, to be used (only) from Fortran. More...
 
#define RSB_NUMERICAL_TYPE_FORTRAN_FLOAT_COMPLEX   ICHAR('C')
 Character code for type float complex, to be used (only) from Fortran. More...
 
#define RSB_NUMERICAL_TYPE_FORTRAN_DOUBLE_COMPLEX   ICHAR('Z')
 Character code for type double complex, to be used (only) from Fortran. More...
 
#define RSB_NUMERICAL_TYPE_DEFAULT   RSB_NUMERICAL_TYPE_DOUBLE
 A default numerical matrix type. More...
 
#define RSB_NUMERICAL_TYPE_DEFAULT_INTEGER   RSB_NUMERICAL_TYPE_DOUBLE
 A default numerical matrix type; if possible, an integer one. More...
 
#define RSB_NUMERICAL_TYPE_INVALID_TYPE   '?'
 By definition, an invalid type code. More...
 
#define RSB_NUMERICAL_TYPE_FIRST_BLAS   RSB_NUMERICAL_TYPE_FLOAT
 A default numerical matrix type; if possible, not integer one. If no such type is configured in, then the invalid type. More...
 
#define RSB_CHAR_AS_TRANSPOSITION(TRANSC)
 Get the right transposition flag out of either n, c, t chars. More...
 
Miscellaneous constants.
#define RSB_CONST_MAX_TUNING_ROUNDS   16
 Maximal count of tuning rounds in one invocation of (rsb_tune_spmm/rsb_tune_spsm). More...
 

Detailed Description

Macros and constants, which are type specific and used by rsb.h.
Here reside declarations related to supported matrix numerical types, and other declarations according to the build time options.
If you wish to use this library with different matrix numerical types, you shall regenerate the library source code accordingly; see the README file how to do this.
Only a those declarations which are documented are meant to be part of the API.
The rest is meant as internals.
See also matrix_type_symbols_section.

Macro Definition Documentation

◆ RSB_CHAR_AS_TRANSPOSITION

#define RSB_CHAR_AS_TRANSPOSITION (   TRANSC)
Value:
( \
(TRANSC) == ('N') ? (RSB_TRANSPOSITION_N) : \
(TRANSC) == ('n') ? (RSB_TRANSPOSITION_N) : \
(TRANSC) == ('T') ? (RSB_TRANSPOSITION_T) : \
(TRANSC) == ('t') ? (RSB_TRANSPOSITION_T) : \
(TRANSC) == ('C') ? (RSB_TRANSPOSITION_C) : \
(TRANSC) == ('c') ? (RSB_TRANSPOSITION_C) : \
'?' \
)
#define RSB_TRANSPOSITION_T
T: Transposed flag value, valid for rsb_trans_t valued variables.
Definition: rsb_types.h:139
#define RSB_TRANSPOSITION_C
C: Conjugated transpose flag, valid for rsb_trans_t typed variables.
Definition: rsb_types.h:140
#define RSB_TRANSPOSITION_N
N: Non transposed flag, valid for rsb_trans_t typed variables.
Definition: rsb_types.h:138

Get the right transposition flag out of either n, c, t chars.

◆ RSB_CONST_MAX_TUNING_ROUNDS

#define RSB_CONST_MAX_TUNING_ROUNDS   16

Maximal count of tuning rounds in one invocation of (rsb_tune_spmm/rsb_tune_spsm).

◆ RSB_DEFAULT_POSSIBLY_FIRST_BLAS_TYPE

#define RSB_DEFAULT_POSSIBLY_FIRST_BLAS_TYPE   float

The default, blas if possible , numerical type (can be used for declarations).

◆ RSB_DEFAULT_POSSIBLY_INTEGER_TYPE

#define RSB_DEFAULT_POSSIBLY_INTEGER_TYPE   double

The default, integer if possible , numerical type (can be used for declarations).

◆ RSB_DEFAULT_POSSIBLY_INTEGER_TYPE_STRING

#define RSB_DEFAULT_POSSIBLY_INTEGER_TYPE_STRING   "double"

A string specifying the name of the default possibly integer type.

◆ RSB_DEFAULT_SYMMETRY

#define RSB_DEFAULT_SYMMETRY   RSB_SYMMETRY_U

The default symmetry flag.

◆ RSB_DEFAULT_TRANSPOSITION

#define RSB_DEFAULT_TRANSPOSITION   RSB_TRANSPOSITION_N

The default transposition flag (no transposition).

◆ RSB_DEFAULT_TYPE

#define RSB_DEFAULT_TYPE   double

The default numerical matrix type (can be used for declarations), used in the example programs.

◆ RSB_DEFAULT_TYPE_STRING

#define RSB_DEFAULT_TYPE_STRING   "double"

A string specifying the name of the default type.

◆ RSB_HAVE_ANY_COMPLEX_TYPE

#define RSB_HAVE_ANY_COMPLEX_TYPE   1

Defined to 1 if any complex type has been configured in. Currently: (float complex,double complex).

◆ RSB_HAVE_TYPE_DOUBLE

#define RSB_HAVE_TYPE_DOUBLE   1

Type double is supported, so RSB_HAVE_TYPE_DOUBLE is defined .

◆ RSB_HAVE_TYPE_DOUBLE_COMPLEX

#define RSB_HAVE_TYPE_DOUBLE_COMPLEX   1

Type double complex is supported, so RSB_HAVE_TYPE_DOUBLE_COMPLEX is defined .

◆ RSB_HAVE_TYPE_FLOAT

#define RSB_HAVE_TYPE_FLOAT   1

Type float is supported, so RSB_HAVE_TYPE_FLOAT is defined .

◆ RSB_HAVE_TYPE_FLOAT_COMPLEX

#define RSB_HAVE_TYPE_FLOAT_COMPLEX   1

Type float complex is supported, so RSB_HAVE_TYPE_FLOAT_COMPLEX is defined .

◆ RSB_HEADER_VERSION_STRING

#define RSB_HEADER_VERSION_STRING   "librsb version 1.3.0.0-nightly - 202201211223"

Library header version string.

◆ RSB_LIBRSB_VER

#define RSB_LIBRSB_VER   10300

Version number.

◆ RSB_LIBRSB_VER_DATE

#define RSB_LIBRSB_VER_DATE   202201211223

Version release date.

◆ RSB_LIBRSB_VER_MAJOR

#define RSB_LIBRSB_VER_MAJOR   1

Major version.

◆ RSB_LIBRSB_VER_MINOR

#define RSB_LIBRSB_VER_MINOR   3

Minor version.

◆ RSB_LIBRSB_VER_PATCH

#define RSB_LIBRSB_VER_PATCH   0

Patch version.

◆ RSB_LIBRSB_VER_STRING

#define RSB_LIBRSB_VER_STRING   "1.3.0"

Library version string.

◆ RSB_MATRIX_TYPES_LIST_CXX

#define RSB_MATRIX_TYPES_LIST_CXX   double,float,std::complex<float>,std::complex<double>

list of C++ types configured in this librsb build, usable in <rsb.hpp> (since RSB_LIBRSB_VER>=10300)

◆ RSB_NUMERICAL_TYPE_DEFAULT

#define RSB_NUMERICAL_TYPE_DEFAULT   RSB_NUMERICAL_TYPE_DOUBLE

A default numerical matrix type.

◆ RSB_NUMERICAL_TYPE_DEFAULT_INTEGER

#define RSB_NUMERICAL_TYPE_DEFAULT_INTEGER   RSB_NUMERICAL_TYPE_DOUBLE

A default numerical matrix type; if possible, an integer one.

◆ RSB_NUMERICAL_TYPE_DOUBLE

#define RSB_NUMERICAL_TYPE_DOUBLE   'D'

Character code for type double. See rsb_type_t .

◆ RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX

#define RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX   'Z'

Character code for type double complex. See rsb_type_t .

◆ RSB_NUMERICAL_TYPE_FIRST_BLAS

#define RSB_NUMERICAL_TYPE_FIRST_BLAS   RSB_NUMERICAL_TYPE_FLOAT

A default numerical matrix type; if possible, not integer one. If no such type is configured in, then the invalid type.

◆ RSB_NUMERICAL_TYPE_FLOAT

#define RSB_NUMERICAL_TYPE_FLOAT   'S'

Character code for type float. See rsb_type_t .

◆ RSB_NUMERICAL_TYPE_FLOAT_COMPLEX

#define RSB_NUMERICAL_TYPE_FLOAT_COMPLEX   'C'

Character code for type float complex. See rsb_type_t .

◆ RSB_NUMERICAL_TYPE_FORTRAN_DOUBLE

#define RSB_NUMERICAL_TYPE_FORTRAN_DOUBLE   ICHAR('D')

Character code for type double, to be used (only) from Fortran.

◆ RSB_NUMERICAL_TYPE_FORTRAN_DOUBLE_COMPLEX

#define RSB_NUMERICAL_TYPE_FORTRAN_DOUBLE_COMPLEX   ICHAR('Z')

Character code for type double complex, to be used (only) from Fortran.

◆ RSB_NUMERICAL_TYPE_FORTRAN_FLOAT

#define RSB_NUMERICAL_TYPE_FORTRAN_FLOAT   ICHAR('S')

Character code for type float, to be used (only) from Fortran.

◆ RSB_NUMERICAL_TYPE_FORTRAN_FLOAT_COMPLEX

#define RSB_NUMERICAL_TYPE_FORTRAN_FLOAT_COMPLEX   ICHAR('C')

Character code for type float complex, to be used (only) from Fortran.

◆ RSB_NUMERICAL_TYPE_FORTRAN_INT

#define RSB_NUMERICAL_TYPE_FORTRAN_INT   ICHAR('I')

Character code for type int, to be used (only) from Fortran.

◆ RSB_NUMERICAL_TYPE_FORTRAN_SAME_TYPE

#define RSB_NUMERICAL_TYPE_FORTRAN_SAME_TYPE   1

a bogus type flag for specifying no type conversion

◆ RSB_NUMERICAL_TYPE_INVALID_TYPE

#define RSB_NUMERICAL_TYPE_INVALID_TYPE   '?'

By definition, an invalid type code.

◆ RSB_NUMERICAL_TYPE_SAME_TYPE [1/4]

#define RSB_NUMERICAL_TYPE_SAME_TYPE   1

a bogus type flag for specifying no type conversion

◆ RSB_NUMERICAL_TYPE_SAME_TYPE [2/4]

#define RSB_NUMERICAL_TYPE_SAME_TYPE   1

a bogus type flag for specifying no type conversion

◆ RSB_NUMERICAL_TYPE_SAME_TYPE [3/4]

#define RSB_NUMERICAL_TYPE_SAME_TYPE   1

a bogus type flag for specifying no type conversion

◆ RSB_NUMERICAL_TYPE_SAME_TYPE [4/4]

#define RSB_NUMERICAL_TYPE_SAME_TYPE   1

a bogus type flag for specifying no type conversion

◆ RSB_ROWS_TRANSPOSITIONS_ARRAY

An array with transposition constants.

◆ RSB_TRANSPOSITION_C

#define RSB_TRANSPOSITION_C   0x43

C: Conjugated transpose flag, valid for rsb_trans_t typed variables.

◆ RSB_TRANSPOSITION_INVALID

#define RSB_TRANSPOSITION_INVALID   0x3F

?: Transposition type flag value guaranteed to be invalid. Useful for tests. Valid as char.

◆ RSB_TRANSPOSITION_N

#define RSB_TRANSPOSITION_N   0x4E

N: Non transposed flag, valid for rsb_trans_t typed variables.

◆ RSB_TRANSPOSITION_T

#define RSB_TRANSPOSITION_T   0x54

T: Transposed flag value, valid for rsb_trans_t valued variables.

◆ RSB_TRANSPOSITIONS_ARRAY_LENGTH

#define RSB_TRANSPOSITIONS_ARRAY_LENGTH   3 /* valid transpositions in RSB_ROWS_TRANSPOSITIONS_ARRAY */

◆ RSB_TYPE_INDEX_DOUBLE

#define RSB_TYPE_INDEX_DOUBLE   0

This preprocessor index can be used to address the double-related arrays.

◆ RSB_TYPE_INDEX_DOUBLE_COMPLEX

#define RSB_TYPE_INDEX_DOUBLE_COMPLEX   3

This preprocessor index can be used to address the double complex-related arrays.

◆ RSB_TYPE_INDEX_FLOAT

#define RSB_TYPE_INDEX_FLOAT   1

This preprocessor index can be used to address the float-related arrays.

◆ RSB_TYPE_INDEX_FLOAT_COMPLEX

#define RSB_TYPE_INDEX_FLOAT_COMPLEX   2

This preprocessor index can be used to address the float complex-related arrays.