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.
#define | RSB_HEADER_VERSION_STRING "librsb version 1.3.0.3 - 202603311409"
| Library header version string.
#define | RSB_LIBRSB_VER_MAJOR 1
| Major version.
#define | RSB_LIBRSB_VER_MINOR 3
| Minor version.
#define | RSB_LIBRSB_VER_PATCH 0
| Patch version.
#define | RSB_LIBRSB_VER 10300
| Version number.
#define | RSB_LIBRSB_VER_DATE 202603311409
| Version release date.
#define | RSB_HAVE_TYPE_DOUBLE 1
| Type double is supported, so RSB_HAVE_TYPE_DOUBLE is defined .
#define | RSB_HAVE_TYPE_FLOAT 1
| Type float is supported, so RSB_HAVE_TYPE_FLOAT is defined .
#define | RSB_HAVE_TYPE_FLOAT_COMPLEX 1
| Type float complex is supported, so RSB_HAVE_TYPE_FLOAT_COMPLEX is defined .
#define | RSB_HAVE_TYPE_DOUBLE_COMPLEX 1
| Type double complex is supported, so RSB_HAVE_TYPE_DOUBLE_COMPLEX is defined .
#define | RSB_DEFAULT_TYPE double
| The default numerical matrix type (can be used for declarations), used in the example programs.
#define | RSB_DEFAULT_POSSIBLY_INTEGER_TYPE doubl
| The default, integer if possible , numerical type (can be used for declarations).
#define | RSB_DEFAULT_POSSIBLY_FIRST_BLAS_TYPE float
| The default, blas if possible , numerical type (can be used for declarations).
#define | RSB_DEFAULT_TYPE_STRING "double"
| A string specifying the name of the default type.
#define | RSB_DEFAULT_POSSIBLY_INTEGER_TYPE_STRING "double"
| A string specifying the name of the default possibly integer type.
#define | RSB_DEFAULT_SYMMETRY RSB_SYMMETRY_U
| The default symmetry flag.
#define | RSB_DEFAULT_TRANSPOSITION RSB_TRANSPOSITION_N
| The default transposition flag (no transposition).
#define | RSB_HAVE_ANY_COMPLEX_TYPE 1
| Defined to 1 if any complex type has been configured in. Currently: (float complex,double complex).
#define | RSB_ROWS_TRANSPOSITIONS_ARRAY {RSB_TRANSPOSITION_N, RSB_TRANSPOSITION_T, RSB_TRANSPOSITION_C, RSB_TRANSPOSITION_INVALID}
| An array with transposition constants.
#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.
#define | RSB_TRANSPOSITION_T 0x54
| T: Transposed flag value, valid for rsb_trans_t valued variables.
#define | RSB_TRANSPOSITION_C 0x43
| C: Conjugated transpose flag, valid for rsb_trans_t typed variables.
#define | RSB_TRANSPOSITION_INVALID 0x3F
| ?: Transposition type flag value guaranteed to be invalid. Useful for tests. Valid as char.
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)
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
#define | RSB_NUMERICAL_TYPE_DOUBLE 'D'
| Character code for type double. See rsb_type_t .
#define | RSB_NUMERICAL_TYPE_SAME_TYPE 1
| a bogus type flag for specifying no type conversion
#define | RSB_NUMERICAL_TYPE_FLOAT 'S'
| Character code for type float. See rsb_type_t .
#define | RSB_NUMERICAL_TYPE_SAME_TYPE 1
| a bogus type flag for specifying no type conversion
#define | RSB_NUMERICAL_TYPE_FLOAT_COMPLEX 'C'
| Character code for type float complex. See rsb_type_t .
#define | RSB_NUMERICAL_TYPE_SAME_TYPE 1
| a bogus type flag for specifying no type conversion
#define | RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX 'Z'
| Character code for type double complex. See rsb_type_t .
#define | RSB_NUMERICAL_TYPE_FORTRAN_SAME_TYPE 1
| a bogus type flag for specifying no type conversion
#define | RSB_NUMERICAL_TYPE_FORTRAN_INT ICHAR('I')
| Character code for type int, to be used (only) from Fortran.
#define | RSB_NUMERICAL_TYPE_FORTRAN_DOUBLE ICHAR('D')
| Character code for type double, to be used (only) from Fortran.
#define | RSB_NUMERICAL_TYPE_FORTRAN_FLOAT ICHAR('S')
| Character code for type float, to be used (only) from Fortran.
#define | RSB_NUMERICAL_TYPE_FORTRAN_FLOAT_COMPLEX ICHAR('C')
| Character code for type float complex, to be used (only) from Fortran.
#define | RSB_NUMERICAL_TYPE_FORTRAN_DOUBLE_COMPLEX ICHAR('Z')
| Character code for type double complex, to be used (only) from Fortran.
#define | RSB_NUMERICAL_TYPE_DEFAULT RSB_NUMERICAL_TYPE_DOUBLE
| A default numerical matrix type.
#define | RSB_NUMERICAL_TYPE_DEFAULT_INTEGER RSB_NUMERICAL_TYPE_DOUBLE
| A default numerical matrix type; if possible, an integer one.
#define | RSB_NUMERICAL_TYPE_INVALID_TYPE '?'
| By definition, an invalid type code.
#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.
#define | RSB_CHAR_AS_TRANSPOSITION(TRANSC)
| Get the right transposition flag out of either n, c, t chars.
Miscellaneous constants.
#define | RSB_CONST_MAX_TUNING_ROUNDS 16
| Maximal count of tuning rounds in one invocation of (rsb_tune_spmm/rsb_tune_spsm).

## 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) : \
'?' \
)
RSB_TRANSPOSITION_T
#define RSB_TRANSPOSITION_T
T: Transposed flag value, valid for rsb_trans_t valued variables.
Definition rsb_types.h:139
RSB_TRANSPOSITION_N
#define RSB_TRANSPOSITION_N
N: Non transposed flag, valid for rsb_trans_t typed variables.
Definition rsb_types.h:138
RSB_TRANSPOSITION_C
#define RSB_TRANSPOSITION_C
C: Conjugated transpose flag, valid for rsb_trans_t typed variables.
Definition rsb_types.h:140

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 doubl

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.3 - 202603311409"

Library header version string.

## RSB_LIBRSB_VER

#define RSB_LIBRSB_VER 10300

Version number.

## RSB_LIBRSB_VER_DATE

#define RSB_LIBRSB_VER_DATE 202603311409

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

#define RSB_ROWS_TRANSPOSITIONS_ARRAY {RSB_TRANSPOSITION_N, RSB_TRANSPOSITION_T, RSB_TRANSPOSITION_C, RSB_TRANSPOSITION_INVALID}

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.