1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
/*
*
* This file is part of MUMPS 5.8.2, released
* on Mon Jan 12 15:17:08 UTC 2026
*
*
* Copyright 1991-2026 CERFACS, CNRS, ENS Lyon, INP Toulouse, Inria,
* Mumps Technologies, University of Bordeaux.
*
* This version of MUMPS is provided to you free of charge. It is
* released under the CeCILL-C license
* (see doc/CeCILL-C_V1-en.txt, doc/CeCILL-C_V1-fr.txt, and
* https://cecill.info/licences/Licence_CeCILL-C_V1-en.html)
*
*/
#ifndef MUMPS_C_TYPES_H
#define MUMPS_C_TYPES_H
#include <stdint.h>
/* mumps_int_def.h will define either MUMPS_INTSIZE32 (default)
or MUMPS_INTSIZE64 (if compilation is with -DINTSIZE64 to
match Fortran -i8 or equivalent option). This allows one to
test from an external code whether MUMPS_INT is 64bits or not */
#include "mumps_int_def.h"
#ifdef MUMPS_INTSIZE64
#define MUMPS_INT int64_t
#else
#define MUMPS_INT int
#endif
#define MUMPS_INT8 int64_t
#define SMUMPS_COMPLEX float
#define SMUMPS_REAL float
#define DMUMPS_COMPLEX double
#define DMUMPS_REAL double
/* Complex datatypes */
typedef struct {float r,i;} mumps_complex;
typedef struct {double r,i;} mumps_double_complex;
#define CMUMPS_COMPLEX mumps_complex
#define CMUMPS_REAL float
#define ZMUMPS_COMPLEX mumps_double_complex
#define ZMUMPS_REAL double
#ifndef mumps_ftnlen
/* When passing a string, what is the type of the extra argument
* passed by value ? */
# define mumps_ftnlen MUMPS_INT
#endif
#define MUMPS_ARITH_s 1
#define MUMPS_ARITH_d 2
#define MUMPS_ARITH_c 4
#define MUMPS_ARITH_z 8
#define MUMPS_ARITH_REAL ( MUMPS_ARITH_s | MUMPS_ARITH_d )
#define MUMPS_ARITH_CMPLX ( MUMPS_ARITH_c | MUMPS_ARITH_z )
#define MUMPS_ARITH_SINGLE ( MUMPS_ARITH_s | MUMPS_ARITH_c )
#define MUMPS_ARITH_DBL ( MUMPS_ARITH_d | MUMPS_ARITH_z )
#define MUMPS_OFF_T MUMPS_INT8
#endif /* MUMPS_C_TYPES_H */
|