Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/tcl8.5.2/generic/tclTomMathDecls.h @ 63

Last change on this file since 63 was 25, checked in by landauf, 16 years ago

added tcl to libs

File size: 23.8 KB
Line 
1/*
2 *----------------------------------------------------------------------
3 *
4 * tclTomMathDecls.h --
5 *
6 *      This file contains the declarations for the 'libtommath'
7 *      functions that are exported by the Tcl library.
8 *
9 * Copyright (c) 2005 by Kevin B. Kenny.  All rights reserved.
10 *
11 * See the file "license.terms" for information on usage and redistribution
12 * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
13 *
14 * RCS: @(#) $Id: tclTomMathDecls.h,v 1.2 2006/11/15 14:58:27 dgp Exp $
15 */
16
17#ifndef _TCLTOMMATHDECLS
18#define _TCLTOMMATHDECLS
19
20#include "tcl.h"
21
22/*
23 * Define the version of the Stubs table that's exported for tommath
24 */
25
26#define TCLTOMMATH_EPOCH 0
27#define TCLTOMMATH_REVISION 0
28
29#define Tcl_TomMath_InitStubs(interp,version) \
30    (TclTomMathInitializeStubs((interp),(version),\
31                               TCLTOMMATH_EPOCH,TCLTOMMATH_REVISION))
32
33/* Define custom memory allocation for libtommath */
34
35/* MODULE_SCOPE void* TclBNAlloc( size_t ); */
36#define TclBNAlloc(s) ((void*)ckalloc((size_t)(s)))
37/* MODULE_SCOPE void* TclBNRealloc( void*, size_t ); */
38#define TclBNRealloc(x,s) ((void*)ckrealloc((char*)(x),(size_t)(s)))
39/* MODULE_SCOPE void  TclBNFree( void* ); */
40#define TclBNFree(x) (ckfree((char*)(x)))
41/* MODULE_SCOPE void* TclBNCalloc( size_t, size_t ); */
42/* unused - no macro */
43
44#define XMALLOC(x) TclBNAlloc(x)
45#define XFREE(x) TclBNFree(x)
46#define XREALLOC(x,n) TclBNRealloc(x,n)
47#define XCALLOC(n,x) TclBNCalloc(n,x)
48
49/* Rename the global symbols in libtommath to avoid linkage conflicts */
50
51#define KARATSUBA_MUL_CUTOFF TclBNKaratsubaMulCutoff
52#define KARATSUBA_SQR_CUTOFF TclBNKaratsubaSqrCutoff
53#define TOOM_MUL_CUTOFF TclBNToomMulCutoff
54#define TOOM_SQR_CUTOFF TclBNToomSqrCutoff
55
56#define bn_reverse TclBN_reverse
57#define fast_s_mp_mul_digs TclBN_fast_s_mp_mul_digs
58#define fast_s_mp_sqr TclBN_fast_s_mp_sqr
59#define mp_add TclBN_mp_add
60#define mp_add_d TclBN_mp_add_d
61#define mp_and TclBN_mp_and
62#define mp_clamp TclBN_mp_clamp
63#define mp_clear TclBN_mp_clear
64#define mp_clear_multi TclBN_mp_clear_multi
65#define mp_cmp TclBN_mp_cmp
66#define mp_cmp_d TclBN_mp_cmp_d
67#define mp_cmp_mag TclBN_mp_cmp_mag
68#define mp_copy TclBN_mp_copy
69#define mp_count_bits TclBN_mp_count_bits
70#define mp_div TclBN_mp_div
71#define mp_div_2 TclBN_mp_div_2
72#define mp_div_2d TclBN_mp_div_2d
73#define mp_div_3 TclBN_mp_div_3
74#define mp_div_d TclBN_mp_div_d
75#define mp_exch TclBN_mp_exch
76#define mp_expt_d TclBN_mp_expt_d
77#define mp_grow TclBN_mp_grow
78#define mp_init TclBN_mp_init
79#define mp_init_copy TclBN_mp_init_copy
80#define mp_init_multi TclBN_mp_init_multi
81#define mp_init_set TclBN_mp_init_set
82#define mp_init_size TclBN_mp_init_size
83#define mp_karatsuba_mul TclBN_mp_karatsuba_mul
84#define mp_karatsuba_sqr TclBN_mp_karatsuba_sqr
85#define mp_lshd TclBN_mp_lshd
86#define mp_mod TclBN_mp_mod
87#define mp_mod_2d TclBN_mp_mod_2d
88#define mp_mul TclBN_mp_mul
89#define mp_mul_2 TclBN_mp_mul_2
90#define mp_mul_2d TclBN_mp_mul_2d
91#define mp_mul_d TclBN_mp_mul_d
92#define mp_neg TclBN_mp_neg
93#define mp_or TclBN_mp_or
94#define mp_radix_size TclBN_mp_radix_size
95#define mp_read_radix TclBN_mp_read_radix
96#define mp_rshd TclBN_mp_rshd
97#define mp_s_rmap TclBNMpSRmap
98#define mp_set TclBN_mp_set
99#define mp_shrink TclBN_mp_shrink
100#define mp_sqr TclBN_mp_sqr
101#define mp_sqrt TclBN_mp_sqrt
102#define mp_sub TclBN_mp_sub
103#define mp_sub_d TclBN_mp_sub_d
104#define mp_to_unsigned_bin TclBN_mp_to_unsigned_bin
105#define mp_to_unsigned_bin_n TclBN_mp_to_unsigned_bin_n
106#define mp_toom_mul TclBN_mp_toom_mul
107#define mp_toom_sqr TclBN_mp_toom_sqr
108#define mp_toradix_n TclBN_mp_toradix_n
109#define mp_unsigned_bin_size TclBN_mp_unsigned_bin_size
110#define mp_xor TclBN_mp_xor
111#define mp_zero TclBN_mp_zero
112#define s_mp_add TclBN_s_mp_add
113#define s_mp_mul_digs TclBN_s_mp_mul_digs
114#define s_mp_sqr TclBN_s_mp_sqr
115#define s_mp_sub TclBN_s_mp_sub
116
117#undef TCL_STORAGE_CLASS
118#ifdef BUILD_tcl
119#   define TCL_STORAGE_CLASS DLLEXPORT
120#else
121#   ifdef USE_TCL_STUBS
122#      define TCL_STORAGE_CLASS
123#   else
124#      define TCL_STORAGE_CLASS DLLIMPORT
125#   endif
126#endif
127
128/*
129 * WARNING: This file is automatically generated by the tools/genStubs.tcl
130 * script.  Any modifications to the function declarations below should be made
131 * in the generic/tclInt.decls script.
132 */
133
134/* !BEGIN!: Do not edit below this line. */
135
136/*
137 * Exported function declarations:
138 */
139
140#ifndef TclBN_epoch_TCL_DECLARED
141#define TclBN_epoch_TCL_DECLARED
142/* 0 */
143EXTERN int              TclBN_epoch (void);
144#endif
145#ifndef TclBN_revision_TCL_DECLARED
146#define TclBN_revision_TCL_DECLARED
147/* 1 */
148EXTERN int              TclBN_revision (void);
149#endif
150#ifndef TclBN_mp_add_TCL_DECLARED
151#define TclBN_mp_add_TCL_DECLARED
152/* 2 */
153EXTERN int              TclBN_mp_add (mp_int* a, mp_int* b, mp_int* c);
154#endif
155#ifndef TclBN_mp_add_d_TCL_DECLARED
156#define TclBN_mp_add_d_TCL_DECLARED
157/* 3 */
158EXTERN int              TclBN_mp_add_d (mp_int* a, mp_digit b, mp_int* c);
159#endif
160#ifndef TclBN_mp_and_TCL_DECLARED
161#define TclBN_mp_and_TCL_DECLARED
162/* 4 */
163EXTERN int              TclBN_mp_and (mp_int* a, mp_int* b, mp_int* c);
164#endif
165#ifndef TclBN_mp_clamp_TCL_DECLARED
166#define TclBN_mp_clamp_TCL_DECLARED
167/* 5 */
168EXTERN void             TclBN_mp_clamp (mp_int* a);
169#endif
170#ifndef TclBN_mp_clear_TCL_DECLARED
171#define TclBN_mp_clear_TCL_DECLARED
172/* 6 */
173EXTERN void             TclBN_mp_clear (mp_int* a);
174#endif
175#ifndef TclBN_mp_clear_multi_TCL_DECLARED
176#define TclBN_mp_clear_multi_TCL_DECLARED
177/* 7 */
178EXTERN void             TclBN_mp_clear_multi (mp_int* a, ...);
179#endif
180#ifndef TclBN_mp_cmp_TCL_DECLARED
181#define TclBN_mp_cmp_TCL_DECLARED
182/* 8 */
183EXTERN int              TclBN_mp_cmp (mp_int* a, mp_int* b);
184#endif
185#ifndef TclBN_mp_cmp_d_TCL_DECLARED
186#define TclBN_mp_cmp_d_TCL_DECLARED
187/* 9 */
188EXTERN int              TclBN_mp_cmp_d (mp_int* a, mp_digit b);
189#endif
190#ifndef TclBN_mp_cmp_mag_TCL_DECLARED
191#define TclBN_mp_cmp_mag_TCL_DECLARED
192/* 10 */
193EXTERN int              TclBN_mp_cmp_mag (mp_int* a, mp_int* b);
194#endif
195#ifndef TclBN_mp_copy_TCL_DECLARED
196#define TclBN_mp_copy_TCL_DECLARED
197/* 11 */
198EXTERN int              TclBN_mp_copy (mp_int* a, mp_int* b);
199#endif
200#ifndef TclBN_mp_count_bits_TCL_DECLARED
201#define TclBN_mp_count_bits_TCL_DECLARED
202/* 12 */
203EXTERN int              TclBN_mp_count_bits (mp_int* a);
204#endif
205#ifndef TclBN_mp_div_TCL_DECLARED
206#define TclBN_mp_div_TCL_DECLARED
207/* 13 */
208EXTERN int              TclBN_mp_div (mp_int* a, mp_int* b, mp_int* q, 
209                                mp_int* r);
210#endif
211#ifndef TclBN_mp_div_d_TCL_DECLARED
212#define TclBN_mp_div_d_TCL_DECLARED
213/* 14 */
214EXTERN int              TclBN_mp_div_d (mp_int* a, mp_digit b, mp_int* q, 
215                                mp_digit* r);
216#endif
217#ifndef TclBN_mp_div_2_TCL_DECLARED
218#define TclBN_mp_div_2_TCL_DECLARED
219/* 15 */
220EXTERN int              TclBN_mp_div_2 (mp_int* a, mp_int* q);
221#endif
222#ifndef TclBN_mp_div_2d_TCL_DECLARED
223#define TclBN_mp_div_2d_TCL_DECLARED
224/* 16 */
225EXTERN int              TclBN_mp_div_2d (mp_int* a, int b, mp_int* q, 
226                                mp_int* r);
227#endif
228#ifndef TclBN_mp_div_3_TCL_DECLARED
229#define TclBN_mp_div_3_TCL_DECLARED
230/* 17 */
231EXTERN int              TclBN_mp_div_3 (mp_int* a, mp_int* q, mp_digit* r);
232#endif
233#ifndef TclBN_mp_exch_TCL_DECLARED
234#define TclBN_mp_exch_TCL_DECLARED
235/* 18 */
236EXTERN void             TclBN_mp_exch (mp_int* a, mp_int* b);
237#endif
238#ifndef TclBN_mp_expt_d_TCL_DECLARED
239#define TclBN_mp_expt_d_TCL_DECLARED
240/* 19 */
241EXTERN int              TclBN_mp_expt_d (mp_int* a, mp_digit b, mp_int* c);
242#endif
243#ifndef TclBN_mp_grow_TCL_DECLARED
244#define TclBN_mp_grow_TCL_DECLARED
245/* 20 */
246EXTERN int              TclBN_mp_grow (mp_int* a, int size);
247#endif
248#ifndef TclBN_mp_init_TCL_DECLARED
249#define TclBN_mp_init_TCL_DECLARED
250/* 21 */
251EXTERN int              TclBN_mp_init (mp_int* a);
252#endif
253#ifndef TclBN_mp_init_copy_TCL_DECLARED
254#define TclBN_mp_init_copy_TCL_DECLARED
255/* 22 */
256EXTERN int              TclBN_mp_init_copy (mp_int * a, mp_int* b);
257#endif
258#ifndef TclBN_mp_init_multi_TCL_DECLARED
259#define TclBN_mp_init_multi_TCL_DECLARED
260/* 23 */
261EXTERN int              TclBN_mp_init_multi (mp_int* a, ...);
262#endif
263#ifndef TclBN_mp_init_set_TCL_DECLARED
264#define TclBN_mp_init_set_TCL_DECLARED
265/* 24 */
266EXTERN int              TclBN_mp_init_set (mp_int* a, mp_digit b);
267#endif
268#ifndef TclBN_mp_init_size_TCL_DECLARED
269#define TclBN_mp_init_size_TCL_DECLARED
270/* 25 */
271EXTERN int              TclBN_mp_init_size (mp_int* a, int size);
272#endif
273#ifndef TclBN_mp_lshd_TCL_DECLARED
274#define TclBN_mp_lshd_TCL_DECLARED
275/* 26 */
276EXTERN int              TclBN_mp_lshd (mp_int* a, int shift);
277#endif
278#ifndef TclBN_mp_mod_TCL_DECLARED
279#define TclBN_mp_mod_TCL_DECLARED
280/* 27 */
281EXTERN int              TclBN_mp_mod (mp_int* a, mp_int* b, mp_int* r);
282#endif
283#ifndef TclBN_mp_mod_2d_TCL_DECLARED
284#define TclBN_mp_mod_2d_TCL_DECLARED
285/* 28 */
286EXTERN int              TclBN_mp_mod_2d (mp_int* a, int b, mp_int* r);
287#endif
288#ifndef TclBN_mp_mul_TCL_DECLARED
289#define TclBN_mp_mul_TCL_DECLARED
290/* 29 */
291EXTERN int              TclBN_mp_mul (mp_int* a, mp_int* b, mp_int* p);
292#endif
293#ifndef TclBN_mp_mul_d_TCL_DECLARED
294#define TclBN_mp_mul_d_TCL_DECLARED
295/* 30 */
296EXTERN int              TclBN_mp_mul_d (mp_int* a, mp_digit b, mp_int* p);
297#endif
298#ifndef TclBN_mp_mul_2_TCL_DECLARED
299#define TclBN_mp_mul_2_TCL_DECLARED
300/* 31 */
301EXTERN int              TclBN_mp_mul_2 (mp_int* a, mp_int* p);
302#endif
303#ifndef TclBN_mp_mul_2d_TCL_DECLARED
304#define TclBN_mp_mul_2d_TCL_DECLARED
305/* 32 */
306EXTERN int              TclBN_mp_mul_2d (mp_int* a, int d, mp_int* p);
307#endif
308#ifndef TclBN_mp_neg_TCL_DECLARED
309#define TclBN_mp_neg_TCL_DECLARED
310/* 33 */
311EXTERN int              TclBN_mp_neg (mp_int* a, mp_int* b);
312#endif
313#ifndef TclBN_mp_or_TCL_DECLARED
314#define TclBN_mp_or_TCL_DECLARED
315/* 34 */
316EXTERN int              TclBN_mp_or (mp_int* a, mp_int* b, mp_int* c);
317#endif
318#ifndef TclBN_mp_radix_size_TCL_DECLARED
319#define TclBN_mp_radix_size_TCL_DECLARED
320/* 35 */
321EXTERN int              TclBN_mp_radix_size (mp_int* a, int radix, int* size);
322#endif
323#ifndef TclBN_mp_read_radix_TCL_DECLARED
324#define TclBN_mp_read_radix_TCL_DECLARED
325/* 36 */
326EXTERN int              TclBN_mp_read_radix (mp_int* a, const char* str, 
327                                int radix);
328#endif
329#ifndef TclBN_mp_rshd_TCL_DECLARED
330#define TclBN_mp_rshd_TCL_DECLARED
331/* 37 */
332EXTERN void             TclBN_mp_rshd (mp_int * a, int shift);
333#endif
334#ifndef TclBN_mp_shrink_TCL_DECLARED
335#define TclBN_mp_shrink_TCL_DECLARED
336/* 38 */
337EXTERN int              TclBN_mp_shrink (mp_int* a);
338#endif
339#ifndef TclBN_mp_set_TCL_DECLARED
340#define TclBN_mp_set_TCL_DECLARED
341/* 39 */
342EXTERN void             TclBN_mp_set (mp_int* a, mp_digit b);
343#endif
344#ifndef TclBN_mp_sqr_TCL_DECLARED
345#define TclBN_mp_sqr_TCL_DECLARED
346/* 40 */
347EXTERN int              TclBN_mp_sqr (mp_int* a, mp_int* b);
348#endif
349#ifndef TclBN_mp_sqrt_TCL_DECLARED
350#define TclBN_mp_sqrt_TCL_DECLARED
351/* 41 */
352EXTERN int              TclBN_mp_sqrt (mp_int* a, mp_int* b);
353#endif
354#ifndef TclBN_mp_sub_TCL_DECLARED
355#define TclBN_mp_sub_TCL_DECLARED
356/* 42 */
357EXTERN int              TclBN_mp_sub (mp_int* a, mp_int* b, mp_int* c);
358#endif
359#ifndef TclBN_mp_sub_d_TCL_DECLARED
360#define TclBN_mp_sub_d_TCL_DECLARED
361/* 43 */
362EXTERN int              TclBN_mp_sub_d (mp_int* a, mp_digit b, mp_int* c);
363#endif
364#ifndef TclBN_mp_to_unsigned_bin_TCL_DECLARED
365#define TclBN_mp_to_unsigned_bin_TCL_DECLARED
366/* 44 */
367EXTERN int              TclBN_mp_to_unsigned_bin (mp_int* a, 
368                                unsigned char* b);
369#endif
370#ifndef TclBN_mp_to_unsigned_bin_n_TCL_DECLARED
371#define TclBN_mp_to_unsigned_bin_n_TCL_DECLARED
372/* 45 */
373EXTERN int              TclBN_mp_to_unsigned_bin_n (mp_int* a, 
374                                unsigned char* b, unsigned long* outlen);
375#endif
376#ifndef TclBN_mp_toradix_n_TCL_DECLARED
377#define TclBN_mp_toradix_n_TCL_DECLARED
378/* 46 */
379EXTERN int              TclBN_mp_toradix_n (mp_int* a, char* str, int radix, 
380                                int maxlen);
381#endif
382#ifndef TclBN_mp_unsigned_bin_size_TCL_DECLARED
383#define TclBN_mp_unsigned_bin_size_TCL_DECLARED
384/* 47 */
385EXTERN int              TclBN_mp_unsigned_bin_size (mp_int* a);
386#endif
387#ifndef TclBN_mp_xor_TCL_DECLARED
388#define TclBN_mp_xor_TCL_DECLARED
389/* 48 */
390EXTERN int              TclBN_mp_xor (mp_int* a, mp_int* b, mp_int* c);
391#endif
392#ifndef TclBN_mp_zero_TCL_DECLARED
393#define TclBN_mp_zero_TCL_DECLARED
394/* 49 */
395EXTERN void             TclBN_mp_zero (mp_int* a);
396#endif
397#ifndef TclBN_reverse_TCL_DECLARED
398#define TclBN_reverse_TCL_DECLARED
399/* 50 */
400EXTERN void             TclBN_reverse (unsigned char* s, int len);
401#endif
402#ifndef TclBN_fast_s_mp_mul_digs_TCL_DECLARED
403#define TclBN_fast_s_mp_mul_digs_TCL_DECLARED
404/* 51 */
405EXTERN int              TclBN_fast_s_mp_mul_digs (mp_int * a, mp_int * b, 
406                                mp_int * c, int digs);
407#endif
408#ifndef TclBN_fast_s_mp_sqr_TCL_DECLARED
409#define TclBN_fast_s_mp_sqr_TCL_DECLARED
410/* 52 */
411EXTERN int              TclBN_fast_s_mp_sqr (mp_int* a, mp_int* b);
412#endif
413#ifndef TclBN_mp_karatsuba_mul_TCL_DECLARED
414#define TclBN_mp_karatsuba_mul_TCL_DECLARED
415/* 53 */
416EXTERN int              TclBN_mp_karatsuba_mul (mp_int* a, mp_int* b, 
417                                mp_int* c);
418#endif
419#ifndef TclBN_mp_karatsuba_sqr_TCL_DECLARED
420#define TclBN_mp_karatsuba_sqr_TCL_DECLARED
421/* 54 */
422EXTERN int              TclBN_mp_karatsuba_sqr (mp_int* a, mp_int* b);
423#endif
424#ifndef TclBN_mp_toom_mul_TCL_DECLARED
425#define TclBN_mp_toom_mul_TCL_DECLARED
426/* 55 */
427EXTERN int              TclBN_mp_toom_mul (mp_int* a, mp_int* b, mp_int* c);
428#endif
429#ifndef TclBN_mp_toom_sqr_TCL_DECLARED
430#define TclBN_mp_toom_sqr_TCL_DECLARED
431/* 56 */
432EXTERN int              TclBN_mp_toom_sqr (mp_int* a, mp_int* b);
433#endif
434#ifndef TclBN_s_mp_add_TCL_DECLARED
435#define TclBN_s_mp_add_TCL_DECLARED
436/* 57 */
437EXTERN int              TclBN_s_mp_add (mp_int* a, mp_int* b, mp_int* c);
438#endif
439#ifndef TclBN_s_mp_mul_digs_TCL_DECLARED
440#define TclBN_s_mp_mul_digs_TCL_DECLARED
441/* 58 */
442EXTERN int              TclBN_s_mp_mul_digs (mp_int* a, mp_int* b, mp_int* c, 
443                                int digs);
444#endif
445#ifndef TclBN_s_mp_sqr_TCL_DECLARED
446#define TclBN_s_mp_sqr_TCL_DECLARED
447/* 59 */
448EXTERN int              TclBN_s_mp_sqr (mp_int* a, mp_int* b);
449#endif
450#ifndef TclBN_s_mp_sub_TCL_DECLARED
451#define TclBN_s_mp_sub_TCL_DECLARED
452/* 60 */
453EXTERN int              TclBN_s_mp_sub (mp_int* a, mp_int* b, mp_int* c);
454#endif
455
456typedef struct TclTomMathStubs {
457    int magic;
458    struct TclTomMathStubHooks *hooks;
459
460    int (*tclBN_epoch) (void); /* 0 */
461    int (*tclBN_revision) (void); /* 1 */
462    int (*tclBN_mp_add) (mp_int* a, mp_int* b, mp_int* c); /* 2 */
463    int (*tclBN_mp_add_d) (mp_int* a, mp_digit b, mp_int* c); /* 3 */
464    int (*tclBN_mp_and) (mp_int* a, mp_int* b, mp_int* c); /* 4 */
465    void (*tclBN_mp_clamp) (mp_int* a); /* 5 */
466    void (*tclBN_mp_clear) (mp_int* a); /* 6 */
467    void (*tclBN_mp_clear_multi) (mp_int* a, ...); /* 7 */
468    int (*tclBN_mp_cmp) (mp_int* a, mp_int* b); /* 8 */
469    int (*tclBN_mp_cmp_d) (mp_int* a, mp_digit b); /* 9 */
470    int (*tclBN_mp_cmp_mag) (mp_int* a, mp_int* b); /* 10 */
471    int (*tclBN_mp_copy) (mp_int* a, mp_int* b); /* 11 */
472    int (*tclBN_mp_count_bits) (mp_int* a); /* 12 */
473    int (*tclBN_mp_div) (mp_int* a, mp_int* b, mp_int* q, mp_int* r); /* 13 */
474    int (*tclBN_mp_div_d) (mp_int* a, mp_digit b, mp_int* q, mp_digit* r); /* 14 */
475    int (*tclBN_mp_div_2) (mp_int* a, mp_int* q); /* 15 */
476    int (*tclBN_mp_div_2d) (mp_int* a, int b, mp_int* q, mp_int* r); /* 16 */
477    int (*tclBN_mp_div_3) (mp_int* a, mp_int* q, mp_digit* r); /* 17 */
478    void (*tclBN_mp_exch) (mp_int* a, mp_int* b); /* 18 */
479    int (*tclBN_mp_expt_d) (mp_int* a, mp_digit b, mp_int* c); /* 19 */
480    int (*tclBN_mp_grow) (mp_int* a, int size); /* 20 */
481    int (*tclBN_mp_init) (mp_int* a); /* 21 */
482    int (*tclBN_mp_init_copy) (mp_int * a, mp_int* b); /* 22 */
483    int (*tclBN_mp_init_multi) (mp_int* a, ...); /* 23 */
484    int (*tclBN_mp_init_set) (mp_int* a, mp_digit b); /* 24 */
485    int (*tclBN_mp_init_size) (mp_int* a, int size); /* 25 */
486    int (*tclBN_mp_lshd) (mp_int* a, int shift); /* 26 */
487    int (*tclBN_mp_mod) (mp_int* a, mp_int* b, mp_int* r); /* 27 */
488    int (*tclBN_mp_mod_2d) (mp_int* a, int b, mp_int* r); /* 28 */
489    int (*tclBN_mp_mul) (mp_int* a, mp_int* b, mp_int* p); /* 29 */
490    int (*tclBN_mp_mul_d) (mp_int* a, mp_digit b, mp_int* p); /* 30 */
491    int (*tclBN_mp_mul_2) (mp_int* a, mp_int* p); /* 31 */
492    int (*tclBN_mp_mul_2d) (mp_int* a, int d, mp_int* p); /* 32 */
493    int (*tclBN_mp_neg) (mp_int* a, mp_int* b); /* 33 */
494    int (*tclBN_mp_or) (mp_int* a, mp_int* b, mp_int* c); /* 34 */
495    int (*tclBN_mp_radix_size) (mp_int* a, int radix, int* size); /* 35 */
496    int (*tclBN_mp_read_radix) (mp_int* a, const char* str, int radix); /* 36 */
497    void (*tclBN_mp_rshd) (mp_int * a, int shift); /* 37 */
498    int (*tclBN_mp_shrink) (mp_int* a); /* 38 */
499    void (*tclBN_mp_set) (mp_int* a, mp_digit b); /* 39 */
500    int (*tclBN_mp_sqr) (mp_int* a, mp_int* b); /* 40 */
501    int (*tclBN_mp_sqrt) (mp_int* a, mp_int* b); /* 41 */
502    int (*tclBN_mp_sub) (mp_int* a, mp_int* b, mp_int* c); /* 42 */
503    int (*tclBN_mp_sub_d) (mp_int* a, mp_digit b, mp_int* c); /* 43 */
504    int (*tclBN_mp_to_unsigned_bin) (mp_int* a, unsigned char* b); /* 44 */
505    int (*tclBN_mp_to_unsigned_bin_n) (mp_int* a, unsigned char* b, unsigned long* outlen); /* 45 */
506    int (*tclBN_mp_toradix_n) (mp_int* a, char* str, int radix, int maxlen); /* 46 */
507    int (*tclBN_mp_unsigned_bin_size) (mp_int* a); /* 47 */
508    int (*tclBN_mp_xor) (mp_int* a, mp_int* b, mp_int* c); /* 48 */
509    void (*tclBN_mp_zero) (mp_int* a); /* 49 */
510    void (*tclBN_reverse) (unsigned char* s, int len); /* 50 */
511    int (*tclBN_fast_s_mp_mul_digs) (mp_int * a, mp_int * b, mp_int * c, int digs); /* 51 */
512    int (*tclBN_fast_s_mp_sqr) (mp_int* a, mp_int* b); /* 52 */
513    int (*tclBN_mp_karatsuba_mul) (mp_int* a, mp_int* b, mp_int* c); /* 53 */
514    int (*tclBN_mp_karatsuba_sqr) (mp_int* a, mp_int* b); /* 54 */
515    int (*tclBN_mp_toom_mul) (mp_int* a, mp_int* b, mp_int* c); /* 55 */
516    int (*tclBN_mp_toom_sqr) (mp_int* a, mp_int* b); /* 56 */
517    int (*tclBN_s_mp_add) (mp_int* a, mp_int* b, mp_int* c); /* 57 */
518    int (*tclBN_s_mp_mul_digs) (mp_int* a, mp_int* b, mp_int* c, int digs); /* 58 */
519    int (*tclBN_s_mp_sqr) (mp_int* a, mp_int* b); /* 59 */
520    int (*tclBN_s_mp_sub) (mp_int* a, mp_int* b, mp_int* c); /* 60 */
521} TclTomMathStubs;
522
523#ifdef __cplusplus
524extern "C" {
525#endif
526extern TclTomMathStubs *tclTomMathStubsPtr;
527#ifdef __cplusplus
528}
529#endif
530
531#if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS)
532
533/*
534 * Inline function declarations:
535 */
536
537#ifndef TclBN_epoch
538#define TclBN_epoch \
539        (tclTomMathStubsPtr->tclBN_epoch) /* 0 */
540#endif
541#ifndef TclBN_revision
542#define TclBN_revision \
543        (tclTomMathStubsPtr->tclBN_revision) /* 1 */
544#endif
545#ifndef TclBN_mp_add
546#define TclBN_mp_add \
547        (tclTomMathStubsPtr->tclBN_mp_add) /* 2 */
548#endif
549#ifndef TclBN_mp_add_d
550#define TclBN_mp_add_d \
551        (tclTomMathStubsPtr->tclBN_mp_add_d) /* 3 */
552#endif
553#ifndef TclBN_mp_and
554#define TclBN_mp_and \
555        (tclTomMathStubsPtr->tclBN_mp_and) /* 4 */
556#endif
557#ifndef TclBN_mp_clamp
558#define TclBN_mp_clamp \
559        (tclTomMathStubsPtr->tclBN_mp_clamp) /* 5 */
560#endif
561#ifndef TclBN_mp_clear
562#define TclBN_mp_clear \
563        (tclTomMathStubsPtr->tclBN_mp_clear) /* 6 */
564#endif
565#ifndef TclBN_mp_clear_multi
566#define TclBN_mp_clear_multi \
567        (tclTomMathStubsPtr->tclBN_mp_clear_multi) /* 7 */
568#endif
569#ifndef TclBN_mp_cmp
570#define TclBN_mp_cmp \
571        (tclTomMathStubsPtr->tclBN_mp_cmp) /* 8 */
572#endif
573#ifndef TclBN_mp_cmp_d
574#define TclBN_mp_cmp_d \
575        (tclTomMathStubsPtr->tclBN_mp_cmp_d) /* 9 */
576#endif
577#ifndef TclBN_mp_cmp_mag
578#define TclBN_mp_cmp_mag \
579        (tclTomMathStubsPtr->tclBN_mp_cmp_mag) /* 10 */
580#endif
581#ifndef TclBN_mp_copy
582#define TclBN_mp_copy \
583        (tclTomMathStubsPtr->tclBN_mp_copy) /* 11 */
584#endif
585#ifndef TclBN_mp_count_bits
586#define TclBN_mp_count_bits \
587        (tclTomMathStubsPtr->tclBN_mp_count_bits) /* 12 */
588#endif
589#ifndef TclBN_mp_div
590#define TclBN_mp_div \
591        (tclTomMathStubsPtr->tclBN_mp_div) /* 13 */
592#endif
593#ifndef TclBN_mp_div_d
594#define TclBN_mp_div_d \
595        (tclTomMathStubsPtr->tclBN_mp_div_d) /* 14 */
596#endif
597#ifndef TclBN_mp_div_2
598#define TclBN_mp_div_2 \
599        (tclTomMathStubsPtr->tclBN_mp_div_2) /* 15 */
600#endif
601#ifndef TclBN_mp_div_2d
602#define TclBN_mp_div_2d \
603        (tclTomMathStubsPtr->tclBN_mp_div_2d) /* 16 */
604#endif
605#ifndef TclBN_mp_div_3
606#define TclBN_mp_div_3 \
607        (tclTomMathStubsPtr->tclBN_mp_div_3) /* 17 */
608#endif
609#ifndef TclBN_mp_exch
610#define TclBN_mp_exch \
611        (tclTomMathStubsPtr->tclBN_mp_exch) /* 18 */
612#endif
613#ifndef TclBN_mp_expt_d
614#define TclBN_mp_expt_d \
615        (tclTomMathStubsPtr->tclBN_mp_expt_d) /* 19 */
616#endif
617#ifndef TclBN_mp_grow
618#define TclBN_mp_grow \
619        (tclTomMathStubsPtr->tclBN_mp_grow) /* 20 */
620#endif
621#ifndef TclBN_mp_init
622#define TclBN_mp_init \
623        (tclTomMathStubsPtr->tclBN_mp_init) /* 21 */
624#endif
625#ifndef TclBN_mp_init_copy
626#define TclBN_mp_init_copy \
627        (tclTomMathStubsPtr->tclBN_mp_init_copy) /* 22 */
628#endif
629#ifndef TclBN_mp_init_multi
630#define TclBN_mp_init_multi \
631        (tclTomMathStubsPtr->tclBN_mp_init_multi) /* 23 */
632#endif
633#ifndef TclBN_mp_init_set
634#define TclBN_mp_init_set \
635        (tclTomMathStubsPtr->tclBN_mp_init_set) /* 24 */
636#endif
637#ifndef TclBN_mp_init_size
638#define TclBN_mp_init_size \
639        (tclTomMathStubsPtr->tclBN_mp_init_size) /* 25 */
640#endif
641#ifndef TclBN_mp_lshd
642#define TclBN_mp_lshd \
643        (tclTomMathStubsPtr->tclBN_mp_lshd) /* 26 */
644#endif
645#ifndef TclBN_mp_mod
646#define TclBN_mp_mod \
647        (tclTomMathStubsPtr->tclBN_mp_mod) /* 27 */
648#endif
649#ifndef TclBN_mp_mod_2d
650#define TclBN_mp_mod_2d \
651        (tclTomMathStubsPtr->tclBN_mp_mod_2d) /* 28 */
652#endif
653#ifndef TclBN_mp_mul
654#define TclBN_mp_mul \
655        (tclTomMathStubsPtr->tclBN_mp_mul) /* 29 */
656#endif
657#ifndef TclBN_mp_mul_d
658#define TclBN_mp_mul_d \
659        (tclTomMathStubsPtr->tclBN_mp_mul_d) /* 30 */
660#endif
661#ifndef TclBN_mp_mul_2
662#define TclBN_mp_mul_2 \
663        (tclTomMathStubsPtr->tclBN_mp_mul_2) /* 31 */
664#endif
665#ifndef TclBN_mp_mul_2d
666#define TclBN_mp_mul_2d \
667        (tclTomMathStubsPtr->tclBN_mp_mul_2d) /* 32 */
668#endif
669#ifndef TclBN_mp_neg
670#define TclBN_mp_neg \
671        (tclTomMathStubsPtr->tclBN_mp_neg) /* 33 */
672#endif
673#ifndef TclBN_mp_or
674#define TclBN_mp_or \
675        (tclTomMathStubsPtr->tclBN_mp_or) /* 34 */
676#endif
677#ifndef TclBN_mp_radix_size
678#define TclBN_mp_radix_size \
679        (tclTomMathStubsPtr->tclBN_mp_radix_size) /* 35 */
680#endif
681#ifndef TclBN_mp_read_radix
682#define TclBN_mp_read_radix \
683        (tclTomMathStubsPtr->tclBN_mp_read_radix) /* 36 */
684#endif
685#ifndef TclBN_mp_rshd
686#define TclBN_mp_rshd \
687        (tclTomMathStubsPtr->tclBN_mp_rshd) /* 37 */
688#endif
689#ifndef TclBN_mp_shrink
690#define TclBN_mp_shrink \
691        (tclTomMathStubsPtr->tclBN_mp_shrink) /* 38 */
692#endif
693#ifndef TclBN_mp_set
694#define TclBN_mp_set \
695        (tclTomMathStubsPtr->tclBN_mp_set) /* 39 */
696#endif
697#ifndef TclBN_mp_sqr
698#define TclBN_mp_sqr \
699        (tclTomMathStubsPtr->tclBN_mp_sqr) /* 40 */
700#endif
701#ifndef TclBN_mp_sqrt
702#define TclBN_mp_sqrt \
703        (tclTomMathStubsPtr->tclBN_mp_sqrt) /* 41 */
704#endif
705#ifndef TclBN_mp_sub
706#define TclBN_mp_sub \
707        (tclTomMathStubsPtr->tclBN_mp_sub) /* 42 */
708#endif
709#ifndef TclBN_mp_sub_d
710#define TclBN_mp_sub_d \
711        (tclTomMathStubsPtr->tclBN_mp_sub_d) /* 43 */
712#endif
713#ifndef TclBN_mp_to_unsigned_bin
714#define TclBN_mp_to_unsigned_bin \
715        (tclTomMathStubsPtr->tclBN_mp_to_unsigned_bin) /* 44 */
716#endif
717#ifndef TclBN_mp_to_unsigned_bin_n
718#define TclBN_mp_to_unsigned_bin_n \
719        (tclTomMathStubsPtr->tclBN_mp_to_unsigned_bin_n) /* 45 */
720#endif
721#ifndef TclBN_mp_toradix_n
722#define TclBN_mp_toradix_n \
723        (tclTomMathStubsPtr->tclBN_mp_toradix_n) /* 46 */
724#endif
725#ifndef TclBN_mp_unsigned_bin_size
726#define TclBN_mp_unsigned_bin_size \
727        (tclTomMathStubsPtr->tclBN_mp_unsigned_bin_size) /* 47 */
728#endif
729#ifndef TclBN_mp_xor
730#define TclBN_mp_xor \
731        (tclTomMathStubsPtr->tclBN_mp_xor) /* 48 */
732#endif
733#ifndef TclBN_mp_zero
734#define TclBN_mp_zero \
735        (tclTomMathStubsPtr->tclBN_mp_zero) /* 49 */
736#endif
737#ifndef TclBN_reverse
738#define TclBN_reverse \
739        (tclTomMathStubsPtr->tclBN_reverse) /* 50 */
740#endif
741#ifndef TclBN_fast_s_mp_mul_digs
742#define TclBN_fast_s_mp_mul_digs \
743        (tclTomMathStubsPtr->tclBN_fast_s_mp_mul_digs) /* 51 */
744#endif
745#ifndef TclBN_fast_s_mp_sqr
746#define TclBN_fast_s_mp_sqr \
747        (tclTomMathStubsPtr->tclBN_fast_s_mp_sqr) /* 52 */
748#endif
749#ifndef TclBN_mp_karatsuba_mul
750#define TclBN_mp_karatsuba_mul \
751        (tclTomMathStubsPtr->tclBN_mp_karatsuba_mul) /* 53 */
752#endif
753#ifndef TclBN_mp_karatsuba_sqr
754#define TclBN_mp_karatsuba_sqr \
755        (tclTomMathStubsPtr->tclBN_mp_karatsuba_sqr) /* 54 */
756#endif
757#ifndef TclBN_mp_toom_mul
758#define TclBN_mp_toom_mul \
759        (tclTomMathStubsPtr->tclBN_mp_toom_mul) /* 55 */
760#endif
761#ifndef TclBN_mp_toom_sqr
762#define TclBN_mp_toom_sqr \
763        (tclTomMathStubsPtr->tclBN_mp_toom_sqr) /* 56 */
764#endif
765#ifndef TclBN_s_mp_add
766#define TclBN_s_mp_add \
767        (tclTomMathStubsPtr->tclBN_s_mp_add) /* 57 */
768#endif
769#ifndef TclBN_s_mp_mul_digs
770#define TclBN_s_mp_mul_digs \
771        (tclTomMathStubsPtr->tclBN_s_mp_mul_digs) /* 58 */
772#endif
773#ifndef TclBN_s_mp_sqr
774#define TclBN_s_mp_sqr \
775        (tclTomMathStubsPtr->tclBN_s_mp_sqr) /* 59 */
776#endif
777#ifndef TclBN_s_mp_sub
778#define TclBN_s_mp_sub \
779        (tclTomMathStubsPtr->tclBN_s_mp_sub) /* 60 */
780#endif
781
782#endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */
783
784/* !END!: Do not edit above this line. */
785
786#undef TCL_STORAGE_CLASS
787#define TCL_STORAGE_CLASS DLLIMPORT
788
789#endif /* _TCLINTDECLS */
Note: See TracBrowser for help on using the repository browser.