00001
00015 #ifndef C4E_POLY_H
00016 #define C4E_POLY_H
00017
00018
00019
00020
00021 #include "c4e_elements.h"
00022
00023
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00058 C4eElemCmp c4e_poly_cmp(C4E_CONST C4eElement* a, C4E_CONST C4eElement* b);
00059
00060
00061
00075 void c4e_poly_add(C4E_CONST C4eElement* a, C4E_CONST C4eElement* b,
00076 C4eElement* c);
00077
00078
00079
00100 void c4e_poly_addshl(C4E_CONST C4eElement* a, C4E_CONST C4eElement* b,
00101 C4eArchSize shift, C4eElement* c);
00102
00103
00104
00132 void c4e_poly_mul(C4E_CONST C4eElement* C4E_RESTRICT a,
00133 C4E_CONST C4eElement* C4E_RESTRICT b,
00134 C4eElement* C4E_RESTRICT c);
00135
00136
00137
00177 void c4e_poly_sqr(C4E_CONST C4eElement* a, C4eElement* c);
00178
00179
00180
00220 void c4e_poly_mod(C4E_CONST C4eElement* C4E_RESTRICT a,
00221 C4E_CONST C4eElement* C4E_RESTRICT b,
00222 C4E_CONST C4eElement* C4E_RESTRICT m,
00223 C4eElement* C4E_RESTRICT c);
00224
00225
00226
00278 void c4e_poly_gcd(C4eElemTriple* a, C4eElemTriple* b);
00279
00280
00281 #ifdef __cplusplus
00282 }
00283 #endif
00284
00285
00286 #endif
00287
00288
00289
00290
00291