Amesos Package Browser (Single Doxygen Collection)
Development
src
SuiteSparse
CHOLMOD
Include
amesos_cholmod_template.h
Go to the documentation of this file.
1
/* ========================================================================== */
2
/* === Include/cholmod_template.h =========================================== */
3
/* ========================================================================== */
4
5
/* -------------------------------------------------------------------------- */
6
/* undefine current xtype macros, and then define macros for current type */
7
/* -------------------------------------------------------------------------- */
8
9
#undef TEMPLATE
10
#undef XTYPE
11
#undef XTYPE2
12
#undef XTYPE_OK
13
#undef ENTRY_IS_NONZERO
14
#undef ENTRY_IS_ZERO
15
#undef ENTRY_IS_ONE
16
#undef IMAG_IS_NONZERO
17
18
#undef ASSEMBLE
19
#undef ASSIGN
20
#undef ASSIGN_CONJ
21
#undef ASSIGN2
22
#undef ASSIGN2_CONJ
23
#undef ASSIGN_REAL
24
#undef MULT
25
#undef MULTADD
26
#undef ADD
27
#undef ADD_REAL
28
#undef MULTSUB
29
#undef MULTADDCONJ
30
#undef MULTSUBCONJ
31
#undef LLDOT
32
#undef CLEAR
33
#undef DIV
34
#undef DIV_REAL
35
#undef MULT_REAL
36
#undef CLEAR_IMAG
37
#undef LDLDOT
38
#undef PREFIX
39
40
#undef ENTRY_SIZE
41
42
#undef XPRINT0
43
#undef XPRINT1
44
#undef XPRINT2
45
#undef XPRINT3
46
47
/* -------------------------------------------------------------------------- */
48
/* pattern */
49
/* -------------------------------------------------------------------------- */
50
51
52
#ifdef PATTERN
53
54
#define PREFIX amesos_p_
55
#define TEMPLATE(name) P_TEMPLATE(name)
56
#define XTYPE CHOLMOD_PATTERN
57
#define XTYPE2 CHOLMOD_REAL
58
#define XTYPE_OK(type) (TRUE)
59
#define ENTRY_IS_NONZERO(ax,az,q) (TRUE)
60
#define ENTRY_IS_ZERO(ax,az,q) (FALSE)
61
#define ENTRY_IS_ONE(ax,az,q) (TRUE)
62
#define IMAG_IS_NONZERO(ax,az,q) (FALSE)
63
#define ENTRY_SIZE 0
64
65
#define ASSEMBLE(x,z,p,ax,az,q)
66
#define ASSIGN(x,z,p,ax,az,q)
67
#define ASSIGN_CONJ(x,z,p,ax,az,q)
68
#define ASSIGN2(x,z,p,ax,az,q) P_ASSIGN2(x,z,p,ax,az,q)
69
#define ASSIGN2_CONJ(x,z,p,ax,az,q) P_ASSIGN2(x,z,p,ax,az,q)
70
#define ASSIGN_REAL(x,p,ax,q)
71
#define MULT(x,z,p,ax,az,q,bx,bz,pb)
72
#define MULTADD(x,z,p,ax,az,q,bx,bz,pb)
73
#define ADD(x,z,p,ax,az,q,bx,bz,pb)
74
#define ADD_REAL(x,p, ax,q, bx,r)
75
#define MULTSUB(x,z,p,ax,az,q,bx,bz,pb)
76
#define MULTADDCONJ(x,z,p,ax,az,q,bx,bz,pb)
77
#define MULTSUBCONJ(x,z,p,ax,az,q,bx,bz,pb)
78
#define LLDOT(x,p,ax,az,q)
79
#define CLEAR(x,z,p)
80
#define CLEAR_IMAG(x,z,p)
81
#define DIV(x,z,p,ax,az,q)
82
#define DIV_REAL(x,z,p, ax,az,q, bx,r)
83
#define MULT_REAL(x,z,p, ax,az,q, bx,r)
84
#define LDLDOT(x,p, ax,az,q, bx,r)
85
86
#define XPRINT0(x,z,p) P_PRINT(0,x,z,p)
87
#define XPRINT1(x,z,p) P_PRINT(1,x,z,p)
88
#define XPRINT2(x,z,p) P_PRINT(2,x,z,p)
89
#define XPRINT3(x,z,p) P_PRINT(3,x,z,p)
90
91
/* -------------------------------------------------------------------------- */
92
/* real */
93
/* -------------------------------------------------------------------------- */
94
95
#elif defined (REAL)
96
97
#define PREFIX amesos_r_
98
#define TEMPLATE(name) R_TEMPLATE(name)
99
#define XTYPE CHOLMOD_REAL
100
#define XTYPE2 CHOLMOD_REAL
101
#define XTYPE_OK(type) R_XTYPE_OK(type)
102
#define ENTRY_IS_NONZERO(ax,az,q) R_IS_NONZERO(ax,az,q)
103
#define ENTRY_IS_ZERO(ax,az,q) R_IS_ZERO(ax,az,q)
104
#define ENTRY_IS_ONE(ax,az,q) R_IS_ONE(ax,az,q)
105
#define IMAG_IS_NONZERO(ax,az,q) (FALSE)
106
#define ENTRY_SIZE 1
107
108
#define ASSEMBLE(x,z,p,ax,az,q) R_ASSEMBLE(x,z,p,ax,az,q)
109
#define ASSIGN(x,z,p,ax,az,q) R_ASSIGN(x,z,p,ax,az,q)
110
#define ASSIGN_CONJ(x,z,p,ax,az,q) R_ASSIGN(x,z,p,ax,az,q)
111
#define ASSIGN2(x,z,p,ax,az,q) R_ASSIGN(x,z,p,ax,az,q)
112
#define ASSIGN2_CONJ(x,z,p,ax,az,q) R_ASSIGN(x,z,p,ax,az,q)
113
#define ASSIGN_REAL(x,p,ax,q) R_ASSIGN_REAL(x,p,ax,q)
114
#define MULT(x,z,p,ax,az,q,bx,bz,pb) R_MULT(x,z,p,ax,az,q,bx,bz,pb)
115
#define MULTADD(x,z,p,ax,az,q,bx,bz,pb) R_MULTADD(x,z,p,ax,az,q,bx,bz,pb)
116
#define ADD(x,z,p,ax,az,q,bx,bz,pb) R_ADD(x,z,p,ax,az,q,bx,bz,pb)
117
#define ADD_REAL(x,p, ax,q, bx,r) R_ADD_REAL(x,p, ax,q, bx,r)
118
#define MULTSUB(x,z,p,ax,az,q,bx,bz,pb) R_MULTSUB(x,z,p,ax,az,q,bx,bz,pb)
119
#define MULTADDCONJ(x,z,p,ax,az,q,bx,bz,pb) \
120
R_MULTADDCONJ(x,z,p,ax,az,q,bx,bz,pb)
121
#define MULTSUBCONJ(x,z,p,ax,az,q,bx,bz,pb) \
122
R_MULTSUBCONJ(x,z,p,ax,az,q,bx,bz,pb)
123
#define LLDOT(x,p,ax,az,q) R_LLDOT(x,p,ax,az,q)
124
#define CLEAR(x,z,p) R_CLEAR(x,z,p)
125
#define CLEAR_IMAG(x,z,p) R_CLEAR_IMAG(x,z,p)
126
#define DIV(x,z,p,ax,az,q) R_DIV(x,z,p,ax,az,q)
127
#define DIV_REAL(x,z,p, ax,az,q, bx,r) R_DIV_REAL(x,z,p, ax,az,q, bx,r)
128
#define MULT_REAL(x,z,p, ax,az,q, bx,r) R_MULT_REAL(x,z,p, ax,az,q, bx,r)
129
#define LDLDOT(x,p, ax,az,q, bx,r) R_LDLDOT(x,p, ax,az,q, bx,r)
130
131
#define XPRINT0(x,z,p) R_PRINT(0,x,z,p)
132
#define XPRINT1(x,z,p) R_PRINT(1,x,z,p)
133
#define XPRINT2(x,z,p) R_PRINT(2,x,z,p)
134
#define XPRINT3(x,z,p) R_PRINT(3,x,z,p)
135
136
/* -------------------------------------------------------------------------- */
137
/* complex */
138
/* -------------------------------------------------------------------------- */
139
140
#elif defined (COMPLEX)
141
142
#define PREFIX amesos_c_
143
144
#ifdef NCONJUGATE
145
#define TEMPLATE(name) CT_TEMPLATE(name)
146
#else
147
#define TEMPLATE(name) C_TEMPLATE(name)
148
#endif
149
150
#define ASSEMBLE(x,z,p,ax,az,q) C_ASSEMBLE(x,z,p,ax,az,q)
151
#define ASSIGN(x,z,p,ax,az,q) C_ASSIGN(x,z,p,ax,az,q)
152
#define ASSIGN_CONJ(x,z,p,ax,az,q) C_ASSIGN_CONJ(x,z,p,ax,az,q)
153
#define ASSIGN2(x,z,p,ax,az,q) C_ASSIGN(x,z,p,ax,az,q)
154
#define ASSIGN2_CONJ(x,z,p,ax,az,q) C_ASSIGN_CONJ(x,z,p,ax,az,q)
155
#define ASSIGN_REAL(x,p,ax,q) C_ASSIGN_REAL(x,p,ax,q)
156
#define XTYPE CHOLMOD_COMPLEX
157
#define XTYPE2 CHOLMOD_COMPLEX
158
#define XTYPE_OK(type) C_XTYPE_OK(type)
159
#define ENTRY_IS_NONZERO(ax,az,q) C_IS_NONZERO(ax,az,q)
160
#define ENTRY_IS_ZERO(ax,az,q) C_IS_ZERO(ax,az,q)
161
#define ENTRY_IS_ONE(ax,az,q) C_IS_ONE(ax,az,q)
162
#define IMAG_IS_NONZERO(ax,az,q) C_IMAG_IS_NONZERO(ax,az,q)
163
#define ENTRY_SIZE 2
164
165
#define MULTADD(x,z,p,ax,az,q,bx,bz,pb) C_MULTADD(x,z,p,ax,az,q,bx,bz,pb)
166
#define MULT(x,z,p,ax,az,q,bx,bz,pb) C_MULT(x,z,p,ax,az,q,bx,bz,pb)
167
#define ADD(x,z,p,ax,az,q,bx,bz,pb) C_ADD(x,z,p,ax,az,q,bx,bz,pb)
168
#define ADD_REAL(x,p, ax,q, bx,r) C_ADD_REAL(x,p, ax,q, bx,r)
169
#define MULTSUB(x,z,p,ax,az,q,bx,bz,pb) C_MULTSUB(x,z,p,ax,az,q,bx,bz,pb)
170
#define MULTADDCONJ(x,z,p,ax,az,q,bx,bz,pb) \
171
C_MULTADDCONJ(x,z,p,ax,az,q,bx,bz,pb)
172
#define MULTSUBCONJ(x,z,p,ax,az,q,bx,bz,pb) \
173
C_MULTSUBCONJ(x,z,p,ax,az,q,bx,bz,pb)
174
#define LLDOT(x,p,ax,az,q) C_LLDOT(x,p,ax,az,q)
175
#define CLEAR(x,z,p) C_CLEAR(x,z,p)
176
#define CLEAR_IMAG(x,z,p) C_CLEAR_IMAG(x,z,p)
177
#define DIV(x,z,p,ax,az,q) C_DIV(x,z,p,ax,az,q)
178
#define DIV_REAL(x,z,p, ax,az,q, bx,r) C_DIV_REAL(x,z,p, ax,az,q, bx,r)
179
#define MULT_REAL(x,z,p, ax,az,q, bx,r) C_MULT_REAL(x,z,p, ax,az,q, bx,r)
180
#define LDLDOT(x,p, ax,az,q, bx,r) C_LDLDOT(x,p, ax,az,q, bx,r)
181
182
#define XPRINT0(x,z,p) C_PRINT(0,x,z,p)
183
#define XPRINT1(x,z,p) C_PRINT(1,x,z,p)
184
#define XPRINT2(x,z,p) C_PRINT(2,x,z,p)
185
#define XPRINT3(x,z,p) C_PRINT(3,x,z,p)
186
187
/* -------------------------------------------------------------------------- */
188
/* zomplex */
189
/* -------------------------------------------------------------------------- */
190
191
#elif defined (ZOMPLEX)
192
193
#define PREFIX amesos_z_
194
195
#ifdef NCONJUGATE
196
#define TEMPLATE(name) ZT_TEMPLATE(name)
197
#else
198
#define TEMPLATE(name) Z_TEMPLATE(name)
199
#endif
200
201
#define ASSEMBLE(x,z,p,ax,az,q) Z_ASSEMBLE(x,z,p,ax,az,q)
202
#define ASSIGN(x,z,p,ax,az,q) Z_ASSIGN(x,z,p,ax,az,q)
203
#define ASSIGN_CONJ(x,z,p,ax,az,q) Z_ASSIGN_CONJ(x,z,p,ax,az,q)
204
#define ASSIGN2(x,z,p,ax,az,q) Z_ASSIGN(x,z,p,ax,az,q)
205
#define ASSIGN2_CONJ(x,z,p,ax,az,q) Z_ASSIGN_CONJ(x,z,p,ax,az,q)
206
#define ASSIGN_REAL(x,p,ax,q) Z_ASSIGN_REAL(x,p,ax,q)
207
#define XTYPE CHOLMOD_ZOMPLEX
208
#define XTYPE2 CHOLMOD_ZOMPLEX
209
#define XTYPE_OK(type) Z_XTYPE_OK(type)
210
#define ENTRY_IS_NONZERO(ax,az,q) Z_IS_NONZERO(ax,az,q)
211
#define ENTRY_IS_ZERO(ax,az,q) Z_IS_ZERO(ax,az,q)
212
#define ENTRY_IS_ONE(ax,az,q) Z_IS_ONE(ax,az,q)
213
#define IMAG_IS_NONZERO(ax,az,q) Z_IMAG_IS_NONZERO(ax,az,q)
214
#define ENTRY_SIZE 1
215
216
#define MULTADD(x,z,p,ax,az,q,bx,bz,pb) Z_MULTADD(x,z,p,ax,az,q,bx,bz,pb)
217
#define MULT(x,z,p,ax,az,q,bx,bz,pb) Z_MULT(x,z,p,ax,az,q,bx,bz,pb)
218
#define ADD(x,z,p,ax,az,q,bx,bz,pb) Z_ADD(x,z,p,ax,az,q,bx,bz,pb)
219
#define ADD_REAL(x,p, ax,q, bx,r) Z_ADD_REAL(x,p, ax,q, bx,r)
220
#define MULTSUB(x,z,p,ax,az,q,bx,bz,pb) Z_MULTSUB(x,z,p,ax,az,q,bx,bz,pb)
221
#define MULTADDCONJ(x,z,p,ax,az,q,bx,bz,pb) \
222
Z_MULTADDCONJ(x,z,p,ax,az,q,bx,bz,pb)
223
#define MULTSUBCONJ(x,z,p,ax,az,q,bx,bz,pb) \
224
Z_MULTSUBCONJ(x,z,p,ax,az,q,bx,bz,pb)
225
#define LLDOT(x,p,ax,az,q) Z_LLDOT(x,p,ax,az,q)
226
#define CLEAR(x,z,p) Z_CLEAR(x,z,p)
227
#define CLEAR_IMAG(x,z,p) Z_CLEAR_IMAG(x,z,p)
228
#define DIV(x,z,p,ax,az,q) Z_DIV(x,z,p,ax,az,q)
229
#define DIV_REAL(x,z,p, ax,az,q, bx,r) Z_DIV_REAL(x,z,p, ax,az,q, bx,r)
230
#define MULT_REAL(x,z,p, ax,az,q, bx,r) Z_MULT_REAL(x,z,p, ax,az,q, bx,r)
231
#define LDLDOT(x,p, ax,az,q, bx,r) Z_LDLDOT(x,p, ax,az,q, bx,r)
232
233
#define XPRINT0(x,z,p) Z_PRINT(0,x,z,p)
234
#define XPRINT1(x,z,p) Z_PRINT(1,x,z,p)
235
#define XPRINT2(x,z,p) Z_PRINT(2,x,z,p)
236
#define XPRINT3(x,z,p) Z_PRINT(3,x,z,p)
237
238
#endif
Generated by
1.8.14