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