Added SILC Thread Queue API
[silc.git] / lib / silcmath / tma_class.h
1 #if !(defined(LTM1) && defined(LTM2) && defined(LTM3))
2 #if defined(LTM2)
3 #define LTM3
4 #endif
5 #if defined(LTM1)
6 #define LTM2
7 #endif
8 #define LTM1
9
10 #if defined(LTM_ALL)
11 #define BN_MP_DIV_SMALL              // -Pekka
12 #define BN_ERROR_C
13 #define BN_FAST_MP_INVMOD_C
14 #define BN_FAST_MP_MONTGOMERY_REDUCE_C
15 #define BN_FAST_S_MP_MUL_DIGS_C
16 #define BN_FAST_S_MP_MUL_HIGH_DIGS_C
17 #define BN_FAST_S_MP_SQR_C
18 #define BN_MP_2EXPT_C
19 #define BN_MP_ABS_C
20 #define BN_MP_ADD_C
21 #define BN_MP_ADD_D_C
22 #define BN_MP_ADDMOD_C
23 #define BN_MP_AND_C
24 #define BN_MP_CLAMP_C
25 #define BN_MP_CLEAR_C
26 #define BN_MP_CLEAR_MULTI_C
27 #define BN_MP_CMP_C
28 #define BN_MP_CMP_D_C
29 #define BN_MP_CMP_MAG_C
30 #define BN_MP_CNT_LSB_C
31 #define BN_MP_COPY_C
32 #define BN_MP_COUNT_BITS_C
33 #define BN_MP_DIV_C
34 #define BN_MP_DIV_2_C
35 #define BN_MP_DIV_2D_C
36 #define BN_MP_DIV_3_C
37 #define BN_MP_DIV_D_C
38 #define BN_MP_DR_IS_MODULUS_C
39 #define BN_MP_DR_REDUCE_C
40 #define BN_MP_DR_SETUP_C
41 #define BN_MP_EXCH_C
42 #define BN_MP_EXPT_D_C
43 #define BN_MP_EXPTMOD_C
44 #define BN_MP_EXPTMOD_FAST_C
45 #define BN_MP_EXTEUCLID_C
46 #define BN_MP_FREAD_C
47 #define BN_MP_FWRITE_C
48 #define BN_MP_GCD_C
49 #define BN_MP_GET_INT_C
50 #define BN_MP_GROW_C
51 #define BN_MP_INIT_C
52 #define BN_MP_INIT_COPY_C
53 #define BN_MP_INIT_MULTI_C
54 #define BN_MP_INIT_SET_C
55 #define BN_MP_INIT_SET_INT_C
56 #define BN_MP_INIT_SIZE_C
57 #define BN_MP_INVMOD_C
58 #define BN_MP_INVMOD_SLOW_C
59 #define BN_MP_IS_SQUARE_C
60 #define BN_MP_JACOBI_C
61 #define BN_MP_KARATSUBA_MUL_C
62 #define BN_MP_KARATSUBA_SQR_C
63 #define BN_MP_LCM_C
64 #define BN_MP_LSHD_C
65 #define BN_MP_MOD_C
66 #define BN_MP_MOD_2D_C
67 #define BN_MP_MOD_D_C
68 #define BN_MP_MONTGOMERY_CALC_NORMALIZATION_C
69 #define BN_MP_MONTGOMERY_REDUCE_C
70 #define BN_MP_MONTGOMERY_SETUP_C
71 #define BN_MP_MUL_C
72 #define BN_MP_MUL_2_C
73 #define BN_MP_MUL_2D_C
74 #define BN_MP_MUL_D_C
75 #define BN_MP_MULMOD_C
76 #define BN_MP_N_ROOT_C
77 #define BN_MP_NEG_C
78 #define BN_MP_OR_C
79 #define BN_MP_PRIME_FERMAT_C
80 #define BN_MP_PRIME_IS_DIVISIBLE_C
81 #define BN_MP_PRIME_IS_PRIME_C
82 #define BN_MP_PRIME_MILLER_RABIN_C
83 #define BN_MP_PRIME_NEXT_PRIME_C
84 #define BN_MP_PRIME_RABIN_MILLER_TRIALS_C
85 #define BN_MP_PRIME_RANDOM_EX_C
86 #define BN_MP_RADIX_SIZE_C
87 #define BN_MP_RADIX_SMAP_C
88 #define BN_MP_RAND_C
89 #define BN_MP_READ_RADIX_C
90 #define BN_MP_READ_SIGNED_BIN_C
91 #define BN_MP_READ_UNSIGNED_BIN_C
92 #define BN_MP_REDUCE_C
93 #define BN_MP_REDUCE_2K_C
94 #define BN_MP_REDUCE_2K_L_C
95 #define BN_MP_REDUCE_2K_SETUP_C
96 #define BN_MP_REDUCE_2K_SETUP_L_C
97 #define BN_MP_REDUCE_IS_2K_C
98 #define BN_MP_REDUCE_IS_2K_L_C
99 #define BN_MP_REDUCE_SETUP_C
100 #define BN_MP_RSHD_C
101 #define BN_MP_SET_C
102 #define BN_MP_SET_INT_C
103 #define BN_MP_SHRINK_C
104 #define BN_MP_SIGNED_BIN_SIZE_C
105 #define BN_MP_SQR_C
106 #define BN_MP_SQRMOD_C
107 #define BN_MP_SQRT_C
108 #define BN_MP_SUB_C
109 #define BN_MP_SUB_D_C
110 #define BN_MP_SUBMOD_C
111 #define BN_MP_TO_SIGNED_BIN_C
112 #define BN_MP_TO_SIGNED_BIN_N_C
113 #define BN_MP_TO_UNSIGNED_BIN_C
114 #define BN_MP_TO_UNSIGNED_BIN_N_C
115 #define BN_MP_TOOM_MUL_C
116 #define BN_MP_TOOM_SQR_C
117 #define BN_MP_TORADIX_C
118 #define BN_MP_TORADIX_N_C
119 #define BN_MP_UNSIGNED_BIN_SIZE_C
120 #define BN_MP_XOR_C
121 #define BN_MP_ZERO_C
122 #define BN_PRIME_TAB_C
123 #define BN_REVERSE_C
124 #define BN_S_MP_ADD_C
125 #define BN_S_MP_EXPTMOD_C
126 #define BN_S_MP_MUL_DIGS_C
127 #define BN_S_MP_MUL_HIGH_DIGS_C
128 #define BN_S_MP_SQR_C
129 #define BN_S_MP_SUB_C
130 #define BNCORE_C
131 #endif
132
133 #if defined(BN_ERROR_C)
134    #define BN_MP_ERROR_TO_STRING_C
135 #endif
136
137 #if defined(BN_FAST_MP_INVMOD_C)
138    #define BN_MP_ISEVEN_C
139    #define BN_MP_INIT_MULTI_C
140    #define BN_MP_COPY_C
141    #define BN_MP_MOD_C
142    #define BN_MP_SET_C
143    #define BN_MP_DIV_2_C
144    #define BN_MP_ISODD_C
145    #define BN_MP_SUB_C
146    #define BN_MP_CMP_C
147    #define BN_MP_ISZERO_C
148    #define BN_MP_CMP_D_C
149    #define BN_MP_ADD_C
150    #define BN_MP_EXCH_C
151    #define BN_MP_CLEAR_MULTI_C
152 #endif
153
154 #if defined(BN_FAST_MP_MONTGOMERY_REDUCE_C)
155    #define BN_MP_GROW_C
156    #define BN_MP_RSHD_C
157    #define BN_MP_CLAMP_C
158    #define BN_MP_CMP_MAG_C
159    #define BN_S_MP_SUB_C
160 #endif
161
162 #if defined(BN_FAST_S_MP_MUL_DIGS_C)
163    #define BN_MP_GROW_C
164    #define BN_MP_CLAMP_C
165 #endif
166
167 #if defined(BN_FAST_S_MP_MUL_HIGH_DIGS_C)
168    #define BN_MP_GROW_C
169    #define BN_MP_CLAMP_C
170 #endif
171
172 #if defined(BN_FAST_S_MP_SQR_C)
173    #define BN_MP_GROW_C
174    #define BN_MP_CLAMP_C
175 #endif
176
177 #if defined(BN_MP_2EXPT_C)
178    #define BN_MP_ZERO_C
179    #define BN_MP_GROW_C
180 #endif
181
182 #if defined(BN_MP_ABS_C)
183    #define BN_MP_COPY_C
184 #endif
185
186 #if defined(BN_MP_ADD_C)
187    #define BN_S_MP_ADD_C
188    #define BN_MP_CMP_MAG_C
189    #define BN_S_MP_SUB_C
190 #endif
191
192 #if defined(BN_MP_ADD_D_C)
193    #define BN_MP_GROW_C
194    #define BN_MP_SUB_D_C
195    #define BN_MP_CLAMP_C
196 #endif
197
198 #if defined(BN_MP_ADDMOD_C)
199    #define BN_MP_INIT_C
200    #define BN_MP_ADD_C
201    #define BN_MP_CLEAR_C
202    #define BN_MP_MOD_C
203 #endif
204
205 #if defined(BN_MP_AND_C)
206    #define BN_MP_INIT_COPY_C
207    #define BN_MP_CLAMP_C
208    #define BN_MP_EXCH_C
209    #define BN_MP_CLEAR_C
210 #endif
211
212 #if defined(BN_MP_CLAMP_C)
213 #endif
214
215 #if defined(BN_MP_CLEAR_C)
216 #endif
217
218 #if defined(BN_MP_CLEAR_MULTI_C)
219    #define BN_MP_CLEAR_C
220 #endif
221
222 #if defined(BN_MP_CMP_C)
223    #define BN_MP_CMP_MAG_C
224 #endif
225
226 #if defined(BN_MP_CMP_D_C)
227 #endif
228
229 #if defined(BN_MP_CMP_MAG_C)
230 #endif
231
232 #if defined(BN_MP_CNT_LSB_C)
233    #define BN_MP_ISZERO_C
234 #endif
235
236 #if defined(BN_MP_COPY_C)
237    #define BN_MP_GROW_C
238 #endif
239
240 #if defined(BN_MP_COUNT_BITS_C)
241 #endif
242
243 #if defined(BN_MP_DIV_C)
244    #define BN_MP_ISZERO_C
245    #define BN_MP_CMP_MAG_C
246    #define BN_MP_COPY_C
247    #define BN_MP_ZERO_C
248    #define BN_MP_INIT_MULTI_C
249    #define BN_MP_SET_C
250    #define BN_MP_COUNT_BITS_C
251    #define BN_MP_ABS_C
252    #define BN_MP_MUL_2D_C
253    #define BN_MP_CMP_C
254    #define BN_MP_SUB_C
255    #define BN_MP_ADD_C
256    #define BN_MP_DIV_2D_C
257    #define BN_MP_EXCH_C
258    #define BN_MP_CLEAR_MULTI_C
259    #define BN_MP_INIT_SIZE_C
260    #define BN_MP_INIT_C
261    #define BN_MP_INIT_COPY_C
262    #define BN_MP_LSHD_C
263    #define BN_MP_RSHD_C
264    #define BN_MP_MUL_D_C
265    #define BN_MP_CLAMP_C
266    #define BN_MP_CLEAR_C
267 #endif
268
269 #if defined(BN_MP_DIV_2_C)
270    #define BN_MP_GROW_C
271    #define BN_MP_CLAMP_C
272 #endif
273
274 #if defined(BN_MP_DIV_2D_C)
275    #define BN_MP_COPY_C
276    #define BN_MP_ZERO_C
277    #define BN_MP_INIT_C
278    #define BN_MP_MOD_2D_C
279    #define BN_MP_CLEAR_C
280    #define BN_MP_RSHD_C
281    #define BN_MP_CLAMP_C
282    #define BN_MP_EXCH_C
283 #endif
284
285 #if defined(BN_MP_DIV_3_C)
286    #define BN_MP_INIT_SIZE_C
287    #define BN_MP_CLAMP_C
288    #define BN_MP_EXCH_C
289    #define BN_MP_CLEAR_C
290 #endif
291
292 #if defined(BN_MP_DIV_D_C)
293    #define BN_MP_ISZERO_C
294    #define BN_MP_COPY_C
295    #define BN_MP_DIV_2D_C
296    #define BN_MP_DIV_3_C
297    #define BN_MP_INIT_SIZE_C
298    #define BN_MP_CLAMP_C
299    #define BN_MP_EXCH_C
300    #define BN_MP_CLEAR_C
301 #endif
302
303 #if defined(BN_MP_DR_IS_MODULUS_C)
304 #endif
305
306 #if defined(BN_MP_DR_REDUCE_C)
307    #define BN_MP_GROW_C
308    #define BN_MP_CLAMP_C
309    #define BN_MP_CMP_MAG_C
310    #define BN_S_MP_SUB_C
311 #endif
312
313 #if defined(BN_MP_DR_SETUP_C)
314 #endif
315
316 #if defined(BN_MP_EXCH_C)
317 #endif
318
319 #if defined(BN_MP_EXPT_D_C)
320    #define BN_MP_INIT_COPY_C
321    #define BN_MP_SET_C
322    #define BN_MP_SQR_C
323    #define BN_MP_CLEAR_C
324    #define BN_MP_MUL_C
325 #endif
326
327 #if defined(BN_MP_EXPTMOD_C)
328    #define BN_MP_INIT_C
329    #define BN_MP_INVMOD_C
330    #define BN_MP_CLEAR_C
331    #define BN_MP_ABS_C
332    #define BN_MP_CLEAR_MULTI_C
333    #define BN_MP_REDUCE_IS_2K_L_C
334    #define BN_S_MP_EXPTMOD_C
335    #define BN_MP_DR_IS_MODULUS_C
336    #define BN_MP_REDUCE_IS_2K_C
337    #define BN_MP_ISODD_C
338    #define BN_MP_EXPTMOD_FAST_C
339 #endif
340
341 #if defined(BN_MP_EXPTMOD_FAST_C)
342    #define BN_MP_COUNT_BITS_C
343    #define BN_MP_INIT_C
344    #define BN_MP_CLEAR_C
345    #define BN_MP_MONTGOMERY_SETUP_C
346    #define BN_FAST_MP_MONTGOMERY_REDUCE_C
347    #define BN_MP_MONTGOMERY_REDUCE_C
348    #define BN_MP_DR_SETUP_C
349    #define BN_MP_DR_REDUCE_C
350    #define BN_MP_REDUCE_2K_SETUP_C
351    #define BN_MP_REDUCE_2K_C
352    #define BN_MP_MONTGOMERY_CALC_NORMALIZATION_C
353    #define BN_MP_MULMOD_C
354    #define BN_MP_SET_C
355    #define BN_MP_MOD_C
356    #define BN_MP_COPY_C
357    #define BN_MP_SQR_C
358    #define BN_MP_MUL_C
359    #define BN_MP_EXCH_C
360 #endif
361
362 #if defined(BN_MP_EXTEUCLID_C)
363    #define BN_MP_INIT_MULTI_C
364    #define BN_MP_SET_C
365    #define BN_MP_COPY_C
366    #define BN_MP_ISZERO_C
367    #define BN_MP_DIV_C
368    #define BN_MP_MUL_C
369    #define BN_MP_SUB_C
370    #define BN_MP_NEG_C
371    #define BN_MP_EXCH_C
372    #define BN_MP_CLEAR_MULTI_C
373 #endif
374
375 #if defined(BN_MP_FREAD_C)
376    #define BN_MP_ZERO_C
377    #define BN_MP_S_RMAP_C
378    #define BN_MP_MUL_D_C
379    #define BN_MP_ADD_D_C
380    #define BN_MP_CMP_D_C
381 #endif
382
383 #if defined(BN_MP_FWRITE_C)
384    #define BN_MP_RADIX_SIZE_C
385    #define BN_MP_TORADIX_C
386 #endif
387
388 #if defined(BN_MP_GCD_C)
389    #define BN_MP_ISZERO_C
390    #define BN_MP_ABS_C
391    #define BN_MP_ZERO_C
392    #define BN_MP_INIT_COPY_C
393    #define BN_MP_CNT_LSB_C
394    #define BN_MP_DIV_2D_C
395    #define BN_MP_CMP_MAG_C
396    #define BN_MP_EXCH_C
397    #define BN_S_MP_SUB_C
398    #define BN_MP_MUL_2D_C
399    #define BN_MP_CLEAR_C
400 #endif
401
402 #if defined(BN_MP_GET_INT_C)
403 #endif
404
405 #if defined(BN_MP_GROW_C)
406 #endif
407
408 #if defined(BN_MP_INIT_C)
409 #endif
410
411 #if defined(BN_MP_INIT_COPY_C)
412    #define BN_MP_COPY_C
413 #endif
414
415 #if defined(BN_MP_INIT_MULTI_C)
416    #define BN_MP_ERR_C
417    #define BN_MP_INIT_C
418    #define BN_MP_CLEAR_C
419 #endif
420
421 #if defined(BN_MP_INIT_SET_C)
422    #define BN_MP_INIT_C
423    #define BN_MP_SET_C
424 #endif
425
426 #if defined(BN_MP_INIT_SET_INT_C)
427    #define BN_MP_INIT_C
428    #define BN_MP_SET_INT_C
429 #endif
430
431 #if defined(BN_MP_INIT_SIZE_C)
432    #define BN_MP_INIT_C
433 #endif
434
435 #if defined(BN_MP_INVMOD_C)
436    #define BN_MP_ISZERO_C
437    #define BN_MP_ISODD_C
438    #define BN_FAST_MP_INVMOD_C
439    #define BN_MP_INVMOD_SLOW_C
440 #endif
441
442 #if defined(BN_MP_INVMOD_SLOW_C)
443    #define BN_MP_ISZERO_C
444    #define BN_MP_INIT_MULTI_C
445    #define BN_MP_MOD_C
446    #define BN_MP_COPY_C
447    #define BN_MP_ISEVEN_C
448    #define BN_MP_SET_C
449    #define BN_MP_DIV_2_C
450    #define BN_MP_ISODD_C
451    #define BN_MP_ADD_C
452    #define BN_MP_SUB_C
453    #define BN_MP_CMP_C
454    #define BN_MP_CMP_D_C
455    #define BN_MP_CMP_MAG_C
456    #define BN_MP_EXCH_C
457    #define BN_MP_CLEAR_MULTI_C
458 #endif
459
460 #if defined(BN_MP_IS_SQUARE_C)
461    #define BN_MP_MOD_D_C
462    #define BN_MP_INIT_SET_INT_C
463    #define BN_MP_MOD_C
464    #define BN_MP_GET_INT_C
465    #define BN_MP_SQRT_C
466    #define BN_MP_SQR_C
467    #define BN_MP_CMP_MAG_C
468    #define BN_MP_CLEAR_C
469 #endif
470
471 #if defined(BN_MP_JACOBI_C)
472    #define BN_MP_CMP_D_C
473    #define BN_MP_ISZERO_C
474    #define BN_MP_INIT_COPY_C
475    #define BN_MP_CNT_LSB_C
476    #define BN_MP_DIV_2D_C
477    #define BN_MP_MOD_C
478    #define BN_MP_CLEAR_C
479 #endif
480
481 #if defined(BN_MP_KARATSUBA_MUL_C)
482    #define BN_MP_MUL_C
483    #define BN_MP_INIT_SIZE_C
484    #define BN_MP_CLAMP_C
485    #define BN_MP_SUB_C
486    #define BN_MP_ADD_C
487    #define BN_MP_LSHD_C
488    #define BN_MP_CLEAR_C
489 #endif
490
491 #if defined(BN_MP_KARATSUBA_SQR_C)
492    #define BN_MP_INIT_SIZE_C
493    #define BN_MP_CLAMP_C
494    #define BN_MP_SQR_C
495    #define BN_MP_SUB_C
496    #define BN_S_MP_ADD_C
497    #define BN_MP_LSHD_C
498    #define BN_MP_ADD_C
499    #define BN_MP_CLEAR_C
500 #endif
501
502 #if defined(BN_MP_LCM_C)
503    #define BN_MP_INIT_MULTI_C
504    #define BN_MP_GCD_C
505    #define BN_MP_CMP_MAG_C
506    #define BN_MP_DIV_C
507    #define BN_MP_MUL_C
508    #define BN_MP_CLEAR_MULTI_C
509 #endif
510
511 #if defined(BN_MP_LSHD_C)
512    #define BN_MP_GROW_C
513    #define BN_MP_RSHD_C
514 #endif
515
516 #if defined(BN_MP_MOD_C)
517    #define BN_MP_INIT_C
518    #define BN_MP_DIV_C
519    #define BN_MP_CLEAR_C
520    #define BN_MP_ADD_C
521    #define BN_MP_EXCH_C
522 #endif
523
524 #if defined(BN_MP_MOD_2D_C)
525    #define BN_MP_ZERO_C
526    #define BN_MP_COPY_C
527    #define BN_MP_CLAMP_C
528 #endif
529
530 #if defined(BN_MP_MOD_D_C)
531    #define BN_MP_DIV_D_C
532 #endif
533
534 #if defined(BN_MP_MONTGOMERY_CALC_NORMALIZATION_C)
535    #define BN_MP_COUNT_BITS_C
536    #define BN_MP_2EXPT_C
537    #define BN_MP_SET_C
538    #define BN_MP_MUL_2_C
539    #define BN_MP_CMP_MAG_C
540    #define BN_S_MP_SUB_C
541 #endif
542
543 #if defined(BN_MP_MONTGOMERY_REDUCE_C)
544    #define BN_FAST_MP_MONTGOMERY_REDUCE_C
545    #define BN_MP_GROW_C
546    #define BN_MP_CLAMP_C
547    #define BN_MP_RSHD_C
548    #define BN_MP_CMP_MAG_C
549    #define BN_S_MP_SUB_C
550 #endif
551
552 #if defined(BN_MP_MONTGOMERY_SETUP_C)
553 #endif
554
555 #if defined(BN_MP_MUL_C)
556    #define BN_MP_TOOM_MUL_C
557    #define BN_MP_KARATSUBA_MUL_C
558    #define BN_FAST_S_MP_MUL_DIGS_C
559    #define BN_S_MP_MUL_C
560    #define BN_S_MP_MUL_DIGS_C
561 #endif
562
563 #if defined(BN_MP_MUL_2_C)
564    #define BN_MP_GROW_C
565 #endif
566
567 #if defined(BN_MP_MUL_2D_C)
568    #define BN_MP_COPY_C
569    #define BN_MP_GROW_C
570    #define BN_MP_LSHD_C
571    #define BN_MP_CLAMP_C
572 #endif
573
574 #if defined(BN_MP_MUL_D_C)
575    #define BN_MP_GROW_C
576    #define BN_MP_CLAMP_C
577 #endif
578
579 #if defined(BN_MP_MULMOD_C)
580    #define BN_MP_INIT_C
581    #define BN_MP_MUL_C
582    #define BN_MP_CLEAR_C
583    #define BN_MP_MOD_C
584 #endif
585
586 #if defined(BN_MP_N_ROOT_C)
587    #define BN_MP_INIT_C
588    #define BN_MP_SET_C
589    #define BN_MP_COPY_C
590    #define BN_MP_EXPT_D_C
591    #define BN_MP_MUL_C
592    #define BN_MP_SUB_C
593    #define BN_MP_MUL_D_C
594    #define BN_MP_DIV_C
595    #define BN_MP_CMP_C
596    #define BN_MP_SUB_D_C
597    #define BN_MP_EXCH_C
598    #define BN_MP_CLEAR_C
599 #endif
600
601 #if defined(BN_MP_NEG_C)
602    #define BN_MP_COPY_C
603    #define BN_MP_ISZERO_C
604 #endif
605
606 #if defined(BN_MP_OR_C)
607    #define BN_MP_INIT_COPY_C
608    #define BN_MP_CLAMP_C
609    #define BN_MP_EXCH_C
610    #define BN_MP_CLEAR_C
611 #endif
612
613 #if defined(BN_MP_PRIME_FERMAT_C)
614    #define BN_MP_CMP_D_C
615    #define BN_MP_INIT_C
616    #define BN_MP_EXPTMOD_C
617    #define BN_MP_CMP_C
618    #define BN_MP_CLEAR_C
619 #endif
620
621 #if defined(BN_MP_PRIME_IS_DIVISIBLE_C)
622    #define BN_MP_MOD_D_C
623 #endif
624
625 #if defined(BN_MP_PRIME_IS_PRIME_C)
626    #define BN_MP_CMP_D_C
627    #define BN_MP_PRIME_IS_DIVISIBLE_C
628    #define BN_MP_INIT_C
629    #define BN_MP_SET_C
630    #define BN_MP_PRIME_MILLER_RABIN_C
631    #define BN_MP_CLEAR_C
632 #endif
633
634 #if defined(BN_MP_PRIME_MILLER_RABIN_C)
635    #define BN_MP_CMP_D_C
636    #define BN_MP_INIT_COPY_C
637    #define BN_MP_SUB_D_C
638    #define BN_MP_CNT_LSB_C
639    #define BN_MP_DIV_2D_C
640    #define BN_MP_EXPTMOD_C
641    #define BN_MP_CMP_C
642    #define BN_MP_SQRMOD_C
643    #define BN_MP_CLEAR_C
644 #endif
645
646 #if defined(BN_MP_PRIME_NEXT_PRIME_C)
647    #define BN_MP_CMP_D_C
648    #define BN_MP_SET_C
649    #define BN_MP_SUB_D_C
650    #define BN_MP_ISEVEN_C
651    #define BN_MP_MOD_D_C
652    #define BN_MP_INIT_C
653    #define BN_MP_ADD_D_C
654    #define BN_MP_PRIME_MILLER_RABIN_C
655    #define BN_MP_CLEAR_C
656 #endif
657
658 #if defined(BN_MP_PRIME_RABIN_MILLER_TRIALS_C)
659 #endif
660
661 #if defined(BN_MP_PRIME_RANDOM_EX_C)
662    #define BN_MP_READ_UNSIGNED_BIN_C
663    #define BN_MP_PRIME_IS_PRIME_C
664    #define BN_MP_SUB_D_C
665    #define BN_MP_DIV_2_C
666    #define BN_MP_MUL_2_C
667    #define BN_MP_ADD_D_C
668 #endif
669
670 #if defined(BN_MP_RADIX_SIZE_C)
671    #define BN_MP_COUNT_BITS_C
672    #define BN_MP_INIT_COPY_C
673    #define BN_MP_ISZERO_C
674    #define BN_MP_DIV_D_C
675    #define BN_MP_CLEAR_C
676 #endif
677
678 #if defined(BN_MP_RADIX_SMAP_C)
679    #define BN_MP_S_RMAP_C
680 #endif
681
682 #if defined(BN_MP_RAND_C)
683    #define BN_MP_ZERO_C
684    #define BN_MP_ADD_D_C
685    #define BN_MP_LSHD_C
686 #endif
687
688 #if defined(BN_MP_READ_RADIX_C)
689    #define BN_MP_ZERO_C
690    #define BN_MP_S_RMAP_C
691    #define BN_MP_RADIX_SMAP_C
692    #define BN_MP_MUL_D_C
693    #define BN_MP_ADD_D_C
694    #define BN_MP_ISZERO_C
695 #endif
696
697 #if defined(BN_MP_READ_SIGNED_BIN_C)
698    #define BN_MP_READ_UNSIGNED_BIN_C
699 #endif
700
701 #if defined(BN_MP_READ_UNSIGNED_BIN_C)
702    #define BN_MP_GROW_C
703    #define BN_MP_ZERO_C
704    #define BN_MP_MUL_2D_C
705    #define BN_MP_CLAMP_C
706 #endif
707
708 #if defined(BN_MP_REDUCE_C)
709    #define BN_MP_REDUCE_SETUP_C
710    #define BN_MP_INIT_COPY_C
711    #define BN_MP_RSHD_C
712    #define BN_MP_MUL_C
713    #define BN_S_MP_MUL_HIGH_DIGS_C
714    #define BN_FAST_S_MP_MUL_HIGH_DIGS_C
715    #define BN_MP_MOD_2D_C
716    #define BN_S_MP_MUL_DIGS_C
717    #define BN_MP_SUB_C
718    #define BN_MP_CMP_D_C
719    #define BN_MP_SET_C
720    #define BN_MP_LSHD_C
721    #define BN_MP_ADD_C
722    #define BN_MP_CMP_C
723    #define BN_S_MP_SUB_C
724    #define BN_MP_CLEAR_C
725 #endif
726
727 #if defined(BN_MP_REDUCE_2K_C)
728    #define BN_MP_INIT_C
729    #define BN_MP_COUNT_BITS_C
730    #define BN_MP_DIV_2D_C
731    #define BN_MP_MUL_D_C
732    #define BN_S_MP_ADD_C
733    #define BN_MP_CMP_MAG_C
734    #define BN_S_MP_SUB_C
735    #define BN_MP_CLEAR_C
736 #endif
737
738 #if defined(BN_MP_REDUCE_2K_L_C)
739    #define BN_MP_INIT_C
740    #define BN_MP_COUNT_BITS_C
741    #define BN_MP_DIV_2D_C
742    #define BN_MP_MUL_C
743    #define BN_S_MP_ADD_C
744    #define BN_MP_CMP_MAG_C
745    #define BN_S_MP_SUB_C
746    #define BN_MP_CLEAR_C
747 #endif
748
749 #if defined(BN_MP_REDUCE_2K_SETUP_C)
750    #define BN_MP_INIT_C
751    #define BN_MP_COUNT_BITS_C
752    #define BN_MP_2EXPT_C
753    #define BN_MP_CLEAR_C
754    #define BN_S_MP_SUB_C
755 #endif
756
757 #if defined(BN_MP_REDUCE_2K_SETUP_L_C)
758    #define BN_MP_INIT_C
759    #define BN_MP_2EXPT_C
760    #define BN_MP_COUNT_BITS_C
761    #define BN_S_MP_SUB_C
762    #define BN_MP_CLEAR_C
763 #endif
764
765 #if defined(BN_MP_REDUCE_IS_2K_C)
766    #define BN_MP_REDUCE_2K_C
767    #define BN_MP_COUNT_BITS_C
768 #endif
769
770 #if defined(BN_MP_REDUCE_IS_2K_L_C)
771 #endif
772
773 #if defined(BN_MP_REDUCE_SETUP_C)
774    #define BN_MP_2EXPT_C
775    #define BN_MP_DIV_C
776 #endif
777
778 #if defined(BN_MP_RSHD_C)
779    #define BN_MP_ZERO_C
780 #endif
781
782 #if defined(BN_MP_SET_C)
783    #define BN_MP_ZERO_C
784 #endif
785
786 #if defined(BN_MP_SET_INT_C)
787    #define BN_MP_ZERO_C
788    #define BN_MP_MUL_2D_C
789    #define BN_MP_CLAMP_C
790 #endif
791
792 #if defined(BN_MP_SHRINK_C)
793 #endif
794
795 #if defined(BN_MP_SIGNED_BIN_SIZE_C)
796    #define BN_MP_UNSIGNED_BIN_SIZE_C
797 #endif
798
799 #if defined(BN_MP_SQR_C)
800    #define BN_MP_TOOM_SQR_C
801    #define BN_MP_KARATSUBA_SQR_C
802    #define BN_FAST_S_MP_SQR_C
803    #define BN_S_MP_SQR_C
804 #endif
805
806 #if defined(BN_MP_SQRMOD_C)
807    #define BN_MP_INIT_C
808    #define BN_MP_SQR_C
809    #define BN_MP_CLEAR_C
810    #define BN_MP_MOD_C
811 #endif
812
813 #if defined(BN_MP_SQRT_C)
814    #define BN_MP_N_ROOT_C
815    #define BN_MP_ISZERO_C
816    #define BN_MP_ZERO_C
817    #define BN_MP_INIT_COPY_C
818    #define BN_MP_RSHD_C
819    #define BN_MP_DIV_C
820    #define BN_MP_ADD_C
821    #define BN_MP_DIV_2_C
822    #define BN_MP_CMP_MAG_C
823    #define BN_MP_EXCH_C
824    #define BN_MP_CLEAR_C
825 #endif
826
827 #if defined(BN_MP_SUB_C)
828    #define BN_S_MP_ADD_C
829    #define BN_MP_CMP_MAG_C
830    #define BN_S_MP_SUB_C
831 #endif
832
833 #if defined(BN_MP_SUB_D_C)
834    #define BN_MP_GROW_C
835    #define BN_MP_ADD_D_C
836    #define BN_MP_CLAMP_C
837 #endif
838
839 #if defined(BN_MP_SUBMOD_C)
840    #define BN_MP_INIT_C
841    #define BN_MP_SUB_C
842    #define BN_MP_CLEAR_C
843    #define BN_MP_MOD_C
844 #endif
845
846 #if defined(BN_MP_TO_SIGNED_BIN_C)
847    #define BN_MP_TO_UNSIGNED_BIN_C
848 #endif
849
850 #if defined(BN_MP_TO_SIGNED_BIN_N_C)
851    #define BN_MP_SIGNED_BIN_SIZE_C
852    #define BN_MP_TO_SIGNED_BIN_C
853 #endif
854
855 #if defined(BN_MP_TO_UNSIGNED_BIN_C)
856    #define BN_MP_INIT_COPY_C
857    #define BN_MP_ISZERO_C
858    #define BN_MP_DIV_2D_C
859    #define BN_MP_CLEAR_C
860 #endif
861
862 #if defined(BN_MP_TO_UNSIGNED_BIN_N_C)
863    #define BN_MP_UNSIGNED_BIN_SIZE_C
864    #define BN_MP_TO_UNSIGNED_BIN_C
865 #endif
866
867 #if defined(BN_MP_TOOM_MUL_C)
868    #define BN_MP_INIT_MULTI_C
869    #define BN_MP_MOD_2D_C
870    #define BN_MP_COPY_C
871    #define BN_MP_RSHD_C
872    #define BN_MP_MUL_C
873    #define BN_MP_MUL_2_C
874    #define BN_MP_ADD_C
875    #define BN_MP_SUB_C
876    #define BN_MP_DIV_2_C
877    #define BN_MP_MUL_2D_C
878    #define BN_MP_MUL_D_C
879    #define BN_MP_DIV_3_C
880    #define BN_MP_LSHD_C
881    #define BN_MP_CLEAR_MULTI_C
882 #endif
883
884 #if defined(BN_MP_TOOM_SQR_C)
885    #define BN_MP_INIT_MULTI_C
886    #define BN_MP_MOD_2D_C
887    #define BN_MP_COPY_C
888    #define BN_MP_RSHD_C
889    #define BN_MP_SQR_C
890    #define BN_MP_MUL_2_C
891    #define BN_MP_ADD_C
892    #define BN_MP_SUB_C
893    #define BN_MP_DIV_2_C
894    #define BN_MP_MUL_2D_C
895    #define BN_MP_MUL_D_C
896    #define BN_MP_DIV_3_C
897    #define BN_MP_LSHD_C
898    #define BN_MP_CLEAR_MULTI_C
899 #endif
900
901 #if defined(BN_MP_TORADIX_C)
902    #define BN_MP_ISZERO_C
903    #define BN_MP_INIT_COPY_C
904    #define BN_MP_DIV_D_C
905    #define BN_MP_CLEAR_C
906    #define BN_MP_S_RMAP_C
907 #endif
908
909 #if defined(BN_MP_TORADIX_N_C)
910    #define BN_MP_ISZERO_C
911    #define BN_MP_INIT_COPY_C
912    #define BN_MP_DIV_D_C
913    #define BN_MP_CLEAR_C
914    #define BN_MP_S_RMAP_C
915 #endif
916
917 #if defined(BN_MP_UNSIGNED_BIN_SIZE_C)
918    #define BN_MP_COUNT_BITS_C
919 #endif
920
921 #if defined(BN_MP_XOR_C)
922    #define BN_MP_INIT_COPY_C
923    #define BN_MP_CLAMP_C
924    #define BN_MP_EXCH_C
925    #define BN_MP_CLEAR_C
926 #endif
927
928 #if defined(BN_MP_ZERO_C)
929 #endif
930
931 #if defined(BN_PRIME_TAB_C)
932 #endif
933
934 #if defined(BN_REVERSE_C)
935 #endif
936
937 #if defined(BN_S_MP_ADD_C)
938    #define BN_MP_GROW_C
939    #define BN_MP_CLAMP_C
940 #endif
941
942 #if defined(BN_S_MP_EXPTMOD_C)
943    #define BN_MP_COUNT_BITS_C
944    #define BN_MP_INIT_C
945    #define BN_MP_CLEAR_C
946    #define BN_MP_REDUCE_SETUP_C
947    #define BN_MP_REDUCE_C
948    #define BN_MP_REDUCE_2K_SETUP_L_C
949    #define BN_MP_REDUCE_2K_L_C
950    #define BN_MP_MOD_C
951    #define BN_MP_COPY_C
952    #define BN_MP_SQR_C
953    #define BN_MP_MUL_C
954    #define BN_MP_SET_C
955    #define BN_MP_EXCH_C
956 #endif
957
958 #if defined(BN_S_MP_MUL_DIGS_C)
959    #define BN_FAST_S_MP_MUL_DIGS_C
960    #define BN_MP_INIT_SIZE_C
961    #define BN_MP_CLAMP_C
962    #define BN_MP_EXCH_C
963    #define BN_MP_CLEAR_C
964 #endif
965
966 #if defined(BN_S_MP_MUL_HIGH_DIGS_C)
967    #define BN_FAST_S_MP_MUL_HIGH_DIGS_C
968    #define BN_MP_INIT_SIZE_C
969    #define BN_MP_CLAMP_C
970    #define BN_MP_EXCH_C
971    #define BN_MP_CLEAR_C
972 #endif
973
974 #if defined(BN_S_MP_SQR_C)
975    #define BN_MP_INIT_SIZE_C
976    #define BN_MP_CLAMP_C
977    #define BN_MP_EXCH_C
978    #define BN_MP_CLEAR_C
979 #endif
980
981 #if defined(BN_S_MP_SUB_C)
982    #define BN_MP_GROW_C
983    #define BN_MP_CLAMP_C
984 #endif
985
986 #if defined(BNCORE_C)
987 #endif
988
989 #ifdef LTM3
990 #define LTM_LAST
991 #endif
992 #include "tma_superclass.h"
993 #include "tma_class.h"
994 #else
995 #define LTM_LAST
996 #endif
997
998 /* $Source$ */
999 /* $Revision$ */
1000 /* $Date$ */