Nek5000
SEM for Incompressible NS
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
jl
types.h
Go to the documentation of this file.
1
#ifndef TYPES_H
2
#define TYPES_H
3
4
/*
5
Define the integer types used throughout the code,
6
controlled by preprocessor macros.
7
8
The integer type sint/uint (signed/unsigned) is used
9
most frequently, e.g., for indexing into local arrays,
10
and for processor ids. It can be one of
11
12
macro sint/uint type
13
14
(default) int
15
USE_LONG long
16
USE_LONG_LONG long long
17
18
The slong/ulong type is used in relatively few places
19
for global identifiers and indices. It can be one of
20
21
macro slong/ulong type
22
23
(default) int
24
GLOBAL_LONG long
25
GLOBAL_LONG_LONG long long
26
27
Since the long long type is not ISO C90, it is never
28
used unless explicitly asked for.
29
*/
30
31
#if defined(USE_LONG_LONG) || defined(GLOBAL_LONG_LONG)
32
typedef
long
long
long_long;
33
# define WHEN_LONG_LONG(x) x
34
# if !defined(LLONG_MAX)
35
# if defined(LONG_LONG_MAX)
36
# define LLONG_MAX LONG_LONG_MAX
37
# else
38
# define LLONG_MAX 9223372036854775807
39
# endif
40
# endif
41
# if !defined(LLONG_MIN)
42
# if defined(LONG_LONG_MIN)
43
# define LLONG_MIN LONG_LONG_MIN
44
# else
45
# define LLONG_MIN -9223372036854775807
46
# endif
47
# endif
48
#else
49
# define WHEN_LONG_LONG(x)
50
#endif
51
52
#if !defined(USE_LONG) && !defined(USE_LONG_LONG)
53
# define TYPE_LOCAL(i,l,ll) i
54
#elif defined(USE_LONG)
55
# define TYPE_LOCAL(i,l,ll) l
56
#elif defined(USE_LONG_LONG)
57
# define TYPE_LOCAL(i,l,ll) ll
58
#endif
59
60
#if !defined(GLOBAL_LONG) && !defined(GLOBAL_LONG_LONG)
61
# define TYPE_GLOBAL(i,l,ll) i
62
#elif defined(GLOBAL_LONG)
63
# define TYPE_GLOBAL(i,l,ll) l
64
#else
65
# define TYPE_GLOBAL(i,l,ll) ll
66
#endif
67
68
/* local integer type: for quantities O(N/P) */
69
#define sint signed TYPE_LOCAL(int,long,long long)
70
#define uint unsigned TYPE_LOCAL(int,long,long long)
71
#define iabs TYPE_LOCAL(abs,labs,llabs)
72
73
/* global integer type: for quantities O(N) */
74
#define slong signed TYPE_GLOBAL(int,long,long long)
75
#define ulong unsigned TYPE_GLOBAL(int,long,long long)
76
#define iabsl TYPE_GLOBAL(abs,labs,llabs)
77
78
#endif
79
Generated on Tue Jul 14 2015 10:52:58 for Nek5000 by
1.8.8