ScaMaC  0.8.2
A Scalable Matrix Collection
scamac_defs.h
Go to the documentation of this file.
1 
8 #ifndef SCAMAC_DEFS_H
9 #define SCAMAC_DEFS_H
10 
11 // length of names in SCAMAC
12 #define SCAMAC_NAME_LENGTH 256
13 
14 // flags for scamac_info_t
15 typedef int ScamacFlag;
16 #define SCAMAC_NONE 0
17 
18 // valtype
19 typedef enum {
20  // undefined
21  SCAMAC_VAL_NONE,
22  // real = double
23  SCAMAC_VAL_REAL,
24  // complex = double complex
25  SCAMAC_VAL_COMPLEX
26 } ScamacValType;
27 
28 // symmetry
29 typedef enum {
30  SCAMAC_GENERAL=1,
31  SCAMAC_SYMMETRIC,
32  SCAMAC_HERMITIAN
33 } ScamacSymmetry;
34 
35 // flags for generate row
36 #define SCAMAC_DEFAULT 0
37 #define SCAMAC_TRANSPOSE (1U << 0)
38 #define SCAMAC_CONJUGATE (1U << 1)
39 #define SCAMAC_CONJUGATETRANSPOSE (SCAMAC_TRANSPOSE | SCAMAC_CONJUGATE)
40 #define SCAMAC_KEEPZEROS (1U << 2)
41 //#define SCAMAC_INT32 (1U << 3)
42 //#define SCAMAC_SINGLE (1U << 4)
43 
44 // parameter types
45 typedef enum {
46  SCAMAC_PAR_NONE=-1,
47  SCAMAC_PAR_INT=1,
48  SCAMAC_PAR_IDX,
49  SCAMAC_PAR_DOUBLE,
50  SCAMAC_PAR_BOOL,
51  SCAMAC_PAR_RNGSEED,
52  SCAMAC_PAR_OPTION
53 } ScamacPar;
54 
55 #endif /* SCAMAC_DEFS_H */