VSF Documented
vsf_macro_calc.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Copyright(C)2009-2022 by VSF Team *
3 * *
4 * Licensed under the Apache License, Version 2.0 (the "License"); *
5 * you may not use this file except in compliance with the License. *
6 * You may obtain a copy of the License at *
7 * *
8 * http://www.apache.org/licenses/LICENSE-2.0 *
9 * *
10 * Unless required by applicable law or agreed to in writing, software *
11 * distributed under the License is distributed on an "AS IS" BASIS, *
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13 * See the License for the specific language governing permissions and *
14 * limitations under the License. *
15 * *
16 ****************************************************************************/
17
18#ifndef __VSF_MACRO_CALC_H__
19#define __VSF_MACRO_CALC_H__
20
21/*============================ INCLUDES ======================================*/
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27/*============================ MACROS ========================================*/
28
29#define VSF_MCAT2_PRIMITIVE(__X, ...) __X##__VA_ARGS__
30#define VSF_MCAT2(__X, ...) VSF_MCAT2_PRIMITIVE(__X, __VA_ARGS__)
31
32#define VSF_MINC_LIMIT 256
33#define VSF_MINC(__X) VSF_MCAT2_PRIMITIVE(__VSF_MINC_, __X)
34#define __VSF_MINC_0 1
35#define __VSF_MINC_1 2
36#define __VSF_MINC_2 3
37#define __VSF_MINC_3 4
38#define __VSF_MINC_4 5
39#define __VSF_MINC_5 6
40#define __VSF_MINC_6 7
41#define __VSF_MINC_7 8
42#define __VSF_MINC_8 9
43#define __VSF_MINC_9 10
44#define __VSF_MINC_10 11
45#define __VSF_MINC_11 12
46#define __VSF_MINC_12 13
47#define __VSF_MINC_13 14
48#define __VSF_MINC_14 15
49#define __VSF_MINC_15 16
50#define __VSF_MINC_16 17
51#define __VSF_MINC_17 18
52#define __VSF_MINC_18 19
53#define __VSF_MINC_19 20
54#define __VSF_MINC_20 21
55#define __VSF_MINC_21 22
56#define __VSF_MINC_22 23
57#define __VSF_MINC_23 24
58#define __VSF_MINC_24 25
59#define __VSF_MINC_25 26
60#define __VSF_MINC_26 27
61#define __VSF_MINC_27 28
62#define __VSF_MINC_28 29
63#define __VSF_MINC_29 30
64#define __VSF_MINC_30 31
65#define __VSF_MINC_31 32
66#define __VSF_MINC_32 33
67#define __VSF_MINC_33 34
68#define __VSF_MINC_34 35
69#define __VSF_MINC_35 36
70#define __VSF_MINC_36 37
71#define __VSF_MINC_37 38
72#define __VSF_MINC_38 39
73#define __VSF_MINC_39 40
74#define __VSF_MINC_40 41
75#define __VSF_MINC_41 42
76#define __VSF_MINC_42 43
77#define __VSF_MINC_43 44
78#define __VSF_MINC_44 45
79#define __VSF_MINC_45 46
80#define __VSF_MINC_46 47
81#define __VSF_MINC_47 48
82#define __VSF_MINC_48 49
83#define __VSF_MINC_49 50
84#define __VSF_MINC_50 51
85#define __VSF_MINC_51 52
86#define __VSF_MINC_52 53
87#define __VSF_MINC_53 54
88#define __VSF_MINC_54 55
89#define __VSF_MINC_55 56
90#define __VSF_MINC_56 57
91#define __VSF_MINC_57 58
92#define __VSF_MINC_58 59
93#define __VSF_MINC_59 60
94#define __VSF_MINC_60 61
95#define __VSF_MINC_61 62
96#define __VSF_MINC_62 63
97#define __VSF_MINC_63 64
98#define __VSF_MINC_64 65
99#define __VSF_MINC_65 66
100#define __VSF_MINC_66 67
101#define __VSF_MINC_67 68
102#define __VSF_MINC_68 69
103#define __VSF_MINC_69 70
104#define __VSF_MINC_70 71
105#define __VSF_MINC_71 72
106#define __VSF_MINC_72 73
107#define __VSF_MINC_73 74
108#define __VSF_MINC_74 75
109#define __VSF_MINC_75 76
110#define __VSF_MINC_76 77
111#define __VSF_MINC_77 78
112#define __VSF_MINC_78 79
113#define __VSF_MINC_79 80
114#define __VSF_MINC_80 81
115#define __VSF_MINC_81 82
116#define __VSF_MINC_82 83
117#define __VSF_MINC_83 84
118#define __VSF_MINC_84 85
119#define __VSF_MINC_85 86
120#define __VSF_MINC_86 87
121#define __VSF_MINC_87 88
122#define __VSF_MINC_88 89
123#define __VSF_MINC_89 90
124#define __VSF_MINC_90 91
125#define __VSF_MINC_91 92
126#define __VSF_MINC_92 93
127#define __VSF_MINC_93 94
128#define __VSF_MINC_94 95
129#define __VSF_MINC_95 96
130#define __VSF_MINC_96 97
131#define __VSF_MINC_97 98
132#define __VSF_MINC_98 99
133#define __VSF_MINC_99 100
134#define __VSF_MINC_100 101
135#define __VSF_MINC_101 102
136#define __VSF_MINC_102 103
137#define __VSF_MINC_103 104
138#define __VSF_MINC_104 105
139#define __VSF_MINC_105 106
140#define __VSF_MINC_106 107
141#define __VSF_MINC_107 108
142#define __VSF_MINC_108 109
143#define __VSF_MINC_109 110
144#define __VSF_MINC_110 111
145#define __VSF_MINC_111 112
146#define __VSF_MINC_112 113
147#define __VSF_MINC_113 114
148#define __VSF_MINC_114 115
149#define __VSF_MINC_115 116
150#define __VSF_MINC_116 117
151#define __VSF_MINC_117 118
152#define __VSF_MINC_118 119
153#define __VSF_MINC_119 120
154#define __VSF_MINC_120 121
155#define __VSF_MINC_121 122
156#define __VSF_MINC_122 123
157#define __VSF_MINC_123 124
158#define __VSF_MINC_124 125
159#define __VSF_MINC_125 126
160#define __VSF_MINC_126 127
161#define __VSF_MINC_127 128
162#define __VSF_MINC_128 129
163#define __VSF_MINC_129 130
164#define __VSF_MINC_130 131
165#define __VSF_MINC_131 132
166#define __VSF_MINC_132 133
167#define __VSF_MINC_133 134
168#define __VSF_MINC_134 135
169#define __VSF_MINC_135 136
170#define __VSF_MINC_136 137
171#define __VSF_MINC_137 138
172#define __VSF_MINC_138 139
173#define __VSF_MINC_139 140
174#define __VSF_MINC_140 141
175#define __VSF_MINC_141 142
176#define __VSF_MINC_142 143
177#define __VSF_MINC_143 144
178#define __VSF_MINC_144 145
179#define __VSF_MINC_145 146
180#define __VSF_MINC_146 147
181#define __VSF_MINC_147 148
182#define __VSF_MINC_148 149
183#define __VSF_MINC_149 150
184#define __VSF_MINC_150 151
185#define __VSF_MINC_151 152
186#define __VSF_MINC_152 153
187#define __VSF_MINC_153 154
188#define __VSF_MINC_154 155
189#define __VSF_MINC_155 156
190#define __VSF_MINC_156 157
191#define __VSF_MINC_157 158
192#define __VSF_MINC_158 159
193#define __VSF_MINC_159 160
194#define __VSF_MINC_160 161
195#define __VSF_MINC_161 162
196#define __VSF_MINC_162 163
197#define __VSF_MINC_163 164
198#define __VSF_MINC_164 165
199#define __VSF_MINC_165 166
200#define __VSF_MINC_166 167
201#define __VSF_MINC_167 168
202#define __VSF_MINC_168 169
203#define __VSF_MINC_169 170
204#define __VSF_MINC_170 171
205#define __VSF_MINC_171 172
206#define __VSF_MINC_172 173
207#define __VSF_MINC_173 174
208#define __VSF_MINC_174 175
209#define __VSF_MINC_175 176
210#define __VSF_MINC_176 177
211#define __VSF_MINC_177 178
212#define __VSF_MINC_178 179
213#define __VSF_MINC_179 180
214#define __VSF_MINC_180 181
215#define __VSF_MINC_181 182
216#define __VSF_MINC_182 183
217#define __VSF_MINC_183 184
218#define __VSF_MINC_184 185
219#define __VSF_MINC_185 186
220#define __VSF_MINC_186 187
221#define __VSF_MINC_187 188
222#define __VSF_MINC_188 189
223#define __VSF_MINC_189 190
224#define __VSF_MINC_190 191
225#define __VSF_MINC_191 192
226#define __VSF_MINC_192 193
227#define __VSF_MINC_193 194
228#define __VSF_MINC_194 195
229#define __VSF_MINC_195 196
230#define __VSF_MINC_196 197
231#define __VSF_MINC_197 198
232#define __VSF_MINC_198 199
233#define __VSF_MINC_199 200
234#define __VSF_MINC_200 201
235#define __VSF_MINC_201 202
236#define __VSF_MINC_202 203
237#define __VSF_MINC_203 204
238#define __VSF_MINC_204 205
239#define __VSF_MINC_205 206
240#define __VSF_MINC_206 207
241#define __VSF_MINC_207 208
242#define __VSF_MINC_208 209
243#define __VSF_MINC_209 210
244#define __VSF_MINC_210 211
245#define __VSF_MINC_211 212
246#define __VSF_MINC_212 213
247#define __VSF_MINC_213 214
248#define __VSF_MINC_214 215
249#define __VSF_MINC_215 216
250#define __VSF_MINC_216 217
251#define __VSF_MINC_217 218
252#define __VSF_MINC_218 219
253#define __VSF_MINC_219 220
254#define __VSF_MINC_220 221
255#define __VSF_MINC_221 222
256#define __VSF_MINC_222 223
257#define __VSF_MINC_223 224
258#define __VSF_MINC_224 225
259#define __VSF_MINC_225 226
260#define __VSF_MINC_226 227
261#define __VSF_MINC_227 228
262#define __VSF_MINC_228 229
263#define __VSF_MINC_229 230
264#define __VSF_MINC_230 231
265#define __VSF_MINC_231 232
266#define __VSF_MINC_232 233
267#define __VSF_MINC_233 234
268#define __VSF_MINC_234 235
269#define __VSF_MINC_235 236
270#define __VSF_MINC_236 237
271#define __VSF_MINC_237 238
272#define __VSF_MINC_238 239
273#define __VSF_MINC_239 240
274#define __VSF_MINC_240 241
275#define __VSF_MINC_241 242
276#define __VSF_MINC_242 243
277#define __VSF_MINC_243 244
278#define __VSF_MINC_244 245
279#define __VSF_MINC_245 246
280#define __VSF_MINC_246 247
281#define __VSF_MINC_247 248
282#define __VSF_MINC_248 249
283#define __VSF_MINC_249 250
284#define __VSF_MINC_250 251
285#define __VSF_MINC_251 252
286#define __VSF_MINC_252 253
287#define __VSF_MINC_253 254
288#define __VSF_MINC_254 255
289#define __VSF_MINC_255 256
290#define __VSF_MINC_256 257
291
292#define VSF_MDEC_LIMIT 256
293#define VSF_MDEC(__X) VSF_MCAT2_PRIMITIVE(__VSF_MDEC_, __X)
294#define __VSF_MDEC_0 0
295#define __VSF_MDEC_1 0
296#define __VSF_MDEC_2 1
297#define __VSF_MDEC_3 2
298#define __VSF_MDEC_4 3
299#define __VSF_MDEC_5 4
300#define __VSF_MDEC_6 5
301#define __VSF_MDEC_7 6
302#define __VSF_MDEC_8 7
303#define __VSF_MDEC_9 8
304#define __VSF_MDEC_10 9
305#define __VSF_MDEC_11 10
306#define __VSF_MDEC_12 11
307#define __VSF_MDEC_13 12
308#define __VSF_MDEC_14 13
309#define __VSF_MDEC_15 14
310#define __VSF_MDEC_16 15
311#define __VSF_MDEC_17 16
312#define __VSF_MDEC_18 17
313#define __VSF_MDEC_19 18
314#define __VSF_MDEC_20 19
315#define __VSF_MDEC_21 20
316#define __VSF_MDEC_22 21
317#define __VSF_MDEC_23 22
318#define __VSF_MDEC_24 23
319#define __VSF_MDEC_25 24
320#define __VSF_MDEC_26 25
321#define __VSF_MDEC_27 26
322#define __VSF_MDEC_28 27
323#define __VSF_MDEC_29 28
324#define __VSF_MDEC_30 29
325#define __VSF_MDEC_31 30
326#define __VSF_MDEC_32 31
327#define __VSF_MDEC_33 32
328#define __VSF_MDEC_34 33
329#define __VSF_MDEC_35 34
330#define __VSF_MDEC_36 35
331#define __VSF_MDEC_37 36
332#define __VSF_MDEC_38 37
333#define __VSF_MDEC_39 38
334#define __VSF_MDEC_40 39
335#define __VSF_MDEC_41 40
336#define __VSF_MDEC_42 41
337#define __VSF_MDEC_43 42
338#define __VSF_MDEC_44 43
339#define __VSF_MDEC_45 44
340#define __VSF_MDEC_46 45
341#define __VSF_MDEC_47 46
342#define __VSF_MDEC_48 47
343#define __VSF_MDEC_49 48
344#define __VSF_MDEC_50 49
345#define __VSF_MDEC_51 50
346#define __VSF_MDEC_52 51
347#define __VSF_MDEC_53 52
348#define __VSF_MDEC_54 53
349#define __VSF_MDEC_55 54
350#define __VSF_MDEC_56 55
351#define __VSF_MDEC_57 56
352#define __VSF_MDEC_58 57
353#define __VSF_MDEC_59 58
354#define __VSF_MDEC_60 59
355#define __VSF_MDEC_61 60
356#define __VSF_MDEC_62 61
357#define __VSF_MDEC_63 62
358#define __VSF_MDEC_64 63
359#define __VSF_MDEC_65 64
360#define __VSF_MDEC_66 65
361#define __VSF_MDEC_67 66
362#define __VSF_MDEC_68 67
363#define __VSF_MDEC_69 68
364#define __VSF_MDEC_70 69
365#define __VSF_MDEC_71 70
366#define __VSF_MDEC_72 71
367#define __VSF_MDEC_73 72
368#define __VSF_MDEC_74 73
369#define __VSF_MDEC_75 74
370#define __VSF_MDEC_76 75
371#define __VSF_MDEC_77 76
372#define __VSF_MDEC_78 77
373#define __VSF_MDEC_79 78
374#define __VSF_MDEC_80 79
375#define __VSF_MDEC_81 80
376#define __VSF_MDEC_82 81
377#define __VSF_MDEC_83 82
378#define __VSF_MDEC_84 83
379#define __VSF_MDEC_85 84
380#define __VSF_MDEC_86 85
381#define __VSF_MDEC_87 86
382#define __VSF_MDEC_88 87
383#define __VSF_MDEC_89 88
384#define __VSF_MDEC_90 89
385#define __VSF_MDEC_91 90
386#define __VSF_MDEC_92 91
387#define __VSF_MDEC_93 92
388#define __VSF_MDEC_94 93
389#define __VSF_MDEC_95 94
390#define __VSF_MDEC_96 95
391#define __VSF_MDEC_97 96
392#define __VSF_MDEC_98 97
393#define __VSF_MDEC_99 98
394#define __VSF_MDEC_100 99
395#define __VSF_MDEC_101 100
396#define __VSF_MDEC_102 101
397#define __VSF_MDEC_103 102
398#define __VSF_MDEC_104 103
399#define __VSF_MDEC_105 104
400#define __VSF_MDEC_106 105
401#define __VSF_MDEC_107 106
402#define __VSF_MDEC_108 107
403#define __VSF_MDEC_109 108
404#define __VSF_MDEC_110 109
405#define __VSF_MDEC_111 110
406#define __VSF_MDEC_112 111
407#define __VSF_MDEC_113 112
408#define __VSF_MDEC_114 113
409#define __VSF_MDEC_115 114
410#define __VSF_MDEC_116 115
411#define __VSF_MDEC_117 116
412#define __VSF_MDEC_118 117
413#define __VSF_MDEC_119 118
414#define __VSF_MDEC_120 119
415#define __VSF_MDEC_121 120
416#define __VSF_MDEC_122 121
417#define __VSF_MDEC_123 122
418#define __VSF_MDEC_124 123
419#define __VSF_MDEC_125 124
420#define __VSF_MDEC_126 125
421#define __VSF_MDEC_127 126
422#define __VSF_MDEC_128 127
423#define __VSF_MDEC_129 128
424#define __VSF_MDEC_130 129
425#define __VSF_MDEC_131 130
426#define __VSF_MDEC_132 131
427#define __VSF_MDEC_133 132
428#define __VSF_MDEC_134 133
429#define __VSF_MDEC_135 134
430#define __VSF_MDEC_136 135
431#define __VSF_MDEC_137 136
432#define __VSF_MDEC_138 137
433#define __VSF_MDEC_139 138
434#define __VSF_MDEC_140 139
435#define __VSF_MDEC_141 140
436#define __VSF_MDEC_142 141
437#define __VSF_MDEC_143 142
438#define __VSF_MDEC_144 143
439#define __VSF_MDEC_145 144
440#define __VSF_MDEC_146 145
441#define __VSF_MDEC_147 146
442#define __VSF_MDEC_148 147
443#define __VSF_MDEC_149 148
444#define __VSF_MDEC_150 149
445#define __VSF_MDEC_151 150
446#define __VSF_MDEC_152 151
447#define __VSF_MDEC_153 152
448#define __VSF_MDEC_154 153
449#define __VSF_MDEC_155 154
450#define __VSF_MDEC_156 155
451#define __VSF_MDEC_157 156
452#define __VSF_MDEC_158 157
453#define __VSF_MDEC_159 158
454#define __VSF_MDEC_160 159
455#define __VSF_MDEC_161 160
456#define __VSF_MDEC_162 161
457#define __VSF_MDEC_163 162
458#define __VSF_MDEC_164 163
459#define __VSF_MDEC_165 164
460#define __VSF_MDEC_166 165
461#define __VSF_MDEC_167 166
462#define __VSF_MDEC_168 167
463#define __VSF_MDEC_169 168
464#define __VSF_MDEC_170 169
465#define __VSF_MDEC_171 170
466#define __VSF_MDEC_172 171
467#define __VSF_MDEC_173 172
468#define __VSF_MDEC_174 173
469#define __VSF_MDEC_175 174
470#define __VSF_MDEC_176 175
471#define __VSF_MDEC_177 176
472#define __VSF_MDEC_178 177
473#define __VSF_MDEC_179 178
474#define __VSF_MDEC_180 179
475#define __VSF_MDEC_181 180
476#define __VSF_MDEC_182 181
477#define __VSF_MDEC_183 182
478#define __VSF_MDEC_184 183
479#define __VSF_MDEC_185 184
480#define __VSF_MDEC_186 185
481#define __VSF_MDEC_187 186
482#define __VSF_MDEC_188 187
483#define __VSF_MDEC_189 188
484#define __VSF_MDEC_190 189
485#define __VSF_MDEC_191 190
486#define __VSF_MDEC_192 191
487#define __VSF_MDEC_193 192
488#define __VSF_MDEC_194 193
489#define __VSF_MDEC_195 194
490#define __VSF_MDEC_196 195
491#define __VSF_MDEC_197 196
492#define __VSF_MDEC_198 197
493#define __VSF_MDEC_199 198
494#define __VSF_MDEC_200 199
495#define __VSF_MDEC_201 200
496#define __VSF_MDEC_202 201
497#define __VSF_MDEC_203 202
498#define __VSF_MDEC_204 203
499#define __VSF_MDEC_205 204
500#define __VSF_MDEC_206 205
501#define __VSF_MDEC_207 206
502#define __VSF_MDEC_208 207
503#define __VSF_MDEC_209 208
504#define __VSF_MDEC_210 209
505#define __VSF_MDEC_211 210
506#define __VSF_MDEC_212 211
507#define __VSF_MDEC_213 212
508#define __VSF_MDEC_214 213
509#define __VSF_MDEC_215 214
510#define __VSF_MDEC_216 215
511#define __VSF_MDEC_217 216
512#define __VSF_MDEC_218 217
513#define __VSF_MDEC_219 218
514#define __VSF_MDEC_220 219
515#define __VSF_MDEC_221 220
516#define __VSF_MDEC_222 221
517#define __VSF_MDEC_223 222
518#define __VSF_MDEC_224 223
519#define __VSF_MDEC_225 224
520#define __VSF_MDEC_226 225
521#define __VSF_MDEC_227 226
522#define __VSF_MDEC_228 227
523#define __VSF_MDEC_229 228
524#define __VSF_MDEC_230 229
525#define __VSF_MDEC_231 230
526#define __VSF_MDEC_232 231
527#define __VSF_MDEC_233 232
528#define __VSF_MDEC_234 233
529#define __VSF_MDEC_235 234
530#define __VSF_MDEC_236 235
531#define __VSF_MDEC_237 236
532#define __VSF_MDEC_238 237
533#define __VSF_MDEC_239 238
534#define __VSF_MDEC_240 239
535#define __VSF_MDEC_241 240
536#define __VSF_MDEC_242 241
537#define __VSF_MDEC_243 242
538#define __VSF_MDEC_244 243
539#define __VSF_MDEC_245 244
540#define __VSF_MDEC_246 245
541#define __VSF_MDEC_247 246
542#define __VSF_MDEC_248 247
543#define __VSF_MDEC_249 248
544#define __VSF_MDEC_250 249
545#define __VSF_MDEC_251 250
546#define __VSF_MDEC_252 251
547#define __VSF_MDEC_253 252
548#define __VSF_MDEC_254 253
549#define __VSF_MDEC_255 254
550#define __VSF_MDEC_256 255
551
552/*============================ MACROFIED FUNCTIONS ===========================*/
553/*============================ TYPES =========================================*/
554/*============================ GLOBAL VARIABLES ==============================*/
555/*============================ LOCAL VARIABLES ===============================*/
556/*============================ PROTOTYPES ====================================*/
557
558
559
560#ifdef __cplusplus
561}
562#endif
563
564#endif // __VSF_MACRO_CALC_H__
565/* EOF */