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