1 /++
2 + Machine generated D bindings for Relic library.
3 + 
4 + Generated on: 2025-06-26 15:20:27
5 + 
6 + Source header: relic.h
7 + Module: relic.relic
8 +/
9 module relic.relic;
10 import core.stdc.stdint;
11 
12 enum BN_PRECI = 1024;
13 enum RLC_DIG = size_t.sizeof;
14 
15 template RLC_CEIL(int A, int B)
16 {
17     enum RLC_CEIL = ((A - 1) / B + 1);
18 }
19 
20 enum RLC_BN_BITS = cast(size_t) BN_PRECI;
21 enum RLC_BN_DIGS = cast(size_t) RLC_CEIL!(BN_PRECI, RLC_DIG);
22 version (BN_MAGNI_DOUBLE)
23     enum RLC_BN_SIZE = cast(size_t)(2 * RLC_BN_DIGS + 2);
24 else version (BN_MAGNI_CARRY)
25     enum RLC_BN_SIZE = cast(size_t)(RLC_BN_DIGS + 1);
26 else
27     enum RLC_BN_SIZE = cast(size_t) RLC_BN_DIGS;
28 
29 extern (C) struct _rsa_st;
30 extern (C) struct _rsa_t;
31 extern (C) struct bdpe_st;
32 extern (C) struct bdpe_t;
33 extern (C) struct bgn_st;
34 extern (C) struct bgn_t;
35 extern (C) struct bn_st
36 {
37     size_t alloc = 0;
38     size_t used = 0;
39     int sign = 0;
40     dig_t* dp = null;
41 }
42 
43 alias bn_t = bn_st;
44 extern (C) struct crt_st;
45 extern (C) struct ctx_t;
46 extern (C) struct dig_t;
47 extern (C) struct dv2_t;
48 extern (C) struct dv3_t;
49 extern (C) struct dv4_t;
50 extern (C) struct dv6_t;
51 extern (C) struct dv8_t;
52 extern (C) struct dv9_t;
53 extern (C) struct eb_t;
54 extern (C) struct ec_t;
55 extern (C) struct ed_st;
56 extern (C) struct ed_t;
57 extern (C) struct ep2_st;
58 extern (C) struct ep2_t;
59 extern (C) struct ep3_st;
60 extern (C) struct ep3_t;
61 extern (C) struct ep4_st;
62 extern (C) struct ep4_t;
63 extern (C) struct ep8_st;
64 extern (C) struct ep8_t;
65 extern (C) struct ep_st;
66 extern (C) struct ep_t;
67 extern (C) struct ers_t;
68 extern (C) struct etrs_st;
69 extern (C) struct etrs_t;
70 extern (C) struct fb_st;
71 extern (C) struct fb_t;
72 extern (C) struct fp12_t;
73 extern (C) struct fp16_t;
74 extern (C) struct fp18_t;
75 extern (C) struct fp24_t;
76 extern (C) struct fp2_t;
77 extern (C) struct fp3_t;
78 extern (C) struct fp48_t;
79 extern (C) struct fp4_t;
80 extern (C) struct fp54_t;
81 extern (C) struct fp6_t;
82 extern (C) struct fp8_t;
83 extern (C) struct fp9_t;
84 extern (C) struct fp_t;
85 extern (C) struct g1_t;
86 extern (C) struct g2_t;
87 extern (C) struct gt_t;
88 extern (C) struct iso2_t;
89 extern (C) struct iso_t;
90 extern (C) struct mt_t;
91 extern (C) struct pt_st;
92 extern (C) struct pt_t;
93 extern (C) struct shpe_st;
94 extern (C) struct shpe_t;
95 extern (C) struct smlers_t;
96 extern (C) struct sokaka_st;
97 extern (C) struct sokaka_t;
98 extern (C) struct _pt_st
99 {
100     g1_t* a = null;
101     g2_t* b = null;
102     gt_t* c = null;
103 }
104 
105 extern (C) struct _sokaka
106 {
107     g1_t* s1 = null;
108     g2_t* s2 = null;
109 }
110 
111 extern (C) struct _ers_st
112 {
113     ec_t* h = null;
114     ec_t* pk = null;
115     bn_t[2] c = void;
116     bn_t[2] r = void;
117 }
118 
119 extern (C) struct _smlers_st
120 {
121     ers_t* sig = null;
122     ec_t* tau = null;
123     bn_t[2] c = void;
124     bn_t[2] r = void;
125 }
126 
127 extern (C) struct _etrs_st
128 {
129     bn_t* y = null;
130     ec_t* h = null;
131     ec_t* pk = null;
132     bn_t[2] c = void;
133     bn_t[2] r = void;
134 }
135 
136 enum errors
137 {
138     Caught,
139     No_memory,
140     No_preci,
141     No_file,
142     No_read,
143     No_valid,
144     No_buffer,
145     No_field,
146     No_curve,
147     No_config,
148     No_rand,
149     Max,
150 }
151 
152 extern (C) void err_simple_msg(int error) @system @nogc nothrow pure;
153 extern (C) void err_full_msg(scope const(char)* fn, scope const(char)* file, int line, int error) @system @nogc nothrow pure;
154 extern (C) void err_get_msg(scope int* e, scope const(char*)* msg) @system @nogc nothrow pure;
155 extern (C) int err_get_code() @system @nogc nothrow pure;
156 extern (C) void bn_make(scope bn_st* a, size_t digits) @system @nogc nothrow pure;
157 extern (C) void bn_clean(scope bn_st* a) @system @nogc nothrow pure;
158 extern (C) void bn_grow(scope bn_st* a, size_t digits) @system @nogc nothrow pure;
159 extern (C) void bn_trim(scope bn_st* a) @system @nogc nothrow pure;
160 extern (C) void bn_copy(scope bn_st* c, scope const(bn_st)* a) @system @nogc nothrow pure;
161 extern (C) void bn_abs(scope bn_st* c, scope const(bn_st)* a) @system @nogc nothrow pure;
162 extern (C) void bn_neg(scope bn_st* c, scope const(bn_st)* a) @system @nogc nothrow pure;
163 extern (C) int bn_sign(scope const(bn_st)* a) @system @nogc nothrow pure;
164 extern (C) void bn_zero(scope bn_st* a) @system @nogc nothrow pure;
165 extern (C) int bn_is_zero(scope const(bn_st)* a) @system @nogc nothrow pure;
166 extern (C) int bn_is_even(scope const(bn_st)* a) @system @nogc nothrow pure;
167 extern (C) size_t bn_bits(scope const(bn_st)* a) @system @nogc nothrow pure;
168 extern (C) int bn_get_bit(scope const(bn_st)* a, uint bit) @system @nogc nothrow pure;
169 extern (C) void bn_set_bit(scope bn_st* a, uint bit, int value) @system @nogc nothrow pure;
170 extern (C) uint bn_ham(scope const(bn_st)* a) @system @nogc nothrow pure;
171 extern (C) void bn_get_dig(scope dig_t* digit, scope const(bn_st)* a) @system @nogc nothrow pure;
172 extern (C) void bn_set_dig(scope bn_st* a, ulong digit) @system @nogc nothrow pure;
173 extern (C) void bn_set_2b(scope bn_st* a, size_t b) @system @nogc nothrow pure;
174 extern (C) void bn_rand(scope bn_st* a, int sign, size_t bits) @system @nogc nothrow pure;
175 extern (C) void bn_rand_mod(scope bn_st* a, scope const(bn_st)* b) @system @nogc nothrow pure;
176 extern (C) void bn_rand_frb(scope bn_st* a, scope const(bn_st)* b, scope const(bn_st)* n, size_t bits) @system @nogc nothrow pure;
177 extern (C) void bn_print(scope const(bn_st)* a) @system @nogc nothrow pure;
178 extern (C) size_t bn_size_str(scope const(bn_st)* a, uint radix) @system @nogc nothrow pure;
179 extern (C) void bn_read_str(scope bn_st* a, scope const(char)* str, size_t len, uint radix) @system @nogc nothrow pure;
180 extern (C) void bn_write_str(scope char* str, size_t len, scope const(bn_st)* a, uint radix) @system @nogc nothrow pure;
181 extern (C) size_t bn_size_bin(scope const(bn_st)* a) @system @nogc nothrow pure;
182 extern (C) void bn_read_bin(scope bn_st* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
183 extern (C) void bn_write_bin(scope ubyte* bin, size_t len, scope const(bn_st)* a) @system @nogc nothrow pure;
184 extern (C) size_t bn_size_raw(scope const(bn_st)* a) @system @nogc nothrow pure;
185 extern (C) void bn_read_raw(scope bn_st* a, scope const(dig_t)* raw, size_t len) @system @nogc nothrow pure;
186 extern (C) void bn_write_raw(scope dig_t* raw, size_t len, scope const(bn_st)* a) @system @nogc nothrow pure;
187 extern (C) int bn_cmp_abs(scope const(bn_st)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
188 extern (C) int bn_cmp_dig(scope const(bn_st)* a, ulong b) @system @nogc nothrow pure;
189 extern (C) int bn_cmp(scope const(bn_st)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
190 extern (C) void bn_add(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
191 extern (C) void bn_add_dig(scope bn_st* c, scope const(bn_st)* a, ulong b) @system @nogc nothrow pure;
192 extern (C) void bn_sub(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
193 extern (C) void bn_sub_dig(scope bn_st* c, scope const(bn_st)* a, const(ulong) b) @system @nogc nothrow pure;
194 extern (C) void bn_mul_dig(scope bn_st* c, scope const(bn_st)* a, ulong b) @system @nogc nothrow pure;
195 extern (C) void bn_mul_basic(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
196 extern (C) void bn_mul_comba(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
197 extern (C) void bn_mul_karat(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
198 extern (C) void bn_sqr_basic(scope bn_st* c, scope const(bn_st)* a) @system @nogc nothrow pure;
199 extern (C) void bn_sqr_comba(scope bn_st* c, scope const(bn_st)* a) @system @nogc nothrow pure;
200 extern (C) void bn_sqr_karat(scope bn_st* c, scope const(bn_st)* a) @system @nogc nothrow pure;
201 extern (C) void bn_dbl(scope bn_st* c, scope const(bn_st)* a) @system @nogc nothrow pure;
202 extern (C) void bn_hlv(scope bn_st* c, scope const(bn_st)* a) @system @nogc nothrow pure;
203 extern (C) void bn_lsh(scope bn_st* c, scope const(bn_st)* a, uint bits) @system @nogc nothrow pure;
204 extern (C) void bn_rsh(scope bn_st* c, scope const(bn_st)* a, uint bits) @system @nogc nothrow pure;
205 extern (C) void bn_div(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
206 extern (C) void bn_div_rem(scope bn_st* c, scope bn_st* d, scope const(bn_st)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
207 extern (C) void bn_div_dig(scope bn_st* c, scope const(bn_st)* a, ulong b) @system @nogc nothrow pure;
208 extern (C) void bn_div_rem_dig(scope bn_st* c, scope dig_t* d, scope const(bn_st)* a, const(ulong) b) @system @nogc nothrow pure;
209 extern (C) void bn_mod_inv(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
210 extern (C) void bn_mod_inv_sim(scope bn_t* c, scope const(bn_t)* a, scope const(bn_st)* b, int n) @system @nogc nothrow pure;
211 extern (C) void bn_mod_2b(scope bn_st* c, scope const(bn_st)* a, int b) @system @nogc nothrow pure;
212 extern (C) void bn_mod_dig(scope dig_t* c, scope const(bn_st)* a, ulong b) @system @nogc nothrow pure;
213 extern (C) void bn_mod_basic(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* m) @system @nogc nothrow pure;
214 extern (C) void bn_mod_pre_barrt(scope bn_st* u, scope const(bn_st)* m) @system @nogc nothrow pure;
215 extern (C) void bn_mod_barrt(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* m, scope const(
216         bn_st)* u) @system @nogc nothrow pure;
217 extern (C) void bn_mod_pre_monty(scope bn_st* u, scope const(bn_st)* m) @system @nogc nothrow pure;
218 extern (C) void bn_mod_monty_conv(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* m) @system @nogc nothrow pure;
219 extern (C) void bn_mod_monty_back(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* m) @system @nogc nothrow pure;
220 extern (C) void bn_mod_monty_basic(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* m, scope const(
221         bn_st)* u) @system @nogc nothrow pure;
222 extern (C) void bn_mod_monty_comba(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* m, scope const(
223         bn_st)* u) @system @nogc nothrow pure;
224 extern (C) void bn_mod_pre_pmers(scope bn_st* u, scope const(bn_st)* m) @system @nogc nothrow pure;
225 extern (C) void bn_mod_pmers(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* m, scope const(
226         bn_st)* u) @system @nogc nothrow pure;
227 extern (C) void bn_mxp_basic(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* b, scope const(
228         bn_st)* m) @system @nogc nothrow pure;
229 extern (C) void bn_mxp_slide(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* b, scope const(
230         bn_st)* m) @system @nogc nothrow pure;
231 extern (C) void bn_mxp_monty(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* b, scope const(
232         bn_st)* m) @system @nogc nothrow pure;
233 extern (C) void bn_mxp_dig(scope bn_st* c, scope const(bn_st)* a, ulong b, scope const(bn_st)* m) @system @nogc nothrow pure;
234 extern (C) void bn_mxp_crt(scope bn_st* d, scope const(bn_st)* a, scope const(bn_st)* b, scope const(
235         bn_st)* c, scope const(crt_st)* crt, int sqr) @system @nogc nothrow pure;
236 extern (C) void bn_mxp_sim(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* b, scope const(
237         bn_st)* d, scope const(bn_st)* e, scope const(bn_st)* m) @system @nogc nothrow pure;
238 extern (C) void bn_mxp_sim_few(scope bn_st* c, scope const(bn_t)* a, scope const(bn_t)* b, scope const(
239         bn_st)* m, size_t n) @system @nogc nothrow pure;
240 extern (C) void bn_mxp_sim_lot(scope bn_st* c, scope const(bn_t)* a, scope const(bn_t)* b, scope const(
241         bn_st)* m, size_t n) @system @nogc nothrow pure;
242 extern (C) void bn_srt(scope bn_st* c, scope bn_st* a) @system @nogc nothrow pure;
243 extern (C) void bn_gcd_basic(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
244 extern (C) void bn_gcd_lehme(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
245 extern (C) void bn_gcd_binar(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
246 extern (C) void bn_gcd_dig(scope bn_st* c, scope const(bn_st)* a, ulong b) @system @nogc nothrow pure;
247 extern (C) void bn_gcd_ext_basic(scope bn_st* c, scope bn_st* d, scope bn_st* e, scope const(bn_st)* a, scope const(
248         bn_st)* b) @system @nogc nothrow pure;
249 extern (C) void bn_gcd_ext_lehme(scope bn_st* c, scope bn_st* d, scope bn_st* e, scope const(bn_st)* a, scope const(
250         bn_st)* b) @system @nogc nothrow pure;
251 extern (C) void bn_gcd_ext_binar(scope bn_st* c, scope bn_st* d, scope bn_st* e, scope const(bn_st)* a, scope const(
252         bn_st)* b) @system @nogc nothrow pure;
253 extern (C) void bn_gcd_ext_mid(scope bn_st* c, scope bn_st* d, scope bn_st* e, scope bn_st* f, scope const(
254         bn_st)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
255 extern (C) void bn_gcd_ext_dig(scope bn_st* c, scope bn_st* d, scope bn_st* e, scope const(bn_st)* a, ulong b) @system @nogc nothrow pure;
256 extern (C) void bn_lcm(scope bn_st* c, scope const(bn_st)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
257 extern (C) int bn_smb_leg(scope const(bn_st)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
258 extern (C) int bn_smb_jac(scope const(bn_st)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
259 extern (C) int bn_is_prime(scope const(bn_st)* a) @system @nogc nothrow pure;
260 extern (C) int bn_is_prime_basic(scope const(bn_st)* a) @system @nogc nothrow pure;
261 extern (C) int bn_is_prime_rabin(scope const(bn_st)* a) @system @nogc nothrow pure;
262 extern (C) int bn_is_prime_solov(scope const(bn_st)* a) @system @nogc nothrow pure;
263 extern (C) void bn_gen_prime_basic(scope bn_st* a, size_t bits) @system @nogc nothrow pure;
264 extern (C) void bn_gen_prime_safep(scope bn_st* a, size_t bits) @system @nogc nothrow pure;
265 extern (C) void bn_gen_prime_stron(scope bn_st* a, size_t bits) @system @nogc nothrow pure;
266 extern (C) int bn_gen_prime_factor(scope bn_st* a, scope bn_st* b, size_t abits, size_t bbits) @system @nogc nothrow pure;
267 extern (C) int bn_factor(scope bn_st* c, scope const(bn_st)* a) @system @nogc nothrow pure;
268 extern (C) int bn_is_factor(scope bn_st* c, scope const(bn_st)* a) @system @nogc nothrow pure;
269 extern (C) void bn_rec_win(scope ubyte* win, scope size_t* len, scope const(bn_st)* k, size_t w) @system @nogc nothrow pure;
270 extern (C) void bn_rec_slw(scope ubyte* win, scope size_t* len, scope const(bn_st)* k, size_t w) @system @nogc nothrow pure;
271 extern (C) void bn_rec_naf(scope byte* naf, scope size_t* len, scope const(bn_st)* k, size_t w) @system @nogc nothrow pure;
272 extern (C) void bn_rec_tnaf(scope byte* tnaf, scope size_t* len, scope const(bn_st)* k, byte u, size_t m, size_t w) @system @nogc nothrow pure;
273 extern (C) void bn_rec_rtnaf(scope byte* tnaf, scope size_t* len, scope const(bn_st)* k, byte u, size_t m, size_t w) @system @nogc nothrow pure;
274 extern (C) void bn_rec_tnaf_get(scope ubyte* t, scope byte* beta, scope byte* gama, byte u, size_t w) @system @nogc nothrow pure;
275 extern (C) void bn_rec_tnaf_mod(scope bn_st* r0, scope bn_st* r1, scope const(bn_st)* k, int u, size_t m) @system @nogc nothrow pure;
276 extern (C) void bn_rec_reg(scope byte* naf, scope size_t* len, scope const(bn_st)* k, size_t n, size_t w) @system @nogc nothrow pure;
277 extern (C) void bn_rec_jsf(scope byte* jsf, scope size_t* len, scope const(bn_st)* k, scope const(
278         bn_st)* l) @system @nogc nothrow pure;
279 extern (C) void bn_rec_glv(scope bn_st* k0, scope bn_st* k1, scope const(bn_st)* k, scope const(
280         bn_st)* n, scope const(bn_st)* v1, scope const(bn_st)* v2) @system @nogc nothrow pure;
281 extern (C) void bn_rec_frb(scope bn_t* ki, int sub, scope const(bn_st)* k, scope const(bn_st)* x, scope const(
282         bn_st)* n, int cof) @system @nogc nothrow pure;
283 extern (C) void bn_rec_sac(scope byte* b, scope size_t* len, scope const(bn_t)* k, scope const(
284         bn_st)* u, size_t c, size_t m, size_t n, int cof) @system @nogc nothrow pure;
285 extern (C) void bn_lag(scope bn_t* c, scope const(bn_t)* a, scope const(bn_st)* b, size_t n) @system @nogc nothrow pure;
286 extern (C) void bn_evl(scope bn_st* c, scope const(bn_t)* a, scope const(bn_st)* x, scope const(
287         bn_st)* b, size_t n) @system @nogc nothrow pure;
288 extern (C) void dv_print(scope const(dig_t)* a, size_t digits) @system @nogc nothrow pure;
289 extern (C) void dv_zero(scope dig_t* a, size_t digits) @system @nogc nothrow pure;
290 extern (C) void dv_copy(scope dig_t* c, scope const(dig_t)* a, size_t digits) @system @nogc nothrow pure;
291 extern (C) void dv_copy_sec(scope dig_t* c, scope const(dig_t)* a, size_t digits, ulong bit) @system @nogc nothrow pure;
292 extern (C) void dv_swap_sec(scope dig_t* c, scope dig_t* a, size_t digits, ulong bit) @system @nogc nothrow pure;
293 extern (C) int dv_cmp(scope const(dig_t)* a, scope const(dig_t)* b, size_t size) @system @nogc nothrow pure;
294 extern (C) int dv_cmp_sec(scope const(dig_t)* a, scope const(dig_t)* b, size_t size) @system @nogc nothrow pure;
295 extern (C) void dv_lshd(scope dig_t* c, scope const(dig_t)* a, size_t size, uint digits) @system @nogc nothrow pure;
296 extern (C) void dv_rshd(scope dig_t* c, scope const(dig_t)* a, size_t size, uint digits) @system @nogc nothrow pure;
297 extern (C) void fb_poly_init() @system @nogc nothrow pure;
298 extern (C) void fb_poly_clean() @system @nogc nothrow pure;
299 extern (C) dig_t* fb_poly_get() @system @nogc nothrow pure;
300 extern (C) void fb_poly_set_dense(scope const(dig_t)* f) @system @nogc nothrow pure;
301 extern (C) void fb_poly_set_trino(int a) @system @nogc nothrow pure;
302 extern (C) void fb_poly_set_penta(int a, int b, int c) @system @nogc nothrow pure;
303 extern (C) dig_t* fb_poly_get_srz() @system @nogc nothrow pure;
304 extern (C) const(dig_t)* fb_poly_tab_srz(int i) @system @nogc nothrow pure;
305 extern (C) const(fb_st)* fb_poly_tab_sqr(int i) @system @nogc nothrow pure;
306 extern (C) const(int)* fb_poly_get_chain(scope int* len) @system @nogc nothrow pure;
307 extern (C) void fb_poly_get_rdc(scope int* a, scope int* b, scope int* c) @system @nogc nothrow pure;
308 extern (C) void fb_poly_get_trc(scope int* a, scope int* b, scope int* c) @system @nogc nothrow pure;
309 extern (C) const(dig_t)* fb_poly_get_slv() @system @nogc nothrow pure;
310 extern (C) void fb_param_set(int param) @system @nogc nothrow pure;
311 extern (C) void fb_param_set_any() @system @nogc nothrow pure;
312 extern (C) void fb_param_print() @system @nogc nothrow pure;
313 extern (C) void fb_poly_add(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
314 extern (C) void fb_copy(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
315 extern (C) void fb_neg(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
316 extern (C) void fb_zero(scope dig_t* a) @system @nogc nothrow pure;
317 extern (C) int fb_is_zero(scope const(dig_t)* a) @system @nogc nothrow pure;
318 extern (C) int fb_get_bit(scope const(dig_t)* a, uint bit) @system @nogc nothrow pure;
319 extern (C) void fb_set_bit(scope dig_t* a, uint bit, int value) @system @nogc nothrow pure;
320 extern (C) void fb_set_dig(scope dig_t* c, ulong a) @system @nogc nothrow pure;
321 extern (C) size_t fb_bits(scope const(dig_t)* a) @system @nogc nothrow pure;
322 extern (C) void fb_rand(scope dig_t* a) @system @nogc nothrow pure;
323 extern (C) void fb_print(scope const(dig_t)* a) @system @nogc nothrow pure;
324 extern (C) size_t fb_size_str(scope const(dig_t)* a, uint radix) @system @nogc nothrow pure;
325 extern (C) void fb_read_str(scope dig_t* a, scope const(char)* str, size_t len, uint radix) @system @nogc nothrow pure;
326 extern (C) void fb_write_str(scope char* str, size_t len, scope const(dig_t)* a, uint radix) @system @nogc nothrow pure;
327 extern (C) void fb_read_bin(scope dig_t* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
328 extern (C) void fb_write_bin(scope ubyte* bin, size_t len, scope const(dig_t)* a) @system @nogc nothrow pure;
329 extern (C) int fb_cmp(scope const(dig_t)* a, scope const(dig_t)* b) @system @nogc nothrow pure;
330 extern (C) int fb_cmp_dig(scope const(dig_t)* a, ulong b) @system @nogc nothrow pure;
331 extern (C) void fb_add(scope dig_t* c, scope const(dig_t)* a, scope const(dig_t)* b) @system @nogc nothrow pure;
332 extern (C) void fb_add_dig(scope dig_t* c, scope const(dig_t)* a, ulong b) @system @nogc nothrow pure;
333 extern (C) void fb_mul_basic(scope dig_t* c, scope const(dig_t)* a, scope const(dig_t)* b) @system @nogc nothrow pure;
334 extern (C) void fb_mul_integ(scope dig_t* c, scope const(dig_t)* a, scope const(dig_t)* b) @system @nogc nothrow pure;
335 extern (C) void fb_mul_lodah(scope dig_t* c, scope const(dig_t)* a, scope const(dig_t)* b) @system @nogc nothrow pure;
336 extern (C) void fb_mul_dig(scope dig_t* c, scope const(dig_t)* a, ulong b) @system @nogc nothrow pure;
337 extern (C) void fb_mul_karat(scope dig_t* c, scope const(dig_t)* a, scope const(dig_t)* b) @system @nogc nothrow pure;
338 extern (C) void fb_sqr_basic(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
339 extern (C) void fb_sqr_integ(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
340 extern (C) void fb_sqr_quick(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
341 extern (C) void fb_lsh(scope dig_t* c, scope const(dig_t)* a, uint bits) @system @nogc nothrow pure;
342 extern (C) void fb_rsh(scope dig_t* c, scope const(dig_t)* a, uint bits) @system @nogc nothrow pure;
343 extern (C) void fb_rdc_basic(scope dig_t* c, scope dig_t* a) @system @nogc nothrow pure;
344 extern (C) void fb_rdc_quick(scope dig_t* c, scope dig_t* a) @system @nogc nothrow pure;
345 extern (C) void fb_srt_basic(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
346 extern (C) void fb_srt_quick(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
347 extern (C) ulong fb_trc_basic(scope const(dig_t)* a) @system @nogc nothrow pure;
348 extern (C) ulong fb_trc_quick(scope const(dig_t)* a) @system @nogc nothrow pure;
349 extern (C) void fb_inv_basic(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
350 extern (C) void fb_inv_binar(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
351 extern (C) void fb_inv_exgcd(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
352 extern (C) void fb_inv_almos(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
353 extern (C) void fb_inv_itoht(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
354 extern (C) void fb_inv_bruch(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
355 extern (C) void fb_inv_ctaia(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
356 extern (C) void fb_inv_lower(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
357 extern (C) void fb_inv_sim(scope fb_t* c, scope const(fb_t)* a, int n) @system @nogc nothrow pure;
358 extern (C) void fb_exp_2b(scope dig_t* c, scope const(dig_t)* a, int b) @system @nogc nothrow pure;
359 extern (C) void fb_exp_basic(scope dig_t* c, scope const(dig_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
360 extern (C) void fb_exp_slide(scope dig_t* c, scope const(dig_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
361 extern (C) void fb_exp_monty(scope dig_t* c, scope const(dig_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
362 extern (C) void fb_slv_basic(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
363 extern (C) void fb_slv_quick(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
364 extern (C) void fb_itr_basic(scope dig_t* c, scope const(dig_t)* a, int b) @system @nogc nothrow pure;
365 extern (C) void fb_itr_pre_quick(scope fb_st* t, int b) @system @nogc nothrow pure;
366 extern (C) void fb_itr_quick(scope dig_t* c, scope const(dig_t)* a, scope const(fb_st)* t) @system @nogc nothrow pure;
367 extern (C) void eb_curve_init() @system @nogc nothrow pure;
368 extern (C) void eb_curve_clean() @system @nogc nothrow pure;
369 extern (C) dig_t* eb_curve_get_a() @system @nogc nothrow pure;
370 extern (C) dig_t* eb_curve_get_b() @system @nogc nothrow pure;
371 extern (C) int eb_curve_opt_a() @system @nogc nothrow pure;
372 extern (C) int eb_curve_opt_b() @system @nogc nothrow pure;
373 extern (C) int eb_curve_is_kbltz() @system @nogc nothrow pure;
374 extern (C) void eb_curve_get_gen(scope eb_t* g) @system @nogc nothrow pure;
375 extern (C) const(eb_t)* eb_curve_get_tab() @system @nogc nothrow pure;
376 extern (C) void eb_curve_get_ord(scope bn_st* n) @system @nogc nothrow pure;
377 extern (C) void eb_curve_get_cof(scope bn_st* h) @system @nogc nothrow pure;
378 extern (C) void eb_curve_set(scope const(dig_t)* a, scope const(dig_t)* b, scope const(eb_t)* g, scope const(
379         bn_st)* n, scope const(bn_st)* h) @system @nogc nothrow pure;
380 extern (C) void eb_param_set(int param) @system @nogc nothrow pure;
381 extern (C) int eb_param_set_any() @system @nogc nothrow pure;
382 extern (C) int eb_param_set_any_plain() @system @nogc nothrow pure;
383 extern (C) int eb_param_set_any_kbltz() @system @nogc nothrow pure;
384 extern (C) int eb_param_get() @system @nogc nothrow pure;
385 extern (C) void eb_param_print() @system @nogc nothrow pure;
386 extern (C) int eb_param_level() @system @nogc nothrow pure;
387 extern (C) int eb_is_infty(scope const(eb_t)* p) @system @nogc nothrow pure;
388 extern (C) void eb_set_infty(scope eb_t* p) @system @nogc nothrow pure;
389 extern (C) void eb_copy(scope eb_t* r, scope const(eb_t)* p) @system @nogc nothrow pure;
390 extern (C) int eb_cmp(scope const(eb_t)* p, scope const(eb_t)* q) @system @nogc nothrow pure;
391 extern (C) void eb_rand(scope eb_t* p) @system @nogc nothrow pure;
392 extern (C) void eb_blind(scope eb_t* r, scope const(eb_t)* p) @system @nogc nothrow pure;
393 extern (C) void eb_rhs(scope dig_t* rhs, scope const(dig_t)* p) @system @nogc nothrow pure;
394 extern (C) int eb_on_curve(scope const(eb_t)* p) @system @nogc nothrow pure;
395 extern (C) void eb_tab(scope eb_t* t, scope const(eb_t)* p, int w) @system @nogc nothrow pure;
396 extern (C) void eb_print(scope const(eb_t)* p) @system @nogc nothrow pure;
397 extern (C) size_t eb_size_bin(scope const(eb_t)* a, int pack) @system @nogc nothrow pure;
398 extern (C) void eb_read_bin(scope eb_t* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
399 extern (C) void eb_write_bin(scope ubyte* bin, size_t len, scope const(eb_t)* a, int pack) @system @nogc nothrow pure;
400 extern (C) void eb_neg_basic(scope eb_t* r, scope const(eb_t)* p) @system @nogc nothrow pure;
401 extern (C) void eb_neg_projc(scope eb_t* r, scope const(eb_t)* p) @system @nogc nothrow pure;
402 extern (C) void eb_add_basic(scope eb_t* r, scope const(eb_t)* p, scope const(eb_t)* q) @system @nogc nothrow pure;
403 extern (C) void eb_add_projc(scope eb_t* r, scope const(eb_t)* p, scope const(eb_t)* q) @system @nogc nothrow pure;
404 extern (C) void eb_sub_basic(scope eb_t* r, scope const(eb_t)* p, scope const(eb_t)* q) @system @nogc nothrow pure;
405 extern (C) void eb_sub_projc(scope eb_t* r, scope const(eb_t)* p, scope const(eb_t)* q) @system @nogc nothrow pure;
406 extern (C) void eb_dbl_basic(scope eb_t* r, scope const(eb_t)* p) @system @nogc nothrow pure;
407 extern (C) void eb_dbl_projc(scope eb_t* r, scope const(eb_t)* p) @system @nogc nothrow pure;
408 extern (C) void eb_hlv(scope eb_t* r, scope const(eb_t)* p) @system @nogc nothrow pure;
409 extern (C) void eb_frb(scope eb_t* r, scope const(eb_t)* p) @system @nogc nothrow pure;
410 extern (C) void eb_mul_basic(scope eb_t* r, scope const(eb_t)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
411 extern (C) void eb_mul_lodah(scope eb_t* r, scope const(eb_t)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
412 extern (C) void eb_mul_lwnaf(scope eb_t* r, scope const(eb_t)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
413 extern (C) void eb_mul_rwnaf(scope eb_t* r, scope const(eb_t)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
414 extern (C) void eb_mul_halve(scope eb_t* r, scope const(eb_t)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
415 extern (C) void eb_mul_gen(scope eb_t* r, scope const(bn_st)* k) @system @nogc nothrow pure;
416 extern (C) void eb_mul_dig(scope eb_t* r, scope const(eb_t)* p, const(ulong) k) @system @nogc nothrow pure;
417 extern (C) void eb_mul_pre_basic(scope eb_t* t, scope const(eb_t)* p) @system @nogc nothrow pure;
418 extern (C) void eb_mul_pre_yaowi(scope eb_t* t, scope const(eb_t)* p) @system @nogc nothrow pure;
419 extern (C) void eb_mul_pre_nafwi(scope eb_t* t, scope const(eb_t)* p) @system @nogc nothrow pure;
420 extern (C) void eb_mul_pre_combs(scope eb_t* t, scope const(eb_t)* p) @system @nogc nothrow pure;
421 extern (C) void eb_mul_pre_combd(scope eb_t* t, scope const(eb_t)* p) @system @nogc nothrow pure;
422 extern (C) void eb_mul_pre_lwnaf(scope eb_t* t, scope const(eb_t)* p) @system @nogc nothrow pure;
423 extern (C) void eb_mul_fix_basic(scope eb_t* r, scope const(eb_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
424 extern (C) void eb_mul_fix_yaowi(scope eb_t* r, scope const(eb_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
425 extern (C) void eb_mul_fix_nafwi(scope eb_t* r, scope const(eb_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
426 extern (C) void eb_mul_fix_combs(scope eb_t* r, scope const(eb_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
427 extern (C) void eb_mul_fix_combd(scope eb_t* r, scope const(eb_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
428 extern (C) void eb_mul_fix_lwnaf(scope eb_t* r, scope const(eb_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
429 extern (C) void eb_mul_sim_basic(scope eb_t* r, scope const(eb_t)* p, scope const(bn_st)* k, scope const(
430         eb_t)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
431 extern (C) void eb_mul_sim_trick(scope eb_t* r, scope const(eb_t)* p, scope const(bn_st)* k, scope const(
432         eb_t)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
433 extern (C) void eb_mul_sim_inter(scope eb_t* r, scope const(eb_t)* p, scope const(bn_st)* k, scope const(
434         eb_t)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
435 extern (C) void eb_mul_sim_joint(scope eb_t* r, scope const(eb_t)* p, scope const(bn_st)* k, scope const(
436         eb_t)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
437 extern (C) void eb_mul_sim_gen(scope eb_t* r, scope const(bn_st)* k, scope const(eb_t)* q, scope const(
438         bn_st)* m) @system @nogc nothrow pure;
439 extern (C) void eb_norm(scope eb_t* r, scope const(eb_t)* p) @system @nogc nothrow pure;
440 extern (C) void eb_norm_sim(scope eb_t* r, scope const(eb_t)* t, int n) @system @nogc nothrow pure;
441 extern (C) void eb_map(scope eb_t* p, scope const(ubyte)* msg, size_t len) @system @nogc nothrow pure;
442 extern (C) void eb_pck(scope eb_t* r, scope const(eb_t)* p) @system @nogc nothrow pure;
443 extern (C) int eb_upk(scope eb_t* r, scope const(eb_t)* p) @system @nogc nothrow pure;
444 extern (C) void fp_prime_init() @system @nogc nothrow pure;
445 extern (C) void fp_prime_clean() @system @nogc nothrow pure;
446 extern (C) const(dig_t)* fp_prime_get() @system @nogc nothrow pure;
447 extern (C) const(dig_t)* fp_prime_get_rdc() @system @nogc nothrow pure;
448 extern (C) const(dig_t)* fp_prime_get_conv() @system @nogc nothrow pure;
449 extern (C) const(dig_t)* fp_prime_get_srt() @system @nogc nothrow pure;
450 extern (C) const(dig_t)* fp_prime_get_crt() @system @nogc nothrow pure;
451 extern (C) ulong fp_prime_get_mod8() @system @nogc nothrow pure;
452 extern (C) ulong fp_prime_get_mod18() @system @nogc nothrow pure;
453 extern (C) const(int)* fp_prime_get_sps(scope int* len) @system @nogc nothrow pure;
454 extern (C) int fp_prime_get_qnr() @system @nogc nothrow pure;
455 extern (C) int fp_prime_get_cnr() @system @nogc nothrow pure;
456 extern (C) int fp_prime_get_2ad() @system @nogc nothrow pure;
457 extern (C) int fp_param_get() @system @nogc nothrow pure;
458 extern (C) void fp_prime_set_dense(scope const(bn_st)* p) @system @nogc nothrow pure;
459 extern (C) void fp_prime_set_pmers(scope const(int)* spars, size_t len) @system @nogc nothrow pure;
460 extern (C) void fp_prime_set_pairf(scope const(bn_st)* x, int pairf) @system @nogc nothrow pure;
461 extern (C) void fp_prime_calc() @system @nogc nothrow pure;
462 extern (C) void fp_prime_conv(scope dig_t* c, scope const(bn_st)* a) @system @nogc nothrow pure;
463 extern (C) void fp_prime_conv_dig(scope dig_t* c, ulong a) @system @nogc nothrow pure;
464 extern (C) void fp_prime_back(scope bn_st* c, scope const(dig_t)* a) @system @nogc nothrow pure;
465 extern (C) void fp_param_set(int param) @system @nogc nothrow pure;
466 extern (C) int fp_param_set_any() @system @nogc nothrow pure;
467 extern (C) int fp_param_set_any_dense() @system @nogc nothrow pure;
468 extern (C) int fp_param_set_any_pmers() @system @nogc nothrow pure;
469 extern (C) int fp_param_set_any_tower() @system @nogc nothrow pure;
470 extern (C) int fp_param_set_any_h2adc() @system @nogc nothrow pure;
471 extern (C) void fp_param_print() @system @nogc nothrow pure;
472 extern (C) void fp_prime_get_par(scope bn_st* x) @system @nogc nothrow pure;
473 extern (C) const(int)* fp_prime_get_par_sps(scope int* len) @system @nogc nothrow pure;
474 extern (C) void fp_param_get_sps(scope int* s, scope int* len) @system @nogc nothrow pure;
475 extern (C) void fp_copy(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
476 extern (C) void fp_copy_sec(scope dig_t* c, scope const(dig_t)* a, ulong bit) @system @nogc nothrow pure;
477 extern (C) void fp_zero(scope dig_t* a) @system @nogc nothrow pure;
478 extern (C) int fp_is_zero(scope const(dig_t)* a) @system @nogc nothrow pure;
479 extern (C) int fp_is_even(scope const(dig_t)* a) @system @nogc nothrow pure;
480 extern (C) int fp_get_bit(scope const(dig_t)* a, uint bit) @system @nogc nothrow pure;
481 extern (C) void fp_set_bit(scope dig_t* a, uint bit, int value) @system @nogc nothrow pure;
482 extern (C) void fp_set_dig(scope dig_t* c, ulong a) @system @nogc nothrow pure;
483 extern (C) size_t fp_bits(scope const(dig_t)* a) @system @nogc nothrow pure;
484 extern (C) void fp_rand(scope dig_t* a) @system @nogc nothrow pure;
485 extern (C) void fp_norm(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
486 extern (C) void fp_print(scope const(dig_t)* a) @system @nogc nothrow pure;
487 extern (C) size_t fp_size_str(scope const(dig_t)* a, uint radix) @system @nogc nothrow pure;
488 extern (C) void fp_read_str(scope dig_t* a, scope const(char)* str, size_t len, uint radix) @system @nogc nothrow pure;
489 extern (C) void fp_write_str(scope char* str, size_t len, scope const(dig_t)* a, uint radix) @system @nogc nothrow pure;
490 extern (C) void fp_read_bin(scope dig_t* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
491 extern (C) void fp_write_bin(scope ubyte* bin, size_t len, scope const(dig_t)* a) @system @nogc nothrow pure;
492 extern (C) int fp_cmp(scope const(dig_t)* a, scope const(dig_t)* b) @system @nogc nothrow pure;
493 extern (C) int fp_cmp_dig(scope const(dig_t)* a, ulong b) @system @nogc nothrow pure;
494 extern (C) void fp_add_basic(scope dig_t* c, scope const(dig_t)* a, scope const(dig_t)* b) @system @nogc nothrow pure;
495 extern (C) void fp_add_integ(scope dig_t* c, scope const(dig_t)* a, scope const(dig_t)* b) @system @nogc nothrow pure;
496 extern (C) void fp_add_dig(scope dig_t* c, scope const(dig_t)* a, ulong b) @system @nogc nothrow pure;
497 extern (C) void fp_sub_basic(scope dig_t* c, scope const(dig_t)* a, scope const(dig_t)* b) @system @nogc nothrow pure;
498 extern (C) void fp_sub_integ(scope dig_t* c, scope const(dig_t)* a, scope const(dig_t)* b) @system @nogc nothrow pure;
499 extern (C) void fp_sub_dig(scope dig_t* c, scope const(dig_t)* a, ulong b) @system @nogc nothrow pure;
500 extern (C) void fp_neg_basic(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
501 extern (C) void fp_neg_integ(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
502 extern (C) void fp_dbl_basic(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
503 extern (C) void fp_dbl_integ(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
504 extern (C) void fp_hlv_basic(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
505 extern (C) void fp_hlv_integ(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
506 extern (C) void fp_trs(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
507 extern (C) void fp_mul_basic(scope dig_t* c, scope const(dig_t)* a, scope const(dig_t)* b) @system @nogc nothrow pure;
508 extern (C) void fp_mul_comba(scope dig_t* c, scope const(dig_t)* a, scope const(dig_t)* b) @system @nogc nothrow pure;
509 extern (C) void fp_mul_integ(scope dig_t* c, scope const(dig_t)* a, scope const(dig_t)* b) @system @nogc nothrow pure;
510 extern (C) void fp_mul_karat(scope dig_t* c, scope const(dig_t)* a, scope const(dig_t)* b) @system @nogc nothrow pure;
511 extern (C) void fp_mul_dig(scope dig_t* c, scope const(dig_t)* a, ulong b) @system @nogc nothrow pure;
512 extern (C) void fp_sqr_basic(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
513 extern (C) void fp_sqr_comba(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
514 extern (C) void fp_sqr_integ(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
515 extern (C) void fp_sqr_karat(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
516 extern (C) void fp_lsh(scope dig_t* c, scope const(dig_t)* a, uint bits) @system @nogc nothrow pure;
517 extern (C) void fp_rsh(scope dig_t* c, scope const(dig_t)* a, uint bits) @system @nogc nothrow pure;
518 extern (C) void fp_rdc_basic(scope dig_t* c, scope dig_t* a) @system @nogc nothrow pure;
519 extern (C) void fp_rdc_monty_basic(scope dig_t* c, scope dig_t* a) @system @nogc nothrow pure;
520 extern (C) void fp_rdc_monty_comba(scope dig_t* c, scope dig_t* a) @system @nogc nothrow pure;
521 extern (C) void fp_rdc_quick(scope dig_t* c, scope dig_t* a) @system @nogc nothrow pure;
522 extern (C) void fp_inv_basic(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
523 extern (C) void fp_inv_binar(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
524 extern (C) void fp_inv_monty(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
525 extern (C) void fp_inv_exgcd(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
526 extern (C) void fp_inv_divst(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
527 extern (C) void fp_inv_jmpds(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
528 extern (C) void fp_inv_lower(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
529 extern (C) void fp_inv_sim(scope fp_t* c, scope const(fp_t)* a, int n) @system @nogc nothrow pure;
530 extern (C) int fp_smb_basic(scope const(dig_t)* a) @system @nogc nothrow pure;
531 extern (C) int fp_smb_binar(scope const(dig_t)* a) @system @nogc nothrow pure;
532 extern (C) int fp_smb_divst(scope const(dig_t)* a) @system @nogc nothrow pure;
533 extern (C) int fp_smb_jmpds(scope const(dig_t)* a) @system @nogc nothrow pure;
534 extern (C) int fp_smb_lower(scope const(dig_t)* a) @system @nogc nothrow pure;
535 extern (C) void fp_exp_basic(scope dig_t* c, scope const(dig_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
536 extern (C) void fp_exp_slide(scope dig_t* c, scope const(dig_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
537 extern (C) void fp_exp_monty(scope dig_t* c, scope const(dig_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
538 extern (C) void fp_exp_dig(scope dig_t* c, scope const(dig_t)* a, ulong b) @system @nogc nothrow pure;
539 extern (C) int fp_is_sqr(scope const(dig_t)* a) @system @nogc nothrow pure;
540 extern (C) int fp_srt(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
541 extern (C) int fp_is_cub(scope const(dig_t)* a) @system @nogc nothrow pure;
542 extern (C) int fp_crt(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
543 extern (C) void fp2_field_init() @system @nogc nothrow pure;
544 extern (C) int fp2_field_get_qnr() @system @nogc nothrow pure;
545 extern (C) void fp2_copy(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
546 extern (C) void fp2_copy_sec(scope fp_t* c, scope const(fp_t)* a, ulong bit) @system @nogc nothrow pure;
547 extern (C) void fp2_zero(scope fp_t* a) @system @nogc nothrow pure;
548 extern (C) int fp2_is_zero(scope const(fp_t)* a) @system @nogc nothrow pure;
549 extern (C) void fp2_rand(scope fp_t* a) @system @nogc nothrow pure;
550 extern (C) void fp2_print(scope const(fp_t)* a) @system @nogc nothrow pure;
551 extern (C) int fp2_size_bin(scope const(fp_t)* a, int pack) @system @nogc nothrow pure;
552 extern (C) void fp2_read_bin(scope fp_t* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
553 extern (C) void fp2_write_bin(scope ubyte* bin, size_t len, scope const(fp_t)* a, int pack) @system @nogc nothrow pure;
554 extern (C) int fp2_cmp(scope const(fp_t)* a, scope const(fp_t)* b) @system @nogc nothrow pure;
555 extern (C) int fp2_cmp_dig(scope const(fp_t)* a, const(ulong) b) @system @nogc nothrow pure;
556 extern (C) void fp2_set_dig(scope fp_t* a, const(ulong) b) @system @nogc nothrow pure;
557 extern (C) void fp2_add_basic(scope fp_t* c, scope const(fp_t)* a, scope const(fp_t)* b) @system @nogc nothrow pure;
558 extern (C) void fp2_add_integ(scope fp_t* c, scope const(fp_t)* a, scope const(fp_t)* b) @system @nogc nothrow pure;
559 extern (C) void fp2_add_dig(scope fp_t* c, scope const(fp_t)* a, ulong b) @system @nogc nothrow pure;
560 extern (C) void fp2_sub_basic(scope fp_t* c, scope const(fp_t)* a, scope const(fp_t)* b) @system @nogc nothrow pure;
561 extern (C) void fp2_sub_integ(scope fp_t* c, scope const(fp_t)* a, scope const(fp_t)* b) @system @nogc nothrow pure;
562 extern (C) void fp2_sub_dig(scope fp_t* c, scope const(fp_t)* a, ulong b) @system @nogc nothrow pure;
563 extern (C) void fp2_neg(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
564 extern (C) void fp2_dbl_basic(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
565 extern (C) void fp2_dbl_integ(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
566 extern (C) void fp2_mul_basic(scope fp_t* c, scope const(fp_t)* a, scope const(fp_t)* b) @system @nogc nothrow pure;
567 extern (C) void fp2_mul_integ(scope fp_t* c, scope const(fp_t)* a, scope const(fp_t)* b) @system @nogc nothrow pure;
568 extern (C) void fp2_mul_art(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
569 extern (C) void fp2_mul_nor_basic(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
570 extern (C) void fp2_mul_nor_integ(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
571 extern (C) void fp2_mul_frb(scope fp_t* c, scope const(fp_t)* a, int i, int j) @system @nogc nothrow pure;
572 extern (C) void fp2_mul_dig(scope fp_t* c, scope const(fp_t)* a, ulong b) @system @nogc nothrow pure;
573 extern (C) void fp2_sqr_basic(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
574 extern (C) void fp2_sqr_integ(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
575 extern (C) void fp2_inv(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
576 extern (C) void fp2_inv_cyc(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
577 extern (C) void fp2_inv_sim(scope fp2_t* c, scope const(fp2_t)* a, int n) @system @nogc nothrow pure;
578 extern (C) int fp2_test_cyc(scope const(fp_t)* a) @system @nogc nothrow pure;
579 extern (C) void fp2_conv_cyc(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
580 extern (C) void fp2_exp(scope fp_t* c, scope const(fp_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
581 extern (C) void fp2_exp_dig(scope fp_t* c, scope const(fp_t)* a, ulong b) @system @nogc nothrow pure;
582 extern (C) void fp2_exp_cyc(scope fp_t* c, scope const(fp_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
583 extern (C) void fp2_exp_cyc_sim(scope fp_t* e, scope const(fp_t)* a, scope const(bn_st)* b, scope const(
584         fp_t)* c, scope const(bn_st)* d) @system @nogc nothrow pure;
585 extern (C) void fp2_frb(scope fp_t* c, scope const(fp_t)* a, int i) @system @nogc nothrow pure;
586 extern (C) int fp2_is_sqr(scope const(fp_t)* a) @system @nogc nothrow pure;
587 extern (C) int fp2_srt(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
588 extern (C) void fp2_pck(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
589 extern (C) int fp2_upk(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
590 extern (C) void fp3_field_init() @system @nogc nothrow pure;
591 extern (C) int fp3_field_get_cnr() @system @nogc nothrow pure;
592 extern (C) void fp3_copy(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
593 extern (C) void fp3_copy_sec(scope fp_t* c, scope const(fp_t)* a, ulong bit) @system @nogc nothrow pure;
594 extern (C) void fp3_zero(scope fp_t* a) @system @nogc nothrow pure;
595 extern (C) int fp3_is_zero(scope const(fp_t)* a) @system @nogc nothrow pure;
596 extern (C) void fp3_rand(scope fp_t* a) @system @nogc nothrow pure;
597 extern (C) void fp3_print(scope const(fp_t)* a) @system @nogc nothrow pure;
598 extern (C) int fp3_size_bin(scope const(fp_t)* a) @system @nogc nothrow pure;
599 extern (C) void fp3_read_bin(scope fp_t* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
600 extern (C) void fp3_write_bin(scope ubyte* bin, size_t len, scope const(fp_t)* a) @system @nogc nothrow pure;
601 extern (C) int fp3_cmp(scope const(fp_t)* a, scope const(fp_t)* b) @system @nogc nothrow pure;
602 extern (C) int fp3_cmp_dig(scope const(fp_t)* a, const(ulong) b) @system @nogc nothrow pure;
603 extern (C) void fp3_set_dig(scope fp_t* a, const(ulong) b) @system @nogc nothrow pure;
604 extern (C) void fp3_add_basic(scope fp_t* c, scope const(fp_t)* a, scope const(fp_t)* b) @system @nogc nothrow pure;
605 extern (C) void fp3_add_integ(scope fp_t* c, scope const(fp_t)* a, scope const(fp_t)* b) @system @nogc nothrow pure;
606 extern (C) void fp3_add_dig(scope fp_t* c, scope const(fp_t)* a, ulong b) @system @nogc nothrow pure;
607 extern (C) void fp3_sub_basic(scope fp_t* c, scope const(fp_t)* a, scope const(fp_t)* b) @system @nogc nothrow pure;
608 extern (C) void fp3_sub_integ(scope fp_t* c, scope const(fp_t)* a, scope const(fp_t)* b) @system @nogc nothrow pure;
609 extern (C) void fp3_sub_dig(scope fp_t* c, scope const(fp_t)* a, ulong b) @system @nogc nothrow pure;
610 extern (C) void fp3_neg(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
611 extern (C) void fp3_dbl_basic(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
612 extern (C) void fp3_dbl_integ(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
613 extern (C) void fp3_mul_basic(scope fp_t* c, scope const(fp_t)* a, scope const(fp_t)* b) @system @nogc nothrow pure;
614 extern (C) void fp3_mul_integ(scope fp_t* c, scope const(fp_t)* a, scope const(fp_t)* b) @system @nogc nothrow pure;
615 extern (C) void fp3_mul_art(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
616 extern (C) void fp3_mul_nor(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
617 extern (C) void fp3_mul_frb(scope fp_t* c, scope const(fp_t)* a, int i, int j) @system @nogc nothrow pure;
618 extern (C) void fp3_mul_dig(scope fp_t* c, scope const(fp_t)* a, ulong b) @system @nogc nothrow pure;
619 extern (C) void fp3_sqr_basic(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
620 extern (C) void fp3_sqr_integ(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
621 extern (C) void fp3_inv(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
622 extern (C) void fp3_inv_sim(scope fp3_t* c, scope const(fp3_t)* a, int n) @system @nogc nothrow pure;
623 extern (C) void fp3_exp(scope fp_t* c, scope const(fp_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
624 extern (C) void fp3_frb(scope fp_t* c, scope const(fp_t)* a, int i) @system @nogc nothrow pure;
625 extern (C) int fp3_is_sqr(scope const(fp_t)* a) @system @nogc nothrow pure;
626 extern (C) int fp3_srt(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
627 extern (C) void fp4_field_init() @system @nogc nothrow pure;
628 extern (C) void fp4_copy(scope fp2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
629 extern (C) void fp4_copy_sec(scope fp2_t* c, scope const(fp2_t)* a, ulong bit) @system @nogc nothrow pure;
630 extern (C) void fp4_zero(scope fp2_t* a) @system @nogc nothrow pure;
631 extern (C) int fp4_is_zero(scope const(fp2_t)* a) @system @nogc nothrow pure;
632 extern (C) void fp4_rand(scope fp2_t* a) @system @nogc nothrow pure;
633 extern (C) void fp4_print(scope const(fp2_t)* a) @system @nogc nothrow pure;
634 extern (C) int fp4_size_bin(scope const(fp2_t)* a) @system @nogc nothrow pure;
635 extern (C) void fp4_read_bin(scope fp2_t* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
636 extern (C) void fp4_write_bin(scope ubyte* bin, size_t len, scope const(fp2_t)* a) @system @nogc nothrow pure;
637 extern (C) int fp4_cmp(scope const(fp2_t)* a, scope const(fp2_t)* b) @system @nogc nothrow pure;
638 extern (C) int fp4_cmp_dig(scope const(fp2_t)* a, const(ulong) b) @system @nogc nothrow pure;
639 extern (C) void fp4_set_dig(scope fp2_t* a, const(ulong) b) @system @nogc nothrow pure;
640 extern (C) void fp4_add(scope fp2_t* c, scope const(fp2_t)* a, scope const(fp2_t)* b) @system @nogc nothrow pure;
641 extern (C) void fp4_add_dig(scope fp2_t* c, scope const(fp2_t)* a, ulong b) @system @nogc nothrow pure;
642 extern (C) void fp4_sub(scope fp2_t* c, scope const(fp2_t)* a, scope const(fp2_t)* b) @system @nogc nothrow pure;
643 extern (C) void fp4_sub_dig(scope fp2_t* c, scope const(fp2_t)* a, ulong b) @system @nogc nothrow pure;
644 extern (C) void fp4_neg(scope fp2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
645 extern (C) void fp4_dbl(scope fp2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
646 extern (C) void fp4_mul_unr(scope dv2_t* c, scope const(fp2_t)* a, scope const(fp2_t)* b) @system @nogc nothrow pure;
647 extern (C) void fp4_mul_basic(scope fp2_t* c, scope const(fp2_t)* a, scope const(fp2_t)* b) @system @nogc nothrow pure;
648 extern (C) void fp4_mul_lazyr(scope fp2_t* c, scope const(fp2_t)* a, scope const(fp2_t)* b) @system @nogc nothrow pure;
649 extern (C) void fp4_mul_art(scope fp2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
650 extern (C) void fp4_mul_frb(scope fp2_t* c, scope const(fp2_t)* a, int i, int j) @system @nogc nothrow pure;
651 extern (C) void fp4_mul_dig(scope fp2_t* c, scope const(fp2_t)* a, ulong b) @system @nogc nothrow pure;
652 extern (C) void fp4_mul_dxs(scope fp2_t* c, scope const(fp2_t)* a, scope const(fp2_t)* b) @system @nogc nothrow pure;
653 extern (C) void fp4_sqr_unr(scope dv2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
654 extern (C) void fp4_sqr_basic(scope fp2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
655 extern (C) void fp4_sqr_lazyr(scope fp2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
656 extern (C) void fp4_inv(scope fp2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
657 extern (C) void fp4_inv_sim(scope fp4_t* c, scope const(fp4_t)* a, int n) @system @nogc nothrow pure;
658 extern (C) void fp4_inv_cyc(scope fp2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
659 extern (C) void fp4_exp(scope fp2_t* c, scope const(fp2_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
660 extern (C) void fp4_frb(scope fp2_t* c, scope const(fp2_t)* a, int i) @system @nogc nothrow pure;
661 extern (C) int fp4_is_sqr(scope const(fp2_t)* a) @system @nogc nothrow pure;
662 extern (C) int fp4_srt(scope fp2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
663 extern (C) void fp6_copy(scope fp2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
664 extern (C) void fp6_copy_sec(scope fp2_t* c, scope const(fp2_t)* a, ulong bit) @system @nogc nothrow pure;
665 extern (C) void fp6_zero(scope fp2_t* a) @system @nogc nothrow pure;
666 extern (C) int fp6_is_zero(scope const(fp2_t)* a) @system @nogc nothrow pure;
667 extern (C) void fp6_rand(scope fp2_t* a) @system @nogc nothrow pure;
668 extern (C) void fp6_print(scope const(fp2_t)* a) @system @nogc nothrow pure;
669 extern (C) int fp6_size_bin(scope const(fp2_t)* a) @system @nogc nothrow pure;
670 extern (C) void fp6_read_bin(scope fp2_t* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
671 extern (C) void fp6_write_bin(scope ubyte* bin, size_t len, scope const(fp2_t)* a) @system @nogc nothrow pure;
672 extern (C) int fp6_cmp(scope const(fp2_t)* a, scope const(fp2_t)* b) @system @nogc nothrow pure;
673 extern (C) int fp6_cmp_dig(scope const(fp2_t)* a, const(ulong) b) @system @nogc nothrow pure;
674 extern (C) void fp6_set_dig(scope fp2_t* a, const(ulong) b) @system @nogc nothrow pure;
675 extern (C) void fp6_add(scope fp2_t* c, scope const(fp2_t)* a, scope const(fp2_t)* b) @system @nogc nothrow pure;
676 extern (C) void fp6_sub(scope fp2_t* c, scope const(fp2_t)* a, scope const(fp2_t)* b) @system @nogc nothrow pure;
677 extern (C) void fp6_neg(scope fp2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
678 extern (C) void fp6_dbl(scope fp2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
679 extern (C) void fp6_mul_unr(scope dv2_t* c, scope const(fp2_t)* a, scope const(fp2_t)* b) @system @nogc nothrow pure;
680 extern (C) void fp6_mul_basic(scope fp2_t* c, scope const(fp2_t)* a, scope const(fp2_t)* b) @system @nogc nothrow pure;
681 extern (C) void fp6_mul_lazyr(scope fp2_t* c, scope const(fp2_t)* a, scope const(fp2_t)* b) @system @nogc nothrow pure;
682 extern (C) void fp6_mul_art(scope fp2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
683 extern (C) void fp6_mul_dxs(scope fp2_t* c, scope const(fp2_t)* a, scope const(fp2_t)* b) @system @nogc nothrow pure;
684 extern (C) void fp6_sqr_unr(scope dv2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
685 extern (C) void fp6_sqr_basic(scope fp2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
686 extern (C) void fp6_sqr_lazyr(scope fp2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
687 extern (C) void fp6_inv(scope fp2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
688 extern (C) void fp6_exp(scope fp2_t* c, scope const(fp2_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
689 extern (C) void fp6_frb(scope fp2_t* c, scope const(fp2_t)* a, int i) @system @nogc nothrow pure;
690 extern (C) void fp8_field_init() @system @nogc nothrow pure;
691 extern (C) void fp8_copy(scope fp4_t* c, scope const(fp4_t)* a) @system @nogc nothrow pure;
692 extern (C) void fp8_copy_sec(scope fp4_t* c, scope const(fp4_t)* a, ulong bit) @system @nogc nothrow pure;
693 extern (C) void fp8_zero(scope fp4_t* a) @system @nogc nothrow pure;
694 extern (C) int fp8_is_zero(scope const(fp4_t)* a) @system @nogc nothrow pure;
695 extern (C) void fp8_rand(scope fp4_t* a) @system @nogc nothrow pure;
696 extern (C) void fp8_print(scope const(fp4_t)* a) @system @nogc nothrow pure;
697 extern (C) int fp8_size_bin(scope const(fp4_t)* a, int pack) @system @nogc nothrow pure;
698 extern (C) void fp8_read_bin(scope fp4_t* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
699 extern (C) void fp8_write_bin(scope ubyte* bin, size_t len, scope const(fp4_t)* a, int pack) @system @nogc nothrow pure;
700 extern (C) int fp8_cmp(scope const(fp4_t)* a, scope const(fp4_t)* b) @system @nogc nothrow pure;
701 extern (C) int fp8_cmp_dig(scope const(fp4_t)* a, const(ulong) b) @system @nogc nothrow pure;
702 extern (C) void fp8_set_dig(scope fp4_t* a, const(ulong) b) @system @nogc nothrow pure;
703 extern (C) void fp8_add(scope fp4_t* c, scope const(fp4_t)* a, scope const(fp4_t)* b) @system @nogc nothrow pure;
704 extern (C) void fp8_sub(scope fp4_t* c, scope const(fp4_t)* a, scope const(fp4_t)* b) @system @nogc nothrow pure;
705 extern (C) void fp8_neg(scope fp4_t* c, scope const(fp4_t)* a) @system @nogc nothrow pure;
706 extern (C) void fp8_dbl(scope fp4_t* c, scope const(fp4_t)* a) @system @nogc nothrow pure;
707 extern (C) void fp8_mul_unr(scope dv4_t* c, scope const(fp4_t)* a, scope const(fp4_t)* b) @system @nogc nothrow pure;
708 extern (C) void fp8_mul_basic(scope fp4_t* c, scope const(fp4_t)* a, scope const(fp4_t)* b) @system @nogc nothrow pure;
709 extern (C) void fp8_mul_lazyr(scope fp4_t* c, scope const(fp4_t)* a, scope const(fp4_t)* b) @system @nogc nothrow pure;
710 extern (C) void fp8_mul_art(scope fp4_t* c, scope const(fp4_t)* a) @system @nogc nothrow pure;
711 extern (C) void fp8_mul_frb(scope fp4_t* c, scope const(fp4_t)* a, int i, int j) @system @nogc nothrow pure;
712 extern (C) void fp8_mul_dig(scope fp4_t* c, scope const(fp4_t)* a, ulong b) @system @nogc nothrow pure;
713 extern (C) void fp8_mul_dxs(scope fp4_t* c, scope const(fp4_t)* a, scope const(fp4_t)* b) @system @nogc nothrow pure;
714 extern (C) void fp8_sqr_unr(scope dv4_t* c, scope const(fp4_t)* a) @system @nogc nothrow pure;
715 extern (C) void fp8_sqr_basic(scope fp4_t* c, scope const(fp4_t)* a) @system @nogc nothrow pure;
716 extern (C) void fp8_sqr_lazyr(scope fp4_t* c, scope const(fp4_t)* a) @system @nogc nothrow pure;
717 extern (C) void fp8_sqr_cyc(scope fp4_t* c, scope const(fp4_t)* a) @system @nogc nothrow pure;
718 extern (C) void fp8_inv(scope fp4_t* c, scope const(fp4_t)* a) @system @nogc nothrow pure;
719 extern (C) void fp8_inv_cyc(scope fp4_t* c, scope const(fp4_t)* a) @system @nogc nothrow pure;
720 extern (C) void fp8_inv_sim(scope fp8_t* c, scope const(fp8_t)* a, int n) @system @nogc nothrow pure;
721 extern (C) int fp8_test_cyc(scope const(fp4_t)* a) @system @nogc nothrow pure;
722 extern (C) void fp8_conv_cyc(scope fp4_t* c, scope const(fp4_t)* a) @system @nogc nothrow pure;
723 extern (C) void fp8_exp(scope fp4_t* c, scope const(fp4_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
724 extern (C) void fp8_exp_dig(scope fp4_t* c, scope const(fp4_t)* a, ulong b) @system @nogc nothrow pure;
725 extern (C) void fp8_exp_cyc(scope fp4_t* c, scope const(fp4_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
726 extern (C) void fp8_exp_cyc_sim(scope fp4_t* e, scope const(fp4_t)* a, scope const(bn_st)* b, scope const(
727         fp4_t)* c, scope const(bn_st)* d) @system @nogc nothrow pure;
728 extern (C) void fp8_frb(scope fp4_t* c, scope const(fp4_t)* a, int i) @system @nogc nothrow pure;
729 extern (C) int fp8_is_sqr(scope const(fp4_t)* a) @system @nogc nothrow pure;
730 extern (C) int fp8_srt(scope fp4_t* c, scope const(fp4_t)* a) @system @nogc nothrow pure;
731 extern (C) void fp9_copy(scope fp3_t* c, scope const(fp3_t)* a) @system @nogc nothrow pure;
732 extern (C) void fp9_copy_sec(scope fp3_t* c, scope const(fp3_t)* a, ulong bit) @system @nogc nothrow pure;
733 extern (C) void fp9_zero(scope fp3_t* a) @system @nogc nothrow pure;
734 extern (C) int fp9_is_zero(scope const(fp3_t)* a) @system @nogc nothrow pure;
735 extern (C) void fp9_rand(scope fp3_t* a) @system @nogc nothrow pure;
736 extern (C) void fp9_print(scope const(fp3_t)* a) @system @nogc nothrow pure;
737 extern (C) int fp9_size_bin(scope const(fp3_t)* a) @system @nogc nothrow pure;
738 extern (C) void fp9_read_bin(scope fp3_t* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
739 extern (C) void fp9_write_bin(scope ubyte* bin, size_t len, scope const(fp3_t)* a) @system @nogc nothrow pure;
740 extern (C) int fp9_cmp(scope const(fp3_t)* a, scope const(fp3_t)* b) @system @nogc nothrow pure;
741 extern (C) int fp9_cmp_dig(scope const(fp3_t)* a, const(ulong) b) @system @nogc nothrow pure;
742 extern (C) void fp9_set_dig(scope fp3_t* a, const(ulong) b) @system @nogc nothrow pure;
743 extern (C) void fp9_add(scope fp3_t* c, scope const(fp3_t)* a, scope const(fp3_t)* b) @system @nogc nothrow pure;
744 extern (C) void fp9_sub(scope fp3_t* c, scope const(fp3_t)* a, scope const(fp3_t)* b) @system @nogc nothrow pure;
745 extern (C) void fp9_neg(scope fp3_t* c, scope const(fp3_t)* a) @system @nogc nothrow pure;
746 extern (C) void fp9_dbl(scope fp3_t* c, scope const(fp3_t)* a) @system @nogc nothrow pure;
747 extern (C) void fp9_mul_unr(scope dv3_t* c, scope const(fp3_t)* a, scope const(fp3_t)* b) @system @nogc nothrow pure;
748 extern (C) void fp9_mul_basic(scope fp3_t* c, scope const(fp3_t)* a, scope const(fp3_t)* b) @system @nogc nothrow pure;
749 extern (C) void fp9_mul_lazyr(scope fp3_t* c, scope const(fp3_t)* a, scope const(fp3_t)* b) @system @nogc nothrow pure;
750 extern (C) void fp9_mul_art(scope fp3_t* c, scope const(fp3_t)* a) @system @nogc nothrow pure;
751 extern (C) void fp9_mul_dxs(scope fp3_t* c, scope const(fp3_t)* a, scope const(fp3_t)* b) @system @nogc nothrow pure;
752 extern (C) void fp9_sqr_unr(scope dv3_t* c, scope const(fp3_t)* a) @system @nogc nothrow pure;
753 extern (C) void fp9_sqr_basic(scope fp3_t* c, scope const(fp3_t)* a) @system @nogc nothrow pure;
754 extern (C) void fp9_sqr_lazyr(scope fp3_t* c, scope const(fp3_t)* a) @system @nogc nothrow pure;
755 extern (C) void fp9_inv(scope fp3_t* c, scope const(fp3_t)* a) @system @nogc nothrow pure;
756 extern (C) void fp9_inv_sim(scope fp9_t* c, scope const(fp9_t)* a, int n) @system @nogc nothrow pure;
757 extern (C) void fp9_exp(scope fp3_t* c, scope const(fp3_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
758 extern (C) void fp9_frb(scope fp3_t* c, scope const(fp3_t)* a, int i) @system @nogc nothrow pure;
759 extern (C) void fp12_copy(scope fp6_t* c, scope const(fp6_t)* a) @system @nogc nothrow pure;
760 extern (C) void fp12_copy_sec(scope fp6_t* c, scope const(fp6_t)* a, ulong bit) @system @nogc nothrow pure;
761 extern (C) void fp12_zero(scope fp6_t* a) @system @nogc nothrow pure;
762 extern (C) int fp12_is_zero(scope const(fp6_t)* a) @system @nogc nothrow pure;
763 extern (C) void fp12_rand(scope fp6_t* a) @system @nogc nothrow pure;
764 extern (C) void fp12_print(scope const(fp6_t)* a) @system @nogc nothrow pure;
765 extern (C) int fp12_size_bin(scope const(fp6_t)* a, int pack) @system @nogc nothrow pure;
766 extern (C) void fp12_read_bin(scope fp6_t* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
767 extern (C) void fp12_write_bin(scope ubyte* bin, size_t len, scope const(fp6_t)* a, int pack) @system @nogc nothrow pure;
768 extern (C) int fp12_cmp(scope const(fp6_t)* a, scope const(fp6_t)* b) @system @nogc nothrow pure;
769 extern (C) int fp12_cmp_dig(scope const(fp6_t)* a, const(ulong) b) @system @nogc nothrow pure;
770 extern (C) void fp12_set_dig(scope fp6_t* a, const(ulong) b) @system @nogc nothrow pure;
771 extern (C) void fp12_add(scope fp6_t* c, scope const(fp6_t)* a, scope const(fp6_t)* b) @system @nogc nothrow pure;
772 extern (C) void fp12_sub(scope fp6_t* c, scope const(fp6_t)* a, scope const(fp6_t)* b) @system @nogc nothrow pure;
773 extern (C) void fp12_neg(scope fp6_t* c, scope const(fp6_t)* a) @system @nogc nothrow pure;
774 extern (C) void fp12_dbl(scope fp6_t* c, scope const(fp6_t)* a) @system @nogc nothrow pure;
775 extern (C) void fp12_mul_unr(scope dv6_t* c, scope const(fp6_t)* a, scope const(fp6_t)* b) @system @nogc nothrow pure;
776 extern (C) void fp12_mul_basic(scope fp6_t* c, scope const(fp6_t)* a, scope const(fp6_t)* b) @system @nogc nothrow pure;
777 extern (C) void fp12_mul_lazyr(scope fp6_t* c, scope const(fp6_t)* a, scope const(fp6_t)* b) @system @nogc nothrow pure;
778 extern (C) void fp12_mul_art(scope fp6_t* c, scope const(fp6_t)* a) @system @nogc nothrow pure;
779 extern (C) void fp12_mul_dxs_basic(scope fp6_t* c, scope const(fp6_t)* a, scope const(fp6_t)* b) @system @nogc nothrow pure;
780 extern (C) void fp12_mul_dxs_lazyr(scope fp6_t* c, scope const(fp6_t)* a, scope const(fp6_t)* b) @system @nogc nothrow pure;
781 extern (C) void fp12_sqr_unr(scope dv6_t* c, scope const(fp6_t)* a) @system @nogc nothrow pure;
782 extern (C) void fp12_sqr_basic(scope fp6_t* c, scope const(fp6_t)* a) @system @nogc nothrow pure;
783 extern (C) void fp12_sqr_lazyr(scope fp6_t* c, scope const(fp6_t)* a) @system @nogc nothrow pure;
784 extern (C) void fp12_sqr_cyc_basic(scope fp6_t* c, scope const(fp6_t)* a) @system @nogc nothrow pure;
785 extern (C) void fp12_sqr_cyc_lazyr(scope fp6_t* c, scope const(fp6_t)* a) @system @nogc nothrow pure;
786 extern (C) void fp12_sqr_pck_basic(scope fp6_t* c, scope const(fp6_t)* a) @system @nogc nothrow pure;
787 extern (C) void fp12_sqr_pck_lazyr(scope fp6_t* c, scope const(fp6_t)* a) @system @nogc nothrow pure;
788 extern (C) int fp12_test_cyc(scope const(fp6_t)* a) @system @nogc nothrow pure;
789 extern (C) void fp12_conv_cyc(scope fp6_t* c, scope const(fp6_t)* a) @system @nogc nothrow pure;
790 extern (C) void fp12_back_cyc(scope fp6_t* c, scope const(fp6_t)* a) @system @nogc nothrow pure;
791 extern (C) void fp12_back_cyc_sim(scope fp12_t* c, scope const(fp12_t)* a, int n) @system @nogc nothrow pure;
792 extern (C) void fp12_inv(scope fp6_t* c, scope const(fp6_t)* a) @system @nogc nothrow pure;
793 extern (C) void fp12_inv_cyc(scope fp6_t* c, scope const(fp6_t)* a) @system @nogc nothrow pure;
794 extern (C) void fp12_frb(scope fp6_t* c, scope const(fp6_t)* a, int i) @system @nogc nothrow pure;
795 extern (C) void fp12_exp(scope fp6_t* c, scope const(fp6_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
796 extern (C) void fp12_exp_dig(scope fp6_t* c, scope const(fp6_t)* a, ulong b) @system @nogc nothrow pure;
797 extern (C) void fp12_exp_cyc(scope fp6_t* c, scope const(fp6_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
798 extern (C) void fp12_exp_cyc_gls(scope fp6_t* c, scope const(fp6_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
799 extern (C) void fp12_exp_cyc_sim(scope fp6_t* e, scope const(fp6_t)* a, scope const(bn_st)* b, scope const(
800         fp6_t)* c, scope const(bn_st)* d) @system @nogc nothrow pure;
801 extern (C) void fp12_exp_cyc_sps(scope fp6_t* c, scope const(fp6_t)* a, scope const(int)* b, size_t l, int s) @system @nogc nothrow pure;
802 extern (C) void fp12_pck(scope fp6_t* c, scope const(fp6_t)* a) @system @nogc nothrow pure;
803 extern (C) int fp12_upk(scope fp6_t* c, scope const(fp6_t)* a) @system @nogc nothrow pure;
804 extern (C) void fp12_pck_max(scope fp6_t* c, scope const(fp6_t)* a) @system @nogc nothrow pure;
805 extern (C) int fp12_upk_max(scope fp6_t* c, scope const(fp6_t)* a) @system @nogc nothrow pure;
806 extern (C) void fp16_field_init() @system @nogc nothrow pure;
807 extern (C) void fp16_copy(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
808 extern (C) void fp16_copy_sec(scope fp8_t* c, scope const(fp8_t)* a, ulong bit) @system @nogc nothrow pure;
809 extern (C) void fp16_zero(scope fp8_t* a) @system @nogc nothrow pure;
810 extern (C) int fp16_is_zero(scope const(fp8_t)* a) @system @nogc nothrow pure;
811 extern (C) void fp16_rand(scope fp8_t* a) @system @nogc nothrow pure;
812 extern (C) void fp16_print(scope const(fp8_t)* a) @system @nogc nothrow pure;
813 extern (C) int fp16_size_bin(scope const(fp8_t)* a, int pack) @system @nogc nothrow pure;
814 extern (C) void fp16_read_bin(scope fp8_t* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
815 extern (C) void fp16_write_bin(scope ubyte* bin, size_t len, scope const(fp8_t)* a, int pack) @system @nogc nothrow pure;
816 extern (C) int fp16_cmp(scope const(fp8_t)* a, scope const(fp8_t)* b) @system @nogc nothrow pure;
817 extern (C) int fp16_cmp_dig(scope const(fp8_t)* a, const(ulong) b) @system @nogc nothrow pure;
818 extern (C) void fp16_set_dig(scope fp8_t* a, const(ulong) b) @system @nogc nothrow pure;
819 extern (C) void fp16_add(scope fp8_t* c, scope const(fp8_t)* a, scope const(fp8_t)* b) @system @nogc nothrow pure;
820 extern (C) void fp16_sub(scope fp8_t* c, scope const(fp8_t)* a, scope const(fp8_t)* b) @system @nogc nothrow pure;
821 extern (C) void fp16_neg(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
822 extern (C) void fp16_dbl(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
823 extern (C) void fp16_mul_unr(scope dv8_t* c, scope const(fp8_t)* a, scope const(fp8_t)* b) @system @nogc nothrow pure;
824 extern (C) void fp16_mul_basic(scope fp8_t* c, scope const(fp8_t)* a, scope const(fp8_t)* b) @system @nogc nothrow pure;
825 extern (C) void fp16_mul_lazyr(scope fp8_t* c, scope const(fp8_t)* a, scope const(fp8_t)* b) @system @nogc nothrow pure;
826 extern (C) void fp16_mul_art(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
827 extern (C) void fp16_mul_frb(scope fp8_t* c, scope const(fp8_t)* a, int i, int j) @system @nogc nothrow pure;
828 extern (C) void fp16_mul_dxs_lazyr(scope fp8_t* c, scope const(fp8_t)* a, scope const(fp8_t)* b) @system @nogc nothrow pure;
829 extern (C) void fp16_sqr_unr(scope dv8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
830 extern (C) void fp16_sqr_basic(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
831 extern (C) void fp16_sqr_lazyr(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
832 extern (C) void fp16_sqr_cyc(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
833 extern (C) void fp16_inv(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
834 extern (C) void fp16_inv_cyc(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
835 extern (C) void fp16_inv_sim(scope fp16_t* c, scope const(fp16_t)* a, int n) @system @nogc nothrow pure;
836 extern (C) int fp16_test_cyc(scope const(fp8_t)* a) @system @nogc nothrow pure;
837 extern (C) void fp16_conv_cyc(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
838 extern (C) void fp16_exp(scope fp8_t* c, scope const(fp8_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
839 extern (C) void fp16_exp_dig(scope fp8_t* c, scope const(fp8_t)* a, ulong b) @system @nogc nothrow pure;
840 extern (C) void fp16_exp_cyc(scope fp8_t* c, scope const(fp8_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
841 extern (C) void fp16_exp_cyc_gls(scope fp8_t* c, scope const(fp8_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
842 extern (C) void fp16_exp_cyc_sim(scope fp8_t* e, scope const(fp8_t)* a, scope const(bn_st)* b, scope const(
843         fp8_t)* c, scope const(bn_st)* d) @system @nogc nothrow pure;
844 extern (C) void fp16_frb(scope fp8_t* c, scope const(fp8_t)* a, int i) @system @nogc nothrow pure;
845 extern (C) int fp16_is_sqr(scope const(fp8_t)* a) @system @nogc nothrow pure;
846 extern (C) int fp16_srt(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
847 extern (C) void fp18_copy(scope fp9_t* c, scope const(fp9_t)* a) @system @nogc nothrow pure;
848 extern (C) void fp18_copy_sec(scope fp9_t* c, scope const(fp9_t)* a, ulong bit) @system @nogc nothrow pure;
849 extern (C) void fp18_zero(scope fp9_t* a) @system @nogc nothrow pure;
850 extern (C) int fp18_is_zero(scope const(fp9_t)* a) @system @nogc nothrow pure;
851 extern (C) void fp18_rand(scope fp9_t* a) @system @nogc nothrow pure;
852 extern (C) void fp18_print(scope const(fp9_t)* a) @system @nogc nothrow pure;
853 extern (C) int fp18_size_bin(scope const(fp9_t)* a, int pack) @system @nogc nothrow pure;
854 extern (C) void fp18_read_bin(scope fp9_t* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
855 extern (C) void fp18_write_bin(scope ubyte* bin, size_t len, scope const(fp9_t)* a, int pack) @system @nogc nothrow pure;
856 extern (C) int fp18_cmp(scope const(fp9_t)* a, scope const(fp9_t)* b) @system @nogc nothrow pure;
857 extern (C) int fp18_cmp_dig(scope const(fp9_t)* a, const(ulong) b) @system @nogc nothrow pure;
858 extern (C) void fp18_set_dig(scope fp9_t* a, const(ulong) b) @system @nogc nothrow pure;
859 extern (C) void fp18_add(scope fp9_t* c, scope const(fp9_t)* a, scope const(fp9_t)* b) @system @nogc nothrow pure;
860 extern (C) void fp18_sub(scope fp9_t* c, scope const(fp9_t)* a, scope const(fp9_t)* b) @system @nogc nothrow pure;
861 extern (C) void fp18_neg(scope fp9_t* c, scope const(fp9_t)* a) @system @nogc nothrow pure;
862 extern (C) void fp18_dbl(scope fp9_t* c, scope const(fp9_t)* a) @system @nogc nothrow pure;
863 extern (C) void fp18_mul_unr(scope dv9_t* c, scope const(fp9_t)* a, scope const(fp9_t)* b) @system @nogc nothrow pure;
864 extern (C) void fp18_mul_basic(scope fp9_t* c, scope const(fp9_t)* a, scope const(fp9_t)* b) @system @nogc nothrow pure;
865 extern (C) void fp18_mul_lazyr(scope fp9_t* c, scope const(fp9_t)* a, scope const(fp9_t)* b) @system @nogc nothrow pure;
866 extern (C) void fp18_mul_art(scope fp9_t* c, scope const(fp9_t)* a) @system @nogc nothrow pure;
867 extern (C) void fp18_mul_dxs_basic(scope fp9_t* c, scope const(fp9_t)* a, scope const(fp9_t)* b) @system @nogc nothrow pure;
868 extern (C) void fp18_mul_dxs_lazyr(scope fp9_t* c, scope const(fp9_t)* a, scope const(fp9_t)* b) @system @nogc nothrow pure;
869 extern (C) void fp18_sqr_unr(scope dv9_t* c, scope const(fp9_t)* a) @system @nogc nothrow pure;
870 extern (C) void fp18_sqr_basic(scope fp9_t* c, scope const(fp9_t)* a) @system @nogc nothrow pure;
871 extern (C) void fp18_sqr_lazyr(scope fp9_t* c, scope const(fp9_t)* a) @system @nogc nothrow pure;
872 extern (C) void fp18_sqr_cyc_basic(scope fp9_t* c, scope const(fp9_t)* a) @system @nogc nothrow pure;
873 extern (C) void fp18_sqr_cyc_lazyr(scope fp9_t* c, scope const(fp9_t)* a) @system @nogc nothrow pure;
874 extern (C) void fp18_sqr_pck_basic(scope fp9_t* c, scope const(fp9_t)* a) @system @nogc nothrow pure;
875 extern (C) void fp18_sqr_pck_lazyr(scope fp9_t* c, scope const(fp9_t)* a) @system @nogc nothrow pure;
876 extern (C) int fp18_test_cyc(scope const(fp9_t)* a) @system @nogc nothrow pure;
877 extern (C) void fp18_conv_cyc(scope fp9_t* c, scope const(fp9_t)* a) @system @nogc nothrow pure;
878 extern (C) void fp18_back_cyc(scope fp9_t* c, scope const(fp9_t)* a) @system @nogc nothrow pure;
879 extern (C) void fp18_back_cyc_sim(scope fp18_t* c, scope const(fp18_t)* a, int n) @system @nogc nothrow pure;
880 extern (C) void fp18_inv(scope fp9_t* c, scope const(fp9_t)* a) @system @nogc nothrow pure;
881 extern (C) void fp18_inv_cyc(scope fp9_t* c, scope const(fp9_t)* a) @system @nogc nothrow pure;
882 extern (C) void fp18_frb(scope fp9_t* c, scope const(fp9_t)* a, int i) @system @nogc nothrow pure;
883 extern (C) void fp18_exp(scope fp9_t* c, scope const(fp9_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
884 extern (C) void fp18_exp_dig(scope fp9_t* c, scope const(fp9_t)* a, ulong b) @system @nogc nothrow pure;
885 extern (C) void fp18_exp_cyc(scope fp9_t* c, scope const(fp9_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
886 extern (C) void fp18_exp_cyc_gls(scope fp9_t* c, scope const(fp9_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
887 extern (C) void fp18_exp_cyc_sim(scope fp9_t* e, scope const(fp9_t)* a, scope const(bn_st)* b, scope const(
888         fp9_t)* c, scope const(bn_st)* d) @system @nogc nothrow pure;
889 extern (C) void fp18_exp_cyc_sps(scope fp9_t* c, scope const(fp9_t)* a, scope const(int)* b, int l, int s) @system @nogc nothrow pure;
890 extern (C) void fp18_pck(scope fp9_t* c, scope const(fp9_t)* a) @system @nogc nothrow pure;
891 extern (C) int fp18_upk(scope fp9_t* c, scope const(fp9_t)* a) @system @nogc nothrow pure;
892 extern (C) void fp18_pck_max(scope fp9_t* c, scope const(fp9_t)* a) @system @nogc nothrow pure;
893 extern (C) int fp18_upk_max(scope fp9_t* c, scope const(fp9_t)* a) @system @nogc nothrow pure;
894 extern (C) void fp24_copy(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
895 extern (C) void fp24_copy_sec(scope fp8_t* c, scope const(fp8_t)* a, ulong bit) @system @nogc nothrow pure;
896 extern (C) void fp24_zero(scope fp8_t* a) @system @nogc nothrow pure;
897 extern (C) int fp24_is_zero(scope const(fp8_t)* a) @system @nogc nothrow pure;
898 extern (C) void fp24_rand(scope fp8_t* a) @system @nogc nothrow pure;
899 extern (C) void fp24_print(scope const(fp8_t)* a) @system @nogc nothrow pure;
900 extern (C) int fp24_size_bin(scope const(fp8_t)* a, int pack) @system @nogc nothrow pure;
901 extern (C) void fp24_read_bin(scope fp8_t* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
902 extern (C) void fp24_write_bin(scope ubyte* bin, size_t len, scope const(fp8_t)* a, int pack) @system @nogc nothrow pure;
903 extern (C) int fp24_cmp(scope const(fp8_t)* a, scope const(fp8_t)* b) @system @nogc nothrow pure;
904 extern (C) int fp24_cmp_dig(scope const(fp8_t)* a, const(ulong) b) @system @nogc nothrow pure;
905 extern (C) void fp24_set_dig(scope fp8_t* a, const(ulong) b) @system @nogc nothrow pure;
906 extern (C) void fp24_add(scope fp8_t* c, scope const(fp8_t)* a, scope const(fp8_t)* b) @system @nogc nothrow pure;
907 extern (C) void fp24_sub(scope fp8_t* c, scope const(fp8_t)* a, scope const(fp8_t)* b) @system @nogc nothrow pure;
908 extern (C) void fp24_neg(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
909 extern (C) void fp24_dbl(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
910 extern (C) void fp24_mul_unr(scope dv8_t* c, scope const(fp8_t)* a, scope const(fp8_t)* b) @system @nogc nothrow pure;
911 extern (C) void fp24_mul_basic(scope fp8_t* c, scope const(fp8_t)* a, scope const(fp8_t)* b) @system @nogc nothrow pure;
912 extern (C) void fp24_mul_lazyr(scope fp8_t* c, scope const(fp8_t)* a, scope const(fp8_t)* b) @system @nogc nothrow pure;
913 extern (C) void fp24_mul_art(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
914 extern (C) void fp24_mul_dxs(scope fp8_t* c, scope const(fp8_t)* a, scope const(fp8_t)* b) @system @nogc nothrow pure;
915 extern (C) void fp24_sqr_unr(scope dv8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
916 extern (C) void fp24_sqr_basic(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
917 extern (C) void fp24_sqr_lazyr(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
918 extern (C) void fp24_sqr_cyc_basic(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
919 extern (C) void fp24_sqr_cyc_lazyr(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
920 extern (C) void fp24_sqr_pck_basic(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
921 extern (C) void fp24_sqr_pck_lazyr(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
922 extern (C) int fp24_test_cyc(scope const(fp8_t)* a) @system @nogc nothrow pure;
923 extern (C) void fp24_conv_cyc(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
924 extern (C) void fp24_back_cyc(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
925 extern (C) void fp24_back_cyc_sim(scope fp24_t* c, scope const(fp24_t)* a, int n) @system @nogc nothrow pure;
926 extern (C) void fp24_inv(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
927 extern (C) void fp24_inv_cyc(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
928 extern (C) void fp24_frb(scope fp8_t* c, scope const(fp8_t)* a, int i) @system @nogc nothrow pure;
929 extern (C) void fp24_exp(scope fp8_t* c, scope const(fp8_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
930 extern (C) void fp24_exp_dig(scope fp8_t* c, scope const(fp8_t)* a, ulong b) @system @nogc nothrow pure;
931 extern (C) void fp24_exp_cyc(scope fp8_t* c, scope const(fp8_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
932 extern (C) void fp24_exp_cyc_gls(scope fp8_t* c, scope const(fp8_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
933 extern (C) void fp24_exp_cyc_sim(scope fp8_t* e, scope const(fp8_t)* a, scope const(bn_st)* b, scope const(
934         fp8_t)* c, scope const(bn_st)* d) @system @nogc nothrow pure;
935 extern (C) void fp24_exp_cyc_sps(scope fp8_t* c, scope const(fp8_t)* a, scope const(int)* b, size_t l, int s) @system @nogc nothrow pure;
936 extern (C) void fp24_pck(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
937 extern (C) int fp24_upk(scope fp8_t* c, scope const(fp8_t)* a) @system @nogc nothrow pure;
938 extern (C) void fp48_copy(scope fp24_t* c, scope const(fp24_t)* a) @system @nogc nothrow pure;
939 extern (C) void fp48_copy_sec(scope fp24_t* c, scope const(fp24_t)* a, ulong bit) @system @nogc nothrow pure;
940 extern (C) void fp48_zero(scope fp24_t* a) @system @nogc nothrow pure;
941 extern (C) int fp48_is_zero(scope const(fp24_t)* a) @system @nogc nothrow pure;
942 extern (C) void fp48_rand(scope fp24_t* a) @system @nogc nothrow pure;
943 extern (C) void fp48_print(scope const(fp24_t)* a) @system @nogc nothrow pure;
944 extern (C) int fp48_size_bin(scope const(fp24_t)* a, int pack) @system @nogc nothrow pure;
945 extern (C) void fp48_read_bin(scope fp24_t* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
946 extern (C) void fp48_write_bin(scope ubyte* bin, size_t len, scope const(fp24_t)* a, int pack) @system @nogc nothrow pure;
947 extern (C) int fp48_cmp(scope const(fp24_t)* a, scope const(fp24_t)* b) @system @nogc nothrow pure;
948 extern (C) int fp48_cmp_dig(scope const(fp24_t)* a, const(ulong) b) @system @nogc nothrow pure;
949 extern (C) void fp48_set_dig(scope fp24_t* a, const(ulong) b) @system @nogc nothrow pure;
950 extern (C) void fp48_add(scope fp24_t* c, scope const(fp24_t)* a, scope const(fp24_t)* b) @system @nogc nothrow pure;
951 extern (C) void fp48_sub(scope fp24_t* c, scope const(fp24_t)* a, scope const(fp24_t)* b) @system @nogc nothrow pure;
952 extern (C) void fp48_neg(scope fp24_t* c, scope const(fp24_t)* a) @system @nogc nothrow pure;
953 extern (C) void fp48_dbl(scope fp24_t* c, scope const(fp24_t)* a) @system @nogc nothrow pure;
954 extern (C) void fp48_mul_basic(scope fp24_t* c, scope const(fp24_t)* a, scope const(fp24_t)* b) @system @nogc nothrow pure;
955 extern (C) void fp48_mul_lazyr(scope fp24_t* c, scope const(fp24_t)* a, scope const(fp24_t)* b) @system @nogc nothrow pure;
956 extern (C) void fp48_mul_art(scope fp24_t* c, scope const(fp24_t)* a) @system @nogc nothrow pure;
957 extern (C) void fp48_mul_dxs(scope fp24_t* c, scope const(fp24_t)* a, scope const(fp24_t)* b) @system @nogc nothrow pure;
958 extern (C) void fp48_sqr_basic(scope fp24_t* c, scope const(fp24_t)* a) @system @nogc nothrow pure;
959 extern (C) void fp48_sqr_lazyr(scope fp24_t* c, scope const(fp24_t)* a) @system @nogc nothrow pure;
960 extern (C) void fp48_sqr_cyc_basic(scope fp24_t* c, scope const(fp24_t)* a) @system @nogc nothrow pure;
961 extern (C) void fp48_sqr_cyc_lazyr(scope fp24_t* c, scope const(fp24_t)* a) @system @nogc nothrow pure;
962 extern (C) void fp48_sqr_pck_basic(scope fp24_t* c, scope const(fp24_t)* a) @system @nogc nothrow pure;
963 extern (C) void fp48_sqr_pck_lazyr(scope fp24_t* c, scope const(fp24_t)* a) @system @nogc nothrow pure;
964 extern (C) int fp48_test_cyc(scope const(fp24_t)* a) @system @nogc nothrow pure;
965 extern (C) void fp48_conv_cyc(scope fp24_t* c, scope const(fp24_t)* a) @system @nogc nothrow pure;
966 extern (C) void fp48_back_cyc(scope fp24_t* c, scope const(fp24_t)* a) @system @nogc nothrow pure;
967 extern (C) void fp48_back_cyc_sim(scope fp48_t* c, scope const(fp48_t)* a, int n) @system @nogc nothrow pure;
968 extern (C) void fp48_inv(scope fp24_t* c, scope const(fp24_t)* a) @system @nogc nothrow pure;
969 extern (C) void fp48_inv_cyc(scope fp24_t* c, scope const(fp24_t)* a) @system @nogc nothrow pure;
970 extern (C) void fp48_frb(scope fp24_t* c, scope const(fp24_t)* a, int i) @system @nogc nothrow pure;
971 extern (C) void fp48_exp(scope fp24_t* c, scope const(fp24_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
972 extern (C) void fp48_exp_dig(scope fp24_t* c, scope const(fp24_t)* a, ulong b) @system @nogc nothrow pure;
973 extern (C) void fp48_exp_cyc(scope fp24_t* c, scope const(fp24_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
974 extern (C) void fp48_exp_cyc_gls(scope fp24_t* c, scope const(fp24_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
975 extern (C) void fp48_exp_cyc_sps(scope fp24_t* c, scope const(fp24_t)* a, scope const(int)* b, size_t l, int s) @system @nogc nothrow pure;
976 extern (C) void fp48_exp_cyc_sim(scope fp24_t* e, scope const(fp24_t)* a, scope const(bn_st)* b, scope const(
977         fp24_t)* c, scope const(bn_st)* d) @system @nogc nothrow pure;
978 extern (C) void fp48_pck(scope fp24_t* c, scope const(fp24_t)* a) @system @nogc nothrow pure;
979 extern (C) int fp48_upk(scope fp24_t* c, scope const(fp24_t)* a) @system @nogc nothrow pure;
980 extern (C) void fp54_copy(scope fp18_t* c, scope const(fp18_t)* a) @system @nogc nothrow pure;
981 extern (C) void fp54_copy_sec(scope fp18_t* c, scope const(fp18_t)* a, ulong bit) @system @nogc nothrow pure;
982 extern (C) void fp54_zero(scope fp18_t* a) @system @nogc nothrow pure;
983 extern (C) int fp54_is_zero(scope const(fp18_t)* a) @system @nogc nothrow pure;
984 extern (C) void fp54_rand(scope fp18_t* a) @system @nogc nothrow pure;
985 extern (C) void fp54_print(scope const(fp18_t)* a) @system @nogc nothrow pure;
986 extern (C) int fp54_size_bin(scope const(fp18_t)* a, int pack) @system @nogc nothrow pure;
987 extern (C) void fp54_read_bin(scope fp18_t* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
988 extern (C) void fp54_write_bin(scope ubyte* bin, size_t len, scope const(fp18_t)* a, int pack) @system @nogc nothrow pure;
989 extern (C) int fp54_cmp(scope const(fp18_t)* a, scope const(fp18_t)* b) @system @nogc nothrow pure;
990 extern (C) int fp54_cmp_dig(scope const(fp18_t)* a, const(ulong) b) @system @nogc nothrow pure;
991 extern (C) void fp54_set_dig(scope fp18_t* a, const(ulong) b) @system @nogc nothrow pure;
992 extern (C) void fp54_add(scope fp18_t* c, scope const(fp18_t)* a, scope const(fp18_t)* b) @system @nogc nothrow pure;
993 extern (C) void fp54_sub(scope fp18_t* c, scope const(fp18_t)* a, scope const(fp18_t)* b) @system @nogc nothrow pure;
994 extern (C) void fp54_neg(scope fp18_t* c, scope const(fp18_t)* a) @system @nogc nothrow pure;
995 extern (C) void fp54_dbl(scope fp18_t* c, scope const(fp18_t)* a) @system @nogc nothrow pure;
996 extern (C) void fp54_mul_basic(scope fp18_t* c, scope const(fp18_t)* a, scope const(fp18_t)* b) @system @nogc nothrow pure;
997 extern (C) void fp54_mul_lazyr(scope fp18_t* c, scope const(fp18_t)* a, scope const(fp18_t)* b) @system @nogc nothrow pure;
998 extern (C) void fp54_mul_art(scope fp18_t* c, scope const(fp18_t)* a) @system @nogc nothrow pure;
999 extern (C) void fp54_mul_dxs(scope fp18_t* c, scope const(fp18_t)* a, scope const(fp18_t)* b) @system @nogc nothrow pure;
1000 extern (C) void fp54_sqr_basic(scope fp18_t* c, scope const(fp18_t)* a) @system @nogc nothrow pure;
1001 extern (C) void fp54_sqr_lazyr(scope fp18_t* c, scope const(fp18_t)* a) @system @nogc nothrow pure;
1002 extern (C) void fp54_sqr_cyc_basic(scope fp18_t* c, scope const(fp18_t)* a) @system @nogc nothrow pure;
1003 extern (C) void fp54_sqr_cyc_lazyr(scope fp18_t* c, scope const(fp18_t)* a) @system @nogc nothrow pure;
1004 extern (C) void fp54_sqr_pck_basic(scope fp18_t* c, scope const(fp18_t)* a) @system @nogc nothrow pure;
1005 extern (C) void fp54_sqr_pck_lazyr(scope fp18_t* c, scope const(fp18_t)* a) @system @nogc nothrow pure;
1006 extern (C) int fp54_test_cyc(scope const(fp18_t)* a) @system @nogc nothrow pure;
1007 extern (C) void fp54_conv_cyc(scope fp18_t* c, scope const(fp18_t)* a) @system @nogc nothrow pure;
1008 extern (C) void fp54_back_cyc(scope fp18_t* c, scope const(fp18_t)* a) @system @nogc nothrow pure;
1009 extern (C) void fp54_back_cyc_sim(scope fp54_t* c, scope const(fp54_t)* a, int n) @system @nogc nothrow pure;
1010 extern (C) void fp54_inv(scope fp18_t* c, scope const(fp18_t)* a) @system @nogc nothrow pure;
1011 extern (C) void fp54_inv_cyc(scope fp18_t* c, scope const(fp18_t)* a) @system @nogc nothrow pure;
1012 extern (C) void fp54_frb(scope fp18_t* c, scope const(fp18_t)* a, int i) @system @nogc nothrow pure;
1013 extern (C) void fp54_exp(scope fp18_t* c, scope const(fp18_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
1014 extern (C) void fp54_exp_dig(scope fp18_t* c, scope const(fp18_t)* a, ulong b) @system @nogc nothrow pure;
1015 extern (C) void fp54_exp_cyc(scope fp18_t* c, scope const(fp18_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
1016 extern (C) void fp54_exp_cyc_sps(scope fp18_t* c, scope const(fp18_t)* a, scope const(int)* b, size_t l, int s) @system @nogc nothrow pure;
1017 extern (C) void fp54_pck(scope fp18_t* c, scope const(fp18_t)* a) @system @nogc nothrow pure;
1018 extern (C) int fp54_upk(scope fp18_t* c, scope const(fp18_t)* a) @system @nogc nothrow pure;
1019 extern (C) void ep_curve_init() @system @nogc nothrow pure;
1020 extern (C) void ep_curve_clean() @system @nogc nothrow pure;
1021 extern (C) dig_t* ep_curve_get_a() @system @nogc nothrow pure;
1022 extern (C) dig_t* ep_curve_get_b() @system @nogc nothrow pure;
1023 extern (C) dig_t* ep_curve_get_b3() @system @nogc nothrow pure;
1024 extern (C) dig_t* ep_curve_get_beta() @system @nogc nothrow pure;
1025 extern (C) const(bn_st)* ep_curve_get_v1() @system @nogc nothrow pure;
1026 extern (C) const(bn_st)* ep_curve_get_v2() @system @nogc nothrow pure;
1027 extern (C) int ep_curve_opt_a() @system @nogc nothrow pure;
1028 extern (C) int ep_curve_opt_b() @system @nogc nothrow pure;
1029 extern (C) void ep_curve_mul_a(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
1030 extern (C) void ep_curve_mul_b(scope dig_t* c, scope const(dig_t)* a) @system @nogc nothrow pure;
1031 extern (C) int ep_curve_is_endom() @system @nogc nothrow pure;
1032 extern (C) int ep_curve_is_super() @system @nogc nothrow pure;
1033 extern (C) int ep_curve_is_pairf() @system @nogc nothrow pure;
1034 extern (C) int ep_curve_is_ctmap() @system @nogc nothrow pure;
1035 extern (C) void ep_curve_get_gen(scope ep_st* g) @system @nogc nothrow pure;
1036 extern (C) const(ep_t)* ep_curve_get_tab() @system @nogc nothrow pure;
1037 extern (C) void ep_curve_get_ord(scope bn_st* n) @system @nogc nothrow pure;
1038 extern (C) void ep_curve_get_cof(scope bn_st* h) @system @nogc nothrow pure;
1039 extern (C) iso_t* ep_curve_get_iso() @system @nogc nothrow pure;
1040 extern (C) void ep_curve_set_plain(scope const(dig_t)* a, scope const(dig_t)* b, scope const(ep_st)* g, scope const(
1041         bn_st)* r, scope const(bn_st)* h, int ctmap) @system @nogc nothrow pure;
1042 extern (C) void ep_curve_set_super(scope const(dig_t)* a, scope const(dig_t)* b, scope const(ep_st)* g, scope const(
1043         bn_st)* r, scope const(bn_st)* h, int ctmap) @system @nogc nothrow pure;
1044 extern (C) void ep_curve_set_endom(scope const(dig_t)* a, scope const(dig_t)* b, scope const(ep_st)* g, scope const(
1045         bn_st)* r, scope const(bn_st)* h, scope const(dig_t)* beta, scope const(bn_st)* l, int ctmap) @system @nogc nothrow pure;
1046 extern (C) int ep_curve_embed() @system @nogc nothrow pure;
1047 extern (C) int ep_curve_frdim() @system @nogc nothrow pure;
1048 extern (C) void ep_param_set(int param) @system @nogc nothrow pure;
1049 extern (C) int ep_param_set_any() @system @nogc nothrow pure;
1050 extern (C) int ep_param_set_any_plain() @system @nogc nothrow pure;
1051 extern (C) int ep_param_set_any_endom() @system @nogc nothrow pure;
1052 extern (C) int ep_param_set_any_super() @system @nogc nothrow pure;
1053 extern (C) int ep_param_set_any_pairf() @system @nogc nothrow pure;
1054 extern (C) int ep_param_get() @system @nogc nothrow pure;
1055 extern (C) void ep_param_print() @system @nogc nothrow pure;
1056 extern (C) int ep_param_level() @system @nogc nothrow pure;
1057 extern (C) int ep_is_infty(scope const(ep_st)* p) @system @nogc nothrow pure;
1058 extern (C) void ep_set_infty(scope ep_st* p) @system @nogc nothrow pure;
1059 extern (C) void ep_copy(scope ep_st* r, scope const(ep_st)* p) @system @nogc nothrow pure;
1060 extern (C) int ep_cmp(scope const(ep_st)* p, scope const(ep_st)* q) @system @nogc nothrow pure;
1061 extern (C) void ep_rand(scope ep_st* p) @system @nogc nothrow pure;
1062 extern (C) void ep_blind(scope ep_st* r, scope const(ep_st)* p) @system @nogc nothrow pure;
1063 extern (C) void ep_rhs(scope dig_t* rhs, scope const(dig_t)* x) @system @nogc nothrow pure;
1064 extern (C) int ep_on_curve(scope const(ep_st)* p) @system @nogc nothrow pure;
1065 extern (C) void ep_tab(scope ep_t* t, scope const(ep_st)* p, int w) @system @nogc nothrow pure;
1066 extern (C) void ep_print(scope const(ep_st)* p) @system @nogc nothrow pure;
1067 extern (C) size_t ep_size_bin(scope const(ep_st)* a, int pack) @system @nogc nothrow pure;
1068 extern (C) void ep_read_bin(scope ep_st* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
1069 extern (C) void ep_write_bin(scope ubyte* bin, size_t len, scope const(ep_st)* a, int pack) @system @nogc nothrow pure;
1070 extern (C) void ep_neg(scope ep_st* r, scope const(ep_st)* p) @system @nogc nothrow pure;
1071 extern (C) void ep_add_basic(scope ep_st* r, scope const(ep_st)* p, scope const(ep_st)* q) @system @nogc nothrow pure;
1072 extern (C) void ep_add_slp_basic(scope ep_st* r, scope dig_t* s, scope const(ep_st)* p, scope const(
1073         ep_st)* q) @system @nogc nothrow pure;
1074 extern (C) void ep_add_projc(scope ep_st* r, scope const(ep_st)* p, scope const(ep_st)* q) @system @nogc nothrow pure;
1075 extern (C) void ep_add_jacob(scope ep_st* r, scope const(ep_st)* p, scope const(ep_st)* q) @system @nogc nothrow pure;
1076 extern (C) void ep_sub(scope ep_st* r, scope const(ep_st)* p, scope const(ep_st)* q) @system @nogc nothrow pure;
1077 extern (C) void ep_dbl_basic(scope ep_st* r, scope const(ep_st)* p) @system @nogc nothrow pure;
1078 extern (C) void ep_dbl_slp_basic(scope ep_st* r, scope dig_t* s, scope const(ep_st)* p) @system @nogc nothrow pure;
1079 extern (C) void ep_dbl_projc(scope ep_st* r, scope const(ep_st)* p) @system @nogc nothrow pure;
1080 extern (C) void ep_dbl_jacob(scope ep_st* r, scope const(ep_st)* p) @system @nogc nothrow pure;
1081 extern (C) void ep_psi(scope ep_st* r, scope const(ep_st)* p) @system @nogc nothrow pure;
1082 extern (C) void ep_mul_basic(scope ep_st* r, scope const(ep_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1083 extern (C) void ep_mul_slide(scope ep_st* r, scope const(ep_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1084 extern (C) void ep_mul_monty(scope ep_st* r, scope const(ep_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1085 extern (C) void ep_mul_lwnaf(scope ep_st* r, scope const(ep_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1086 extern (C) void ep_mul_lwreg(scope ep_st* r, scope const(ep_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1087 extern (C) void ep_mul_gen(scope ep_st* r, scope const(bn_st)* k) @system @nogc nothrow pure;
1088 extern (C) void ep_mul_dig(scope ep_st* r, scope const(ep_st)* p, ulong k) @system @nogc nothrow pure;
1089 extern (C) void ep_mul_cof(scope ep_st* r, scope const(ep_st)* p) @system @nogc nothrow pure;
1090 extern (C) void ep_mul_pre_basic(scope ep_t* t, scope const(ep_st)* p) @system @nogc nothrow pure;
1091 extern (C) void ep_mul_pre_yaowi(scope ep_t* t, scope const(ep_st)* p) @system @nogc nothrow pure;
1092 extern (C) void ep_mul_pre_nafwi(scope ep_t* t, scope const(ep_st)* p) @system @nogc nothrow pure;
1093 extern (C) void ep_mul_pre_combs(scope ep_t* t, scope const(ep_st)* p) @system @nogc nothrow pure;
1094 extern (C) void ep_mul_pre_combd(scope ep_t* t, scope const(ep_st)* p) @system @nogc nothrow pure;
1095 extern (C) void ep_mul_pre_lwnaf(scope ep_t* t, scope const(ep_st)* p) @system @nogc nothrow pure;
1096 extern (C) void ep_mul_fix_basic(scope ep_st* r, scope const(ep_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1097 extern (C) void ep_mul_fix_yaowi(scope ep_st* r, scope const(ep_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1098 extern (C) void ep_mul_fix_nafwi(scope ep_st* r, scope const(ep_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1099 extern (C) void ep_mul_fix_combs(scope ep_st* r, scope const(ep_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1100 extern (C) void ep_mul_fix_combd(scope ep_st* r, scope const(ep_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1101 extern (C) void ep_mul_fix_lwnaf(scope ep_st* r, scope const(ep_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1102 extern (C) void ep_mul_sim_basic(scope ep_st* r, scope const(ep_st)* p, scope const(bn_st)* k, scope const(
1103         ep_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1104 extern (C) void ep_mul_sim_trick(scope ep_st* r, scope const(ep_st)* p, scope const(bn_st)* k, scope const(
1105         ep_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1106 extern (C) void ep_mul_sim_inter(scope ep_st* r, scope const(ep_st)* p, scope const(bn_st)* k, scope const(
1107         ep_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1108 extern (C) void ep_mul_sim_joint(scope ep_st* r, scope const(ep_st)* p, scope const(bn_st)* k, scope const(
1109         ep_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1110 extern (C) void ep_mul_sim_lot(scope ep_st* r, scope const(ep_t)* p, scope const(bn_t)* k, int n) @system @nogc nothrow pure;
1111 extern (C) void ep_mul_sim_gen(scope ep_st* r, scope const(bn_st)* k, scope const(ep_st)* q, scope const(
1112         bn_st)* m) @system @nogc nothrow pure;
1113 extern (C) void ep_mul_sim_dig(scope ep_st* r, scope const(ep_t)* p, scope const(dig_t)* k, int n) @system @nogc nothrow pure;
1114 extern (C) void ep_norm(scope ep_st* r, scope const(ep_st)* p) @system @nogc nothrow pure;
1115 extern (C) void ep_norm_sim(scope ep_t* r, scope const(ep_t)* t, int n) @system @nogc nothrow pure;
1116 extern (C) void ep_map_basic(scope ep_st* p, scope const(ubyte)* msg, size_t len) @system @nogc nothrow pure;
1117 extern (C) void ep_map_sswum(scope ep_st* p, scope const(ubyte)* msg, size_t len) @system @nogc nothrow pure;
1118 extern (C) void ep_map_swift(scope ep_st* p, scope const(ubyte)* msg, size_t len) @system @nogc nothrow pure;
1119 extern (C) size_t ep_map_rnd_size() @system @nogc nothrow pure;
1120 extern (C) void ep_map_rnd(scope ep_st* p, scope const(ubyte)* uniform_bytes, size_t len) @system @nogc nothrow pure;
1121 extern (C) void ep_pck(scope ep_st* r, scope const(ep_st)* p) @system @nogc nothrow pure;
1122 extern (C) int ep_upk(scope ep_st* r, scope const(ep_st)* p) @system @nogc nothrow pure;
1123 extern (C) void ep2_curve_init() @system @nogc nothrow pure;
1124 extern (C) void ep2_curve_clean() @system @nogc nothrow pure;
1125 extern (C) fp_t* ep2_curve_get_a() @system @nogc nothrow pure;
1126 extern (C) fp_t* ep2_curve_get_b() @system @nogc nothrow pure;
1127 extern (C) int ep2_curve_opt_a() @system @nogc nothrow pure;
1128 extern (C) int ep2_curve_opt_b() @system @nogc nothrow pure;
1129 extern (C) void ep2_curve_mul_a(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
1130 extern (C) void ep2_curve_mul_b(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
1131 extern (C) int ep2_curve_is_twist() @system @nogc nothrow pure;
1132 extern (C) int ep2_curve_is_ctmap() @system @nogc nothrow pure;
1133 extern (C) void ep2_curve_get_gen(scope ep2_st* g) @system @nogc nothrow pure;
1134 extern (C) ep2_t* ep2_curve_get_tab() @system @nogc nothrow pure;
1135 extern (C) void ep2_curve_get_ord(scope bn_st* n) @system @nogc nothrow pure;
1136 extern (C) void ep2_curve_get_cof(scope bn_st* h) @system @nogc nothrow pure;
1137 extern (C) iso2_t* ep2_curve_get_iso() @system @nogc nothrow pure;
1138 extern (C) void ep2_curve_set(scope const(fp_t)* a, scope const(fp_t)* b, scope const(ep2_st)* g, scope const(
1139         bn_st)* r, scope const(bn_st)* h) @system @nogc nothrow pure;
1140 extern (C) void ep2_curve_set_twist(int type) @system @nogc nothrow pure;
1141 extern (C) int ep2_is_infty(scope const(ep2_st)* p) @system @nogc nothrow pure;
1142 extern (C) void ep2_set_infty(scope ep2_st* p) @system @nogc nothrow pure;
1143 extern (C) void ep2_copy(scope ep2_st* r, scope const(ep2_st)* p) @system @nogc nothrow pure;
1144 extern (C) int ep2_cmp(scope const(ep2_st)* p, scope const(ep2_st)* q) @system @nogc nothrow pure;
1145 extern (C) void ep2_rand(scope ep2_st* p) @system @nogc nothrow pure;
1146 extern (C) void ep2_blind(scope ep2_st* r, scope const(ep2_st)* p) @system @nogc nothrow pure;
1147 extern (C) void ep2_rhs(scope fp_t* rhs, scope const(fp_t)* x) @system @nogc nothrow pure;
1148 extern (C) int ep2_on_curve(scope const(ep2_st)* p) @system @nogc nothrow pure;
1149 extern (C) void ep2_tab(scope ep2_t* t, scope const(ep2_st)* p, int w) @system @nogc nothrow pure;
1150 extern (C) void ep2_print(scope const(ep2_st)* p) @system @nogc nothrow pure;
1151 extern (C) size_t ep2_size_bin(scope const(ep2_st)* a, int pack) @system @nogc nothrow pure;
1152 extern (C) void ep2_read_bin(scope ep2_st* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
1153 extern (C) void ep2_write_bin(scope ubyte* bin, size_t len, scope const(ep2_st)* a, int pack) @system @nogc nothrow pure;
1154 extern (C) void ep2_neg(scope ep2_st* r, scope const(ep2_st)* p) @system @nogc nothrow pure;
1155 extern (C) void ep2_add_basic(scope ep2_st* r, scope const(ep2_st)* p, scope const(ep2_st)* q) @system @nogc nothrow pure;
1156 extern (C) void ep2_add_slp_basic(scope ep2_st* r, scope fp_t* s, scope const(ep2_st)* p, scope const(
1157         ep2_st)* q) @system @nogc nothrow pure;
1158 extern (C) void ep2_add_projc(scope ep2_st* r, scope const(ep2_st)* p, scope const(ep2_st)* q) @system @nogc nothrow pure;
1159 extern (C) void ep2_add_jacob(scope ep2_st* r, scope const(ep2_st)* p, scope const(ep2_st)* q) @system @nogc nothrow pure;
1160 extern (C) void ep2_sub(scope ep2_st* r, scope const(ep2_st)* p, scope const(ep2_st)* q) @system @nogc nothrow pure;
1161 extern (C) void ep2_dbl_basic(scope ep2_st* r, scope const(ep2_st)* p) @system @nogc nothrow pure;
1162 extern (C) void ep2_dbl_slp_basic(scope ep2_st* r, scope fp_t* s, scope const(ep2_st)* p) @system @nogc nothrow pure;
1163 extern (C) void ep2_dbl_projc(scope ep2_st* r, scope const(ep2_st)* p) @system @nogc nothrow pure;
1164 extern (C) void ep2_dbl_jacob(scope ep2_st* r, scope const(ep2_st)* p) @system @nogc nothrow pure;
1165 extern (C) void ep2_mul_basic(scope ep2_st* r, scope const(ep2_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1166 extern (C) void ep2_mul_slide(scope ep2_st* r, scope const(ep2_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1167 extern (C) void ep2_mul_monty(scope ep2_st* r, scope const(ep2_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1168 extern (C) void ep2_mul_lwnaf(scope ep2_st* r, scope const(ep2_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1169 extern (C) void ep2_mul_lwreg(scope ep2_st* r, scope const(ep2_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1170 extern (C) void ep2_mul_gen(scope ep2_st* r, scope const(bn_st)* k) @system @nogc nothrow pure;
1171 extern (C) void ep2_mul_dig(scope ep2_st* r, scope const(ep2_st)* p, const(ulong) k) @system @nogc nothrow pure;
1172 extern (C) void ep2_mul_cof(scope ep2_st* r, scope const(ep2_st)* p) @system @nogc nothrow pure;
1173 extern (C) void ep2_mul_pre_basic(scope ep2_t* t, scope const(ep2_st)* p) @system @nogc nothrow pure;
1174 extern (C) void ep2_mul_pre_yaowi(scope ep2_t* t, scope const(ep2_st)* p) @system @nogc nothrow pure;
1175 extern (C) void ep2_mul_pre_nafwi(scope ep2_t* t, scope const(ep2_st)* p) @system @nogc nothrow pure;
1176 extern (C) void ep2_mul_pre_combs(scope ep2_t* t, scope const(ep2_st)* p) @system @nogc nothrow pure;
1177 extern (C) void ep2_mul_pre_combd(scope ep2_t* t, scope const(ep2_st)* p) @system @nogc nothrow pure;
1178 extern (C) void ep2_mul_pre_lwnaf(scope ep2_t* t, scope const(ep2_st)* p) @system @nogc nothrow pure;
1179 extern (C) void ep2_mul_fix_basic(scope ep2_st* r, scope const(ep2_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1180 extern (C) void ep2_mul_fix_yaowi(scope ep2_st* r, scope const(ep2_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1181 extern (C) void ep2_mul_fix_nafwi(scope ep2_st* r, scope const(ep2_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1182 extern (C) void ep2_mul_fix_combs(scope ep2_st* r, scope const(ep2_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1183 extern (C) void ep2_mul_fix_combd(scope ep2_st* r, scope const(ep2_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1184 extern (C) void ep2_mul_fix_lwnaf(scope ep2_st* r, scope const(ep2_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1185 extern (C) void ep2_mul_sim_basic(scope ep2_st* r, scope const(ep2_st)* p, scope const(bn_st)* k, scope const(
1186         ep2_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1187 extern (C) void ep2_mul_sim_trick(scope ep2_st* r, scope const(ep2_st)* p, scope const(bn_st)* k, scope const(
1188         ep2_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1189 extern (C) void ep2_mul_sim_inter(scope ep2_st* r, scope const(ep2_st)* p, scope const(bn_st)* k, scope const(
1190         ep2_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1191 extern (C) void ep2_mul_sim_joint(scope ep2_st* r, scope const(ep2_st)* p, scope const(bn_st)* k, scope const(
1192         ep2_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1193 extern (C) void ep2_mul_sim_lot(scope ep2_st* r, scope const(ep2_t)* p, scope const(bn_t)* k, size_t n) @system @nogc nothrow pure;
1194 extern (C) void ep2_mul_sim_gen(scope ep2_st* r, scope const(bn_st)* k, scope const(ep2_st)* q, scope const(
1195         bn_st)* m) @system @nogc nothrow pure;
1196 extern (C) void ep2_mul_sim_dig(scope ep2_st* r, scope const(ep2_t)* p, scope const(dig_t)* k, size_t len) @system @nogc nothrow pure;
1197 extern (C) void ep2_norm(scope ep2_st* r, scope const(ep2_st)* p) @system @nogc nothrow pure;
1198 extern (C) void ep2_norm_sim(scope ep2_t* r, scope const(ep2_t)* t, int n) @system @nogc nothrow pure;
1199 extern (C) void ep2_map_basic(scope ep2_st* p, scope const(ubyte)* msg, size_t len) @system @nogc nothrow pure;
1200 extern (C) void ep2_map_sswum(scope ep2_st* p, scope const(ubyte)* msg, size_t len) @system @nogc nothrow pure;
1201 extern (C) void ep2_map_swift(scope ep2_st* p, scope const(ubyte)* msg, size_t len) @system @nogc nothrow pure;
1202 extern (C) void ep2_frb(scope ep2_st* r, scope const(ep2_st)* p, int i) @system @nogc nothrow pure;
1203 extern (C) void ep2_pck(scope ep2_st* r, scope const(ep2_st)* p) @system @nogc nothrow pure;
1204 extern (C) int ep2_upk(scope ep2_st* r, scope const(ep2_st)* p) @system @nogc nothrow pure;
1205 extern (C) void ep3_curve_init() @system @nogc nothrow pure;
1206 extern (C) void ep3_curve_clean() @system @nogc nothrow pure;
1207 extern (C) fp_t* ep3_curve_get_a() @system @nogc nothrow pure;
1208 extern (C) fp_t* ep3_curve_get_b() @system @nogc nothrow pure;
1209 extern (C) int ep3_curve_opt_a() @system @nogc nothrow pure;
1210 extern (C) int ep3_curve_opt_b() @system @nogc nothrow pure;
1211 extern (C) void ep3_curve_mul_a(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
1212 extern (C) void ep3_curve_mul_b(scope fp_t* c, scope const(fp_t)* a) @system @nogc nothrow pure;
1213 extern (C) int ep3_curve_is_twist() @system @nogc nothrow pure;
1214 extern (C) void ep3_curve_get_gen(scope ep3_st* g) @system @nogc nothrow pure;
1215 extern (C) ep3_t* ep3_curve_get_tab() @system @nogc nothrow pure;
1216 extern (C) void ep3_curve_get_ord(scope bn_st* n) @system @nogc nothrow pure;
1217 extern (C) void ep3_curve_get_cof(scope bn_st* h) @system @nogc nothrow pure;
1218 extern (C) void ep3_curve_set(scope const(fp_t)* a, scope const(fp_t)* b, scope const(ep3_st)* g, scope const(
1219         bn_st)* r, scope const(bn_st)* h) @system @nogc nothrow pure;
1220 extern (C) void ep3_curve_set_twist(int type) @system @nogc nothrow pure;
1221 extern (C) int ep3_is_infty(scope const(ep3_st)* p) @system @nogc nothrow pure;
1222 extern (C) void ep3_set_infty(scope ep3_st* p) @system @nogc nothrow pure;
1223 extern (C) void ep3_copy(scope ep3_st* r, scope const(ep3_st)* p) @system @nogc nothrow pure;
1224 extern (C) int ep3_cmp(scope const(ep3_st)* p, scope const(ep3_st)* q) @system @nogc nothrow pure;
1225 extern (C) void ep3_rand(scope ep3_st* p) @system @nogc nothrow pure;
1226 extern (C) void ep3_blind(scope ep3_st* r, scope const(ep3_st)* p) @system @nogc nothrow pure;
1227 extern (C) void ep3_rhs(scope fp_t* rhs, scope const(fp_t)* x) @system @nogc nothrow pure;
1228 extern (C) int ep3_on_curve(scope const(ep3_st)* p) @system @nogc nothrow pure;
1229 extern (C) void ep3_tab(scope ep3_t* t, scope const(ep3_st)* p, int w) @system @nogc nothrow pure;
1230 extern (C) void ep3_print(scope const(ep3_st)* p) @system @nogc nothrow pure;
1231 extern (C) size_t ep3_size_bin(scope const(ep3_st)* a, int pack) @system @nogc nothrow pure;
1232 extern (C) void ep3_read_bin(scope ep3_st* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
1233 extern (C) void ep3_write_bin(scope ubyte* bin, size_t len, scope const(ep3_st)* a, int pack) @system @nogc nothrow pure;
1234 extern (C) void ep3_neg(scope ep3_st* r, scope const(ep3_st)* p) @system @nogc nothrow pure;
1235 extern (C) void ep3_add_basic(scope ep3_st* r, scope const(ep3_st)* p, scope const(ep3_st)* q) @system @nogc nothrow pure;
1236 extern (C) void ep3_add_slp_basic(scope ep3_st* r, scope fp_t* s, scope const(ep3_st)* p, scope const(
1237         ep3_st)* q) @system @nogc nothrow pure;
1238 extern (C) void ep3_add_projc(scope ep3_st* r, scope const(ep3_st)* p, scope const(ep3_st)* q) @system @nogc nothrow pure;
1239 extern (C) void ep3_add_jacob(scope ep3_st* r, scope const(ep3_st)* p, scope const(ep3_st)* q) @system @nogc nothrow pure;
1240 extern (C) void ep3_sub(scope ep3_st* r, scope const(ep3_st)* p, scope const(ep3_st)* q) @system @nogc nothrow pure;
1241 extern (C) void ep3_dbl_basic(scope ep3_st* r, scope const(ep3_st)* p) @system @nogc nothrow pure;
1242 extern (C) void ep3_dbl_slp_basic(scope ep3_st* r, scope fp_t* s, scope const(ep3_st)* p) @system @nogc nothrow pure;
1243 extern (C) void ep3_dbl_projc(scope ep3_st* r, scope const(ep3_st)* p) @system @nogc nothrow pure;
1244 extern (C) void ep3_dbl_jacob(scope ep3_st* r, scope const(ep3_st)* p) @system @nogc nothrow pure;
1245 extern (C) void ep3_mul_basic(scope ep3_st* r, scope const(ep3_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1246 extern (C) void ep3_mul_slide(scope ep3_st* r, scope const(ep3_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1247 extern (C) void ep3_mul_monty(scope ep3_st* r, scope const(ep3_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1248 extern (C) void ep3_mul_lwnaf(scope ep3_st* r, scope const(ep3_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1249 extern (C) void ep3_mul_lwreg(scope ep3_st* r, scope const(ep3_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1250 extern (C) void ep3_mul_gen(scope ep3_st* r, scope const(bn_st)* k) @system @nogc nothrow pure;
1251 extern (C) void ep3_mul_dig(scope ep3_st* r, scope const(ep3_st)* p, const(ulong) k) @system @nogc nothrow pure;
1252 extern (C) void ep3_mul_cof(scope ep3_st* r, scope const(ep3_st)* p) @system @nogc nothrow pure;
1253 extern (C) void ep3_mul_pre_basic(scope ep3_t* t, scope const(ep3_st)* p) @system @nogc nothrow pure;
1254 extern (C) void ep3_mul_pre_yaowi(scope ep3_t* t, scope const(ep3_st)* p) @system @nogc nothrow pure;
1255 extern (C) void ep3_mul_pre_nafwi(scope ep3_t* t, scope const(ep3_st)* p) @system @nogc nothrow pure;
1256 extern (C) void ep3_mul_pre_combs(scope ep3_t* t, scope const(ep3_st)* p) @system @nogc nothrow pure;
1257 extern (C) void ep3_mul_pre_combd(scope ep3_t* t, scope const(ep3_st)* p) @system @nogc nothrow pure;
1258 extern (C) void ep3_mul_pre_lwnaf(scope ep3_t* t, scope const(ep3_st)* p) @system @nogc nothrow pure;
1259 extern (C) void ep3_mul_fix_basic(scope ep3_st* r, scope const(ep3_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1260 extern (C) void ep3_mul_fix_yaowi(scope ep3_st* r, scope const(ep3_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1261 extern (C) void ep3_mul_fix_nafwi(scope ep3_st* r, scope const(ep3_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1262 extern (C) void ep3_mul_fix_combs(scope ep3_st* r, scope const(ep3_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1263 extern (C) void ep3_mul_fix_combd(scope ep3_st* r, scope const(ep3_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1264 extern (C) void ep3_mul_fix_lwnaf(scope ep3_st* r, scope const(ep3_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1265 extern (C) void ep3_mul_sim_basic(scope ep3_st* r, scope const(ep3_st)* p, scope const(bn_st)* k, scope const(
1266         ep3_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1267 extern (C) void ep3_mul_sim_trick(scope ep3_st* r, scope const(ep3_st)* p, scope const(bn_st)* k, scope const(
1268         ep3_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1269 extern (C) void ep3_mul_sim_inter(scope ep3_st* r, scope const(ep3_st)* p, scope const(bn_st)* k, scope const(
1270         ep3_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1271 extern (C) void ep3_mul_sim_joint(scope ep3_st* r, scope const(ep3_st)* p, scope const(bn_st)* k, scope const(
1272         ep3_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1273 extern (C) void ep3_mul_sim_lot(scope ep3_st* r, scope const(ep3_t)* p, scope const(bn_t)* k, int n) @system @nogc nothrow pure;
1274 extern (C) void ep3_mul_sim_gen(scope ep3_st* r, scope const(bn_st)* k, scope const(ep3_st)* q, scope const(
1275         bn_st)* m) @system @nogc nothrow pure;
1276 extern (C) void ep3_mul_sim_dig(scope ep3_st* r, scope const(ep3_t)* p, scope const(dig_t)* k, size_t len) @system @nogc nothrow pure;
1277 extern (C) void ep3_norm(scope ep3_st* r, scope const(ep3_st)* p) @system @nogc nothrow pure;
1278 extern (C) void ep3_norm_sim(scope ep3_t* r, scope const(ep3_t)* t, int n) @system @nogc nothrow pure;
1279 extern (C) void ep3_map(scope ep3_st* p, scope const(ubyte)* msg, size_t len) @system @nogc nothrow pure;
1280 extern (C) void ep3_frb(scope ep3_st* r, scope const(ep3_st)* p, int i) @system @nogc nothrow pure;
1281 extern (C) void ep3_pck(scope ep3_st* r, scope const(ep3_st)* p) @system @nogc nothrow pure;
1282 extern (C) int ep3_upk(scope ep3_st* r, scope const(ep3_st)* p) @system @nogc nothrow pure;
1283 extern (C) void ep4_curve_init() @system @nogc nothrow pure;
1284 extern (C) void ep4_curve_clean() @system @nogc nothrow pure;
1285 extern (C) fp2_t* ep4_curve_get_a() @system @nogc nothrow pure;
1286 extern (C) fp2_t* ep4_curve_get_b() @system @nogc nothrow pure;
1287 extern (C) int ep4_curve_opt_a() @system @nogc nothrow pure;
1288 extern (C) int ep4_curve_opt_b() @system @nogc nothrow pure;
1289 extern (C) void ep4_curve_mul_a(scope fp2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
1290 extern (C) void ep4_curve_mul_b(scope fp2_t* c, scope const(fp2_t)* a) @system @nogc nothrow pure;
1291 extern (C) int ep4_curve_is_twist() @system @nogc nothrow pure;
1292 extern (C) void ep4_curve_get_gen(scope ep4_st* g) @system @nogc nothrow pure;
1293 extern (C) ep4_t* ep4_curve_get_tab() @system @nogc nothrow pure;
1294 extern (C) void ep4_curve_get_ord(scope bn_st* n) @system @nogc nothrow pure;
1295 extern (C) void ep4_curve_get_cof(scope bn_st* h) @system @nogc nothrow pure;
1296 extern (C) void ep4_curve_set(scope const(fp2_t)* a, scope const(fp2_t)* b, scope const(ep4_st)* g, scope const(
1297         bn_st)* r, scope const(bn_st)* h) @system @nogc nothrow pure;
1298 extern (C) void ep4_curve_set_twist(int type) @system @nogc nothrow pure;
1299 extern (C) int ep4_is_infty(scope const(ep4_st)* p) @system @nogc nothrow pure;
1300 extern (C) void ep4_set_infty(scope ep4_st* p) @system @nogc nothrow pure;
1301 extern (C) void ep4_copy(scope ep4_st* r, scope const(ep4_st)* p) @system @nogc nothrow pure;
1302 extern (C) int ep4_cmp(scope const(ep4_st)* p, scope const(ep4_st)* q) @system @nogc nothrow pure;
1303 extern (C) void ep4_rand(scope ep4_st* p) @system @nogc nothrow pure;
1304 extern (C) void ep4_blind(scope ep4_st* r, scope const(ep4_st)* p) @system @nogc nothrow pure;
1305 extern (C) void ep4_rhs(scope fp2_t* rhs, scope const(fp2_t)* x) @system @nogc nothrow pure;
1306 extern (C) int ep4_on_curve(scope const(ep4_st)* p) @system @nogc nothrow pure;
1307 extern (C) void ep4_tab(scope ep4_t* t, scope const(ep4_st)* p, int w) @system @nogc nothrow pure;
1308 extern (C) void ep4_print(scope const(ep4_st)* p) @system @nogc nothrow pure;
1309 extern (C) size_t ep4_size_bin(scope const(ep4_st)* a, int pack) @system @nogc nothrow pure;
1310 extern (C) void ep4_read_bin(scope ep4_st* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
1311 extern (C) void ep4_write_bin(scope ubyte* bin, size_t len, scope const(ep4_st)* a, int pack) @system @nogc nothrow pure;
1312 extern (C) void ep4_neg(scope ep4_st* r, scope const(ep4_st)* p) @system @nogc nothrow pure;
1313 extern (C) void ep4_add_basic(scope ep4_st* r, scope const(ep4_st)* p, scope const(ep4_st)* q) @system @nogc nothrow pure;
1314 extern (C) void ep4_add_slp_basic(scope ep4_st* r, scope fp2_t* s, scope const(ep4_st)* p, scope const(
1315         ep4_st)* q) @system @nogc nothrow pure;
1316 extern (C) void ep4_add_projc(scope ep4_st* r, scope const(ep4_st)* p, scope const(ep4_st)* q) @system @nogc nothrow pure;
1317 extern (C) void ep4_add_jacob(scope ep4_st* r, scope const(ep4_st)* p, scope const(ep4_st)* q) @system @nogc nothrow pure;
1318 extern (C) void ep4_sub(scope ep4_st* r, scope const(ep4_st)* p, scope const(ep4_st)* q) @system @nogc nothrow pure;
1319 extern (C) void ep4_dbl_basic(scope ep4_st* r, scope const(ep4_st)* p) @system @nogc nothrow pure;
1320 extern (C) void ep4_dbl_slp_basic(scope ep4_st* r, scope fp2_t* s, scope const(ep4_st)* p) @system @nogc nothrow pure;
1321 extern (C) void ep4_dbl_projc(scope ep4_st* r, scope const(ep4_st)* p) @system @nogc nothrow pure;
1322 extern (C) void ep4_dbl_jacob(scope ep4_st* r, scope const(ep4_st)* p) @system @nogc nothrow pure;
1323 extern (C) void ep4_mul_basic(scope ep4_st* r, scope const(ep4_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1324 extern (C) void ep4_mul_slide(scope ep4_st* r, scope const(ep4_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1325 extern (C) void ep4_mul_monty(scope ep4_st* r, scope const(ep4_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1326 extern (C) void ep4_mul_lwnaf(scope ep4_st* r, scope const(ep4_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1327 extern (C) void ep4_mul_lwreg(scope ep4_st* r, scope const(ep4_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1328 extern (C) void ep4_mul_gen(scope ep4_st* r, scope const(bn_st)* k) @system @nogc nothrow pure;
1329 extern (C) void ep4_mul_dig(scope ep4_st* r, scope const(ep4_st)* p, const(ulong) k) @system @nogc nothrow pure;
1330 extern (C) void ep4_mul_cof(scope ep4_st* r, scope const(ep4_st)* p) @system @nogc nothrow pure;
1331 extern (C) void ep4_mul_pre_basic(scope ep4_t* t, scope const(ep4_st)* p) @system @nogc nothrow pure;
1332 extern (C) void ep4_mul_pre_yaowi(scope ep4_t* t, scope const(ep4_st)* p) @system @nogc nothrow pure;
1333 extern (C) void ep4_mul_pre_nafwi(scope ep4_t* t, scope const(ep4_st)* p) @system @nogc nothrow pure;
1334 extern (C) void ep4_mul_pre_combs(scope ep4_t* t, scope const(ep4_st)* p) @system @nogc nothrow pure;
1335 extern (C) void ep4_mul_pre_combd(scope ep4_t* t, scope const(ep4_st)* p) @system @nogc nothrow pure;
1336 extern (C) void ep4_mul_pre_lwnaf(scope ep4_t* t, scope const(ep4_st)* p) @system @nogc nothrow pure;
1337 extern (C) void ep4_mul_fix_basic(scope ep4_st* r, scope const(ep4_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1338 extern (C) void ep4_mul_fix_yaowi(scope ep4_st* r, scope const(ep4_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1339 extern (C) void ep4_mul_fix_nafwi(scope ep4_st* r, scope const(ep4_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1340 extern (C) void ep4_mul_fix_combs(scope ep4_st* r, scope const(ep4_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1341 extern (C) void ep4_mul_fix_combd(scope ep4_st* r, scope const(ep4_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1342 extern (C) void ep4_mul_fix_lwnaf(scope ep4_st* r, scope const(ep4_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1343 extern (C) void ep4_mul_sim_basic(scope ep4_st* r, scope const(ep4_st)* p, scope const(bn_st)* k, scope const(
1344         ep4_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1345 extern (C) void ep4_mul_sim_trick(scope ep4_st* r, scope const(ep4_st)* p, scope const(bn_st)* k, scope const(
1346         ep4_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1347 extern (C) void ep4_mul_sim_inter(scope ep4_st* r, scope const(ep4_st)* p, scope const(bn_st)* k, scope const(
1348         ep4_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1349 extern (C) void ep4_mul_sim_joint(scope ep4_st* r, scope const(ep4_st)* p, scope const(bn_st)* k, scope const(
1350         ep4_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1351 extern (C) void ep4_mul_sim_lot(scope ep4_st* r, scope const(ep4_t)* p, scope const(bn_t)* k, size_t n) @system @nogc nothrow pure;
1352 extern (C) void ep4_mul_sim_gen(scope ep4_st* r, scope const(bn_st)* k, scope const(ep4_st)* q, scope const(
1353         bn_st)* m) @system @nogc nothrow pure;
1354 extern (C) void ep4_mul_sim_dig(scope ep4_st* r, scope const(ep4_t)* p, scope const(dig_t)* k, size_t len) @system @nogc nothrow pure;
1355 extern (C) void ep4_norm(scope ep4_st* r, scope const(ep4_st)* p) @system @nogc nothrow pure;
1356 extern (C) void ep4_norm_sim(scope ep4_t* r, scope const(ep4_t)* t, int n) @system @nogc nothrow pure;
1357 extern (C) void ep4_map(scope ep4_st* p, scope const(ubyte)* msg, size_t len) @system @nogc nothrow pure;
1358 extern (C) void ep4_frb(scope ep4_st* r, scope const(ep4_st)* p, int i) @system @nogc nothrow pure;
1359 extern (C) void ep4_pck(scope ep4_st* r, scope const(ep4_st)* p) @system @nogc nothrow pure;
1360 extern (C) int ep4_upk(scope ep4_st* r, scope const(ep4_st)* p) @system @nogc nothrow pure;
1361 extern (C) void ep8_curve_init() @system @nogc nothrow pure;
1362 extern (C) void ep8_curve_clean() @system @nogc nothrow pure;
1363 extern (C) fp4_t* ep8_curve_get_a() @system @nogc nothrow pure;
1364 extern (C) fp4_t* ep8_curve_get_b() @system @nogc nothrow pure;
1365 extern (C) int ep8_curve_opt_a() @system @nogc nothrow pure;
1366 extern (C) int ep8_curve_opt_b() @system @nogc nothrow pure;
1367 extern (C) void ep8_curve_mul_a(scope fp4_t* c, scope const(fp4_t)* a) @system @nogc nothrow pure;
1368 extern (C) void ep8_curve_mul_b(scope fp4_t* c, scope const(fp4_t)* a) @system @nogc nothrow pure;
1369 extern (C) int ep8_curve_is_twist() @system @nogc nothrow pure;
1370 extern (C) void ep8_curve_get_gen(scope ep8_st* g) @system @nogc nothrow pure;
1371 extern (C) ep8_t* ep8_curve_get_tab() @system @nogc nothrow pure;
1372 extern (C) void ep8_curve_get_ord(scope bn_st* n) @system @nogc nothrow pure;
1373 extern (C) void ep8_curve_get_cof(scope bn_st* h) @system @nogc nothrow pure;
1374 extern (C) void ep8_curve_set(scope const(fp4_t)* a, scope const(fp4_t)* b, scope const(ep8_st)* g, scope const(
1375         bn_st)* r, scope const(bn_st)* h) @system @nogc nothrow pure;
1376 extern (C) void ep8_curve_set_twist(int type) @system @nogc nothrow pure;
1377 extern (C) int ep8_is_infty(scope const(ep8_st)* p) @system @nogc nothrow pure;
1378 extern (C) void ep8_set_infty(scope ep8_st* p) @system @nogc nothrow pure;
1379 extern (C) void ep8_copy(scope ep8_st* r, scope const(ep8_st)* p) @system @nogc nothrow pure;
1380 extern (C) int ep8_cmp(scope const(ep8_st)* p, scope const(ep8_st)* q) @system @nogc nothrow pure;
1381 extern (C) void ep8_rand(scope ep8_st* p) @system @nogc nothrow pure;
1382 extern (C) void ep8_blind(scope ep8_st* r, scope const(ep8_st)* p) @system @nogc nothrow pure;
1383 extern (C) void ep8_rhs(scope fp4_t* rhs, scope const(fp4_t)* x) @system @nogc nothrow pure;
1384 extern (C) int ep8_on_curve(scope const(ep8_st)* p) @system @nogc nothrow pure;
1385 extern (C) void ep8_tab(scope ep8_t* t, scope const(ep8_st)* p, int w) @system @nogc nothrow pure;
1386 extern (C) void ep8_print(scope const(ep8_st)* p) @system @nogc nothrow pure;
1387 extern (C) size_t ep8_size_bin(scope const(ep8_st)* a, int pack) @system @nogc nothrow pure;
1388 extern (C) void ep8_read_bin(scope ep8_st* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
1389 extern (C) void ep8_write_bin(scope ubyte* bin, size_t len, scope const(ep8_st)* a, int pack) @system @nogc nothrow pure;
1390 extern (C) void ep8_neg(scope ep8_st* r, scope const(ep8_st)* p) @system @nogc nothrow pure;
1391 extern (C) void ep8_add_basic(scope ep8_st* r, scope const(ep8_st)* p, scope const(ep8_st)* q) @system @nogc nothrow pure;
1392 extern (C) void ep8_add_slp_basic(scope ep8_st* r, scope fp4_t* s, scope const(ep8_st)* p, scope const(
1393         ep8_st)* q) @system @nogc nothrow pure;
1394 extern (C) void ep8_add_projc(scope ep8_st* r, scope const(ep8_st)* p, scope const(ep8_st)* q) @system @nogc nothrow pure;
1395 extern (C) void ep8_add_jacob(scope ep8_st* r, scope const(ep8_st)* p, scope const(ep8_st)* q) @system @nogc nothrow pure;
1396 extern (C) void ep8_sub(scope ep8_st* r, scope const(ep8_st)* p, scope const(ep8_st)* q) @system @nogc nothrow pure;
1397 extern (C) void ep8_dbl_basic(scope ep8_st* r, scope const(ep8_st)* p) @system @nogc nothrow pure;
1398 extern (C) void ep8_dbl_slp_basic(scope ep8_st* r, scope fp4_t* s, scope const(ep8_st)* p) @system @nogc nothrow pure;
1399 extern (C) void ep8_dbl_projc(scope ep8_st* r, scope const(ep8_st)* p) @system @nogc nothrow pure;
1400 extern (C) void ep8_dbl_jacob(scope ep8_st* r, scope const(ep8_st)* p) @system @nogc nothrow pure;
1401 extern (C) void ep8_mul_basic(scope ep8_st* r, scope const(ep8_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1402 extern (C) void ep8_mul_slide(scope ep8_st* r, scope const(ep8_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1403 extern (C) void ep8_mul_monty(scope ep8_st* r, scope const(ep8_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1404 extern (C) void ep8_mul_lwnaf(scope ep8_st* r, scope const(ep8_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1405 extern (C) void ep8_mul_lwreg(scope ep8_st* r, scope const(ep8_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1406 extern (C) void ep8_mul_gen(scope ep8_st* r, scope const(bn_st)* k) @system @nogc nothrow pure;
1407 extern (C) void ep8_mul_dig(scope ep8_st* r, scope const(ep8_st)* p, const(ulong) k) @system @nogc nothrow pure;
1408 extern (C) void ep8_mul_cof(scope ep8_st* r, scope const(ep8_st)* p) @system @nogc nothrow pure;
1409 extern (C) void ep8_mul_pre_basic(scope ep8_t* t, scope const(ep8_st)* p) @system @nogc nothrow pure;
1410 extern (C) void ep8_mul_pre_yaowi(scope ep8_t* t, scope const(ep8_st)* p) @system @nogc nothrow pure;
1411 extern (C) void ep8_mul_pre_nafwi(scope ep8_t* t, scope const(ep8_st)* p) @system @nogc nothrow pure;
1412 extern (C) void ep8_mul_pre_combs(scope ep8_t* t, scope const(ep8_st)* p) @system @nogc nothrow pure;
1413 extern (C) void ep8_mul_pre_combd(scope ep8_t* t, scope const(ep8_st)* p) @system @nogc nothrow pure;
1414 extern (C) void ep8_mul_pre_lwnaf(scope ep8_t* t, scope const(ep8_st)* p) @system @nogc nothrow pure;
1415 extern (C) void ep8_mul_fix_basic(scope ep8_st* r, scope const(ep8_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1416 extern (C) void ep8_mul_fix_yaowi(scope ep8_st* r, scope const(ep8_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1417 extern (C) void ep8_mul_fix_nafwi(scope ep8_st* r, scope const(ep8_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1418 extern (C) void ep8_mul_fix_combs(scope ep8_st* r, scope const(ep8_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1419 extern (C) void ep8_mul_fix_combd(scope ep8_st* r, scope const(ep8_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1420 extern (C) void ep8_mul_fix_lwnaf(scope ep8_st* r, scope const(ep8_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1421 extern (C) void ep8_mul_sim_basic(scope ep8_st* r, scope const(ep8_st)* p, scope const(bn_st)* k, scope const(
1422         ep8_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1423 extern (C) void ep8_mul_sim_trick(scope ep8_st* r, scope const(ep8_st)* p, scope const(bn_st)* k, scope const(
1424         ep8_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1425 extern (C) void ep8_mul_sim_inter(scope ep8_st* r, scope const(ep8_st)* p, scope const(bn_st)* k, scope const(
1426         ep8_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1427 extern (C) void ep8_mul_sim_joint(scope ep8_st* r, scope const(ep8_st)* p, scope const(bn_st)* k, scope const(
1428         ep8_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1429 extern (C) void ep8_mul_sim_lot(scope ep8_st* r, scope const(ep8_t)* p, scope const(bn_t)* k, size_t n) @system @nogc nothrow pure;
1430 extern (C) void ep8_mul_sim_gen(scope ep8_st* r, scope const(bn_st)* k, scope const(ep8_st)* q, scope const(
1431         bn_st)* m) @system @nogc nothrow pure;
1432 extern (C) void ep8_mul_sim_dig(scope ep8_st* r, scope const(ep8_t)* p, scope const(dig_t)* k, size_t len) @system @nogc nothrow pure;
1433 extern (C) void ep8_norm(scope ep8_st* r, scope const(ep8_st)* p) @system @nogc nothrow pure;
1434 extern (C) void ep8_norm_sim(scope ep8_t* r, scope const(ep8_t)* t, int n) @system @nogc nothrow pure;
1435 extern (C) void ep8_map(scope ep8_st* p, scope const(ubyte)* msg, size_t len) @system @nogc nothrow pure;
1436 extern (C) void ep8_frb(scope ep8_st* r, scope const(ep8_st)* p, int i) @system @nogc nothrow pure;
1437 extern (C) void ep8_pck(scope ep8_st* r, scope const(ep8_st)* p) @system @nogc nothrow pure;
1438 extern (C) int ep8_upk(scope ep8_st* r, scope const(ep8_st)* p) @system @nogc nothrow pure;
1439 extern (C) void ed_param_set(int param) @system @nogc nothrow pure;
1440 extern (C) int ed_param_set_any() @system @nogc nothrow pure;
1441 extern (C) int ed_param_get() @system @nogc nothrow pure;
1442 extern (C) void ed_curve_get_ord(scope bn_st* r) @system @nogc nothrow pure;
1443 extern (C) void ed_curve_get_gen(scope ed_st* g) @system @nogc nothrow pure;
1444 extern (C) const(ed_t)* ed_curve_get_tab() @system @nogc nothrow pure;
1445 extern (C) void ed_curve_get_cof(scope bn_st* h) @system @nogc nothrow pure;
1446 extern (C) void ed_param_print() @system @nogc nothrow pure;
1447 extern (C) int ed_param_level() @system @nogc nothrow pure;
1448 extern (C) void ed_rand(scope ed_st* p) @system @nogc nothrow pure;
1449 extern (C) void ed_blind(scope ed_st* r, scope const(ed_st)* p) @system @nogc nothrow pure;
1450 extern (C) void ed_rhs(scope dig_t* rhs, scope const(dig_t)* p) @system @nogc nothrow pure;
1451 extern (C) void ed_copy(scope ed_st* r, scope const(ed_st)* p) @system @nogc nothrow pure;
1452 extern (C) int ed_cmp(scope const(ed_st)* p, scope const(ed_st)* q) @system @nogc nothrow pure;
1453 extern (C) void ed_set_infty(scope ed_st* p) @system @nogc nothrow pure;
1454 extern (C) int ed_is_infty(scope const(ed_st)* p) @system @nogc nothrow pure;
1455 extern (C) void ed_neg_basic(scope ed_st* r, scope const(ed_st)* p) @system @nogc nothrow pure;
1456 extern (C) void ed_neg_projc(scope ed_st* r, scope const(ed_st)* p) @system @nogc nothrow pure;
1457 extern (C) void ed_add_basic(scope ed_st* r, scope const(ed_st)* p, scope const(ed_st)* q) @system @nogc nothrow pure;
1458 extern (C) void ed_add_projc(scope ed_st* r, scope const(ed_st)* p, scope const(ed_st)* q) @system @nogc nothrow pure;
1459 extern (C) void ed_add_extnd(scope ed_st* r, scope const(ed_st)* p, scope const(ed_st)* q) @system @nogc nothrow pure;
1460 extern (C) void ed_sub_basic(scope ed_st* r, scope const(ed_st)* p, scope const(ed_st)* q) @system @nogc nothrow pure;
1461 extern (C) void ed_sub_projc(scope ed_st* r, scope const(ed_st)* p, scope const(ed_st)* q) @system @nogc nothrow pure;
1462 extern (C) void ed_sub_extnd(scope ed_st* r, scope const(ed_st)* p, scope const(ed_st)* q) @system @nogc nothrow pure;
1463 extern (C) void ed_dbl_basic(scope ed_st* r, scope const(ed_st)* p) @system @nogc nothrow pure;
1464 extern (C) void ed_dbl_projc(scope ed_st* r, scope const(ed_st)* p) @system @nogc nothrow pure;
1465 extern (C) void ed_dbl_extnd(scope ed_st* r, scope const(ed_st)* p) @system @nogc nothrow pure;
1466 extern (C) void ed_norm(scope ed_st* r, scope const(ed_st)* p) @system @nogc nothrow pure;
1467 extern (C) void ed_norm_sim(scope ed_t* r, scope const(ed_t)* t, int n) @system @nogc nothrow pure;
1468 extern (C) void ed_map(scope ed_st* p, scope const(ubyte)* msg, size_t len) @system @nogc nothrow pure;
1469 extern (C) void ed_map_dst(scope ed_st* p, scope const(ubyte)* msg, size_t len, scope const(ubyte)* dst, size_t dst_len) @system @nogc nothrow pure;
1470 extern (C) void ed_curve_init() @system @nogc nothrow pure;
1471 extern (C) void ed_curve_clean() @system @nogc nothrow pure;
1472 extern (C) void ed_mul_pre_basic(scope ed_t* t, scope const(ed_st)* p) @system @nogc nothrow pure;
1473 extern (C) void ed_mul_pre_yaowi(scope ed_t* t, scope const(ed_st)* p) @system @nogc nothrow pure;
1474 extern (C) void ed_mul_pre_nafwi(scope ed_t* t, scope const(ed_st)* p) @system @nogc nothrow pure;
1475 extern (C) void ed_mul_pre_combs(scope ed_t* t, scope const(ed_st)* p) @system @nogc nothrow pure;
1476 extern (C) void ed_mul_pre_combd(scope ed_t* t, scope const(ed_st)* p) @system @nogc nothrow pure;
1477 extern (C) void ed_mul_pre_lwnaf(scope ed_t* t, scope const(ed_st)* p) @system @nogc nothrow pure;
1478 extern (C) void ed_mul_fix_basic(scope ed_st* r, scope const(ed_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1479 extern (C) void ed_mul_fix_yaowi(scope ed_st* r, scope const(ed_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1480 extern (C) void ed_mul_fix_nafwi(scope ed_st* r, scope const(ed_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1481 extern (C) void ed_mul_fix_combs(scope ed_st* r, scope const(ed_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1482 extern (C) void ed_mul_fix_combd(scope ed_st* r, scope const(ed_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1483 extern (C) void ed_mul_fix_lwnaf(scope ed_st* r, scope const(ed_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1484 extern (C) void ed_mul_fix_lwnaf_mixed(scope ed_st* r, scope const(ed_t)* t, scope const(bn_st)* k) @system @nogc nothrow pure;
1485 extern (C) void ed_mul_gen(scope ed_st* r, scope const(bn_st)* k) @system @nogc nothrow pure;
1486 extern (C) void ed_mul_dig(scope ed_st* r, scope const(ed_st)* p, ulong k) @system @nogc nothrow pure;
1487 extern (C) void ed_mul_sim_basic(scope ed_st* r, scope const(ed_st)* p, scope const(bn_st)* k, scope const(
1488         ed_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1489 extern (C) void ed_mul_sim_trick(scope ed_st* r, scope const(ed_st)* p, scope const(bn_st)* k, scope const(
1490         ed_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1491 extern (C) void ed_mul_sim_inter(scope ed_st* r, scope const(ed_st)* p, scope const(bn_st)* k, scope const(
1492         ed_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1493 extern (C) void ed_mul_sim_joint(scope ed_st* r, scope const(ed_st)* p, scope const(bn_st)* k, scope const(
1494         ed_st)* q, scope const(bn_st)* m) @system @nogc nothrow pure;
1495 extern (C) void ed_mul_sim_lot(scope ed_st* r, scope const(ed_t)* p, scope const(bn_t)* k, int n) @system @nogc nothrow pure;
1496 extern (C) void ed_mul_sim_gen(scope ed_st* r, scope const(bn_st)* k, scope const(ed_st)* q, scope const(
1497         bn_st)* m) @system @nogc nothrow pure;
1498 extern (C) void ed_tab(scope ed_t* t, scope const(ed_st)* p, int w) @system @nogc nothrow pure;
1499 extern (C) void ed_print(scope const(ed_st)* p) @system @nogc nothrow pure;
1500 extern (C) int ed_on_curve(scope const(ed_st)* p) @system @nogc nothrow pure;
1501 extern (C) size_t ed_size_bin(scope const(ed_st)* a, int pack) @system @nogc nothrow pure;
1502 extern (C) void ed_read_bin(scope ed_st* a, scope const(ubyte)* bin, size_t len) @system @nogc nothrow pure;
1503 extern (C) void ed_write_bin(scope ubyte* bin, size_t len, scope const(ed_st)* a, int pack) @system @nogc nothrow pure;
1504 extern (C) void ed_mul_basic(scope ed_st* r, scope const(ed_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1505 extern (C) void ed_mul_slide(scope ed_st* r, scope const(ed_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1506 extern (C) void ed_mul_monty(scope ed_st* r, scope const(ed_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1507 extern (C) void ed_mul_lwnaf(scope ed_st* r, scope const(ed_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1508 extern (C) void ed_mul_lwreg(scope ed_st* r, scope const(ed_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1509 extern (C) void ed_pck(scope ed_st* r, scope const(ed_st)* p) @system @nogc nothrow pure;
1510 extern (C) int ed_upk(scope ed_st* r, scope const(ed_st)* p) @system @nogc nothrow pure;
1511 extern (C) void pp_map_init() @system @nogc nothrow pure;
1512 extern (C) void pp_map_clean() @system @nogc nothrow pure;
1513 extern (C) void pp_add_k1_basic(scope dig_t* l, scope dig_t* m, scope ep_st* r, scope const(ep_st)* p, scope const(
1514         ep_st)* q) @system @nogc nothrow pure;
1515 extern (C) void pp_add_k1_projc(scope dig_t* l, scope dig_t* m, scope ep_st* r, scope const(ep_st)* p, scope const(
1516         ep_st)* q) @system @nogc nothrow pure;
1517 extern (C) void pp_add_k2_basic(scope fp_t* l, scope ep_st* r, scope const(ep_st)* p, scope const(
1518         ep_st)* q) @system @nogc nothrow pure;
1519 extern (C) void pp_add_k2_projc_basic(scope fp_t* l, scope ep_st* r, scope const(ep_st)* p, scope const(
1520         ep_st)* q) @system @nogc nothrow pure;
1521 extern (C) void pp_add_k2_projc_lazyr(scope fp_t* l, scope ep_st* r, scope const(ep_st)* p, scope const(
1522         ep_st)* q) @system @nogc nothrow pure;
1523 extern (C) void pp_add_k8_basic(scope fp4_t* l, scope ep2_st* r, scope const(ep2_st)* q, scope const(
1524         ep_st)* p) @system @nogc nothrow pure;
1525 extern (C) void pp_add_k8_projc_basic(scope fp4_t* l, scope ep2_st* r, scope const(ep2_st)* q, scope const(
1526         ep_st)* p) @system @nogc nothrow pure;
1527 extern (C) void pp_add_k8_projc_lazyr(scope fp4_t* l, scope ep2_st* r, scope const(ep2_st)* q, scope const(
1528         ep_st)* p) @system @nogc nothrow pure;
1529 extern (C) void pp_add_k12_basic(scope fp6_t* l, scope ep2_st* r, scope const(ep2_st)* q, scope const(
1530         ep_st)* p) @system @nogc nothrow pure;
1531 extern (C) void pp_add_k12_projc_basic(scope fp6_t* l, scope ep2_st* r, scope const(ep2_st)* q, scope const(
1532         ep_st)* p) @system @nogc nothrow pure;
1533 extern (C) void pp_add_k12_projc_lazyr(scope fp6_t* l, scope ep2_st* r, scope const(ep2_st)* q, scope const(
1534         ep_st)* p) @system @nogc nothrow pure;
1535 extern (C) void pp_add_lit_k12(scope fp6_t* l, scope ep_st* r, scope const(ep_st)* p, scope const(
1536         ep2_st)* q) @system @nogc nothrow pure;
1537 extern (C) void pp_add_k16_basic(scope fp8_t* l, scope ep4_st* r, scope const(ep4_st)* q, scope const(
1538         ep_st)* p) @system @nogc nothrow pure;
1539 extern (C) void pp_add_k16_projc_basic(scope fp8_t* l, scope ep4_st* r, scope const(ep4_st)* q, scope const(
1540         ep_st)* p) @system @nogc nothrow pure;
1541 extern (C) void pp_add_k16_projc_lazyr(scope fp8_t* l, scope ep4_st* r, scope const(ep4_st)* q, scope const(
1542         ep_st)* p) @system @nogc nothrow pure;
1543 extern (C) void pp_add_lit_k16(scope fp8_t* l, scope ep_st* r, scope const(ep_st)* p, scope const(
1544         ep4_st)* q) @system @nogc nothrow pure;
1545 extern (C) void pp_add_k18_basic(scope fp9_t* l, scope ep3_st* r, scope const(ep3_st)* q, scope const(
1546         ep_st)* p) @system @nogc nothrow pure;
1547 extern (C) void pp_add_k18_projc_basic(scope fp9_t* l, scope ep3_st* r, scope const(ep3_st)* q, scope const(
1548         ep_st)* p) @system @nogc nothrow pure;
1549 extern (C) void pp_add_k18_projc_lazyr(scope fp9_t* l, scope ep3_st* r, scope const(ep3_st)* q, scope const(
1550         ep_st)* p) @system @nogc nothrow pure;
1551 extern (C) void pp_add_lit_k18(scope fp9_t* l, scope ep_st* r, scope const(ep_st)* p, scope const(
1552         ep3_st)* q) @system @nogc nothrow pure;
1553 extern (C) void pp_add_k24_basic(scope fp8_t* l, scope ep4_st* r, scope const(ep4_st)* q, scope const(
1554         ep_st)* p) @system @nogc nothrow pure;
1555 extern (C) void pp_add_k24_projc(scope fp8_t* l, scope ep4_st* r, scope const(ep4_st)* q, scope const(
1556         ep_st)* p) @system @nogc nothrow pure;
1557 extern (C) void pp_add_k48_basic(scope fp24_t* l, scope ep8_st* r, scope const(ep8_st)* q, scope const(
1558         ep_st)* p) @system @nogc nothrow pure;
1559 extern (C) void pp_add_k48_projc(scope fp24_t* l, scope ep8_st* r, scope const(ep8_st)* q, scope const(
1560         ep_st)* p) @system @nogc nothrow pure;
1561 extern (C) void pp_add_k54_basic(scope fp18_t* l, scope fp3_t* rx, scope fp3_t* ry, scope const(
1562         fp3_t)* qx, scope const(fp3_t)* qy, scope const(ep_st)* p) @system @nogc nothrow pure;
1563 extern (C) void pp_add_k54_projc(scope fp18_t* l, scope fp3_t* rx, scope fp3_t* ry, scope fp3_t* rz, scope const(
1564         fp3_t)* qx, scope const(fp3_t)* qy, scope const(ep_st)* p) @system @nogc nothrow pure;
1565 extern (C) void pp_dbl_k1_basic(scope dig_t* l, scope dig_t* m, scope ep_st* r, scope const(ep_st)* p, scope const(
1566         ep_st)* q) @system @nogc nothrow pure;
1567 extern (C) void pp_dbl_k1_projc(scope dig_t* l, scope dig_t* m, scope ep_st* r, scope dig_t* w, scope const(
1568         ep_st)* p, scope const(dig_t)* v, scope const(ep_st)* q) @system @nogc nothrow pure;
1569 extern (C) void pp_dbl_k2_basic(scope fp_t* l, scope ep_st* r, scope const(ep_st)* p, scope const(
1570         ep_st)* q) @system @nogc nothrow pure;
1571 extern (C) void pp_dbl_k2_projc_basic(scope fp_t* l, scope ep_st* r, scope const(ep_st)* p, scope const(
1572         ep_st)* q) @system @nogc nothrow pure;
1573 extern (C) void pp_dbl_k2_projc_lazyr(scope fp_t* l, scope ep_st* r, scope const(ep_st)* p, scope const(
1574         ep_st)* q) @system @nogc nothrow pure;
1575 extern (C) void pp_dbl_k8_basic(scope fp4_t* l, scope ep2_st* r, scope const(ep2_st)* q, scope const(
1576         ep_st)* p) @system @nogc nothrow pure;
1577 extern (C) void pp_dbl_k8_projc_basic(scope fp4_t* l, scope ep2_st* r, scope const(ep2_st)* q, scope const(
1578         ep_st)* p) @system @nogc nothrow pure;
1579 extern (C) void pp_dbl_k8_projc_lazyr(scope fp4_t* l, scope ep2_st* r, scope const(ep2_st)* q, scope const(
1580         ep_st)* p) @system @nogc nothrow pure;
1581 extern (C) void pp_dbl_k12_basic(scope fp6_t* l, scope ep2_st* r, scope const(ep2_st)* q, scope const(
1582         ep_st)* p) @system @nogc nothrow pure;
1583 extern (C) void pp_dbl_k12_projc_basic(scope fp6_t* l, scope ep2_st* r, scope const(ep2_st)* q, scope const(
1584         ep_st)* p) @system @nogc nothrow pure;
1585 extern (C) void pp_dbl_k12_projc_lazyr(scope fp6_t* l, scope ep2_st* r, scope const(ep2_st)* q, scope const(
1586         ep_st)* p) @system @nogc nothrow pure;
1587 extern (C) void pp_dbl_k16_basic(scope fp8_t* l, scope ep4_st* r, scope const(ep4_st)* q, scope const(
1588         ep_st)* p) @system @nogc nothrow pure;
1589 extern (C) void pp_dbl_k16_projc_basic(scope fp8_t* l, scope ep4_st* r, scope const(ep4_st)* q, scope const(
1590         ep_st)* p) @system @nogc nothrow pure;
1591 extern (C) void pp_dbl_k16_projc_lazyr(scope fp8_t* l, scope ep4_st* r, scope const(ep4_st)* q, scope const(
1592         ep_st)* p) @system @nogc nothrow pure;
1593 extern (C) void pp_dbl_k18_basic(scope fp9_t* l, scope ep3_st* r, scope const(ep3_st)* q, scope const(
1594         ep_st)* p) @system @nogc nothrow pure;
1595 extern (C) void pp_dbl_k18_projc_basic(scope fp9_t* l, scope ep3_st* r, scope const(ep3_st)* q, scope const(
1596         ep_st)* p) @system @nogc nothrow pure;
1597 extern (C) void pp_dbl_k18_projc_lazyr(scope fp9_t* l, scope ep3_st* r, scope const(ep3_st)* q, scope const(
1598         ep_st)* p) @system @nogc nothrow pure;
1599 extern (C) void pp_dbl_k24_basic(scope fp8_t* l, scope ep4_st* r, scope const(ep4_st)* q, scope const(
1600         ep_st)* p) @system @nogc nothrow pure;
1601 extern (C) void pp_dbl_k24_projc(scope fp8_t* l, scope ep4_st* r, scope const(ep4_st)* q, scope const(
1602         ep_st)* p) @system @nogc nothrow pure;
1603 extern (C) void pp_dbl_k48_basic(scope fp24_t* l, scope ep8_st* r, scope const(ep8_st)* q, scope const(
1604         ep_st)* p) @system @nogc nothrow pure;
1605 extern (C) void pp_dbl_k48_projc(scope fp24_t* l, scope ep8_st* r, scope const(ep8_st)* q, scope const(
1606         ep_st)* p) @system @nogc nothrow pure;
1607 extern (C) void pp_dbl_k54_basic(scope fp18_t* l, scope fp3_t* rx, scope fp3_t* ry, scope const(
1608         ep_st)* p) @system @nogc nothrow pure;
1609 extern (C) void pp_dbl_k54_projc(scope fp18_t* l, scope fp3_t* rx, scope fp3_t* ry, scope fp3_t* rz, scope const(
1610         ep_st)* p) @system @nogc nothrow pure;
1611 extern (C) void pp_dbl_lit_k12(scope fp6_t* l, scope ep_st* r, scope const(ep_st)* p, scope const(
1612         ep2_st)* q) @system @nogc nothrow pure;
1613 extern (C) void pp_dbl_lit_k16(scope fp8_t* l, scope ep_st* r, scope const(ep_st)* p, scope const(
1614         ep4_st)* q) @system @nogc nothrow pure;
1615 extern (C) void pp_dbl_lit_k18(scope fp9_t* l, scope ep_st* r, scope const(ep_st)* p, scope const(
1616         ep3_st)* q) @system @nogc nothrow pure;
1617 extern (C) void pp_exp_k1(scope dig_t* c, scope dig_t* a) @system @nogc nothrow pure;
1618 extern (C) void pp_exp_k2(scope fp_t* c, scope fp_t* a) @system @nogc nothrow pure;
1619 extern (C) void pp_exp_k8(scope fp4_t* c, scope fp4_t* a) @system @nogc nothrow pure;
1620 extern (C) void pp_exp_k12(scope fp6_t* c, scope fp6_t* a) @system @nogc nothrow pure;
1621 extern (C) void pp_exp_k16(scope fp8_t* c, scope fp8_t* a) @system @nogc nothrow pure;
1622 extern (C) void pp_exp_k18(scope fp9_t* c, scope fp9_t* a) @system @nogc nothrow pure;
1623 extern (C) void pp_exp_k24(scope fp8_t* c, scope fp8_t* a) @system @nogc nothrow pure;
1624 extern (C) void pp_exp_k48(scope fp24_t* c, scope fp24_t* a) @system @nogc nothrow pure;
1625 extern (C) void pp_exp_k54(scope fp18_t* c, scope fp18_t* a) @system @nogc nothrow pure;
1626 extern (C) void pp_norm_k1(scope ep_st* c, scope const(ep_st)* a) @system @nogc nothrow pure;
1627 extern (C) void pp_norm_k2(scope ep_st* c, scope const(ep_st)* a) @system @nogc nothrow pure;
1628 extern (C) void pp_norm_k8(scope ep2_st* c, scope const(ep2_st)* a) @system @nogc nothrow pure;
1629 extern (C) void pp_norm_k12(scope ep2_st* c, scope const(ep2_st)* a) @system @nogc nothrow pure;
1630 extern (C) void pp_norm_k16(scope ep4_st* c, scope const(ep4_st)* a) @system @nogc nothrow pure;
1631 extern (C) void pp_norm_k18(scope ep3_st* c, scope const(ep3_st)* a) @system @nogc nothrow pure;
1632 extern (C) void pp_norm_k24(scope ep4_st* c, scope const(ep4_st)* a) @system @nogc nothrow pure;
1633 extern (C) void pp_norm_k48(scope ep8_st* c, scope const(ep8_st)* a) @system @nogc nothrow pure;
1634 extern (C) void pp_map_tatep_k1(scope dig_t* r, scope const(ep_st)* p, scope const(ep_st)* q) @system @nogc nothrow pure;
1635 extern (C) void pp_map_sim_tatep_k1(scope dig_t* r, scope const(ep_t)* p, scope const(ep_t)* q, int m) @system @nogc nothrow pure;
1636 extern (C) void pp_map_tatep_k2(scope fp_t* r, scope const(ep_st)* p, scope const(ep_st)* q) @system @nogc nothrow pure;
1637 extern (C) void pp_map_sim_tatep_k2(scope fp_t* r, scope const(ep_t)* p, scope const(ep_t)* q, int m) @system @nogc nothrow pure;
1638 extern (C) void pp_map_weilp_k1(scope dig_t* r, scope const(ep_st)* p, scope const(ep_st)* q) @system @nogc nothrow pure;
1639 extern (C) void pp_map_sim_weilp_k1(scope dig_t* r, scope const(ep_t)* p, scope const(ep_t)* q, int m) @system @nogc nothrow pure;
1640 extern (C) void pp_map_weilp_k2(scope fp_t* r, scope const(ep_st)* p, scope const(ep_st)* q) @system @nogc nothrow pure;
1641 extern (C) void pp_map_sim_weilp_k2(scope fp_t* r, scope const(ep_t)* p, scope const(ep_t)* q, int m) @system @nogc nothrow pure;
1642 extern (C) void pp_map_oatep_k8(scope fp4_t* r, scope const(ep_st)* p, scope const(ep2_st)* q) @system @nogc nothrow pure;
1643 extern (C) void pp_map_sim_oatep_k8(scope fp4_t* r, scope const(ep_t)* p, scope const(ep2_t)* q, int m) @system @nogc nothrow pure;
1644 extern (C) void pp_map_tatep_k12(scope fp6_t* r, scope const(ep_st)* p, scope const(ep2_st)* q) @system @nogc nothrow pure;
1645 extern (C) void pp_map_sim_tatep_k12(scope fp6_t* r, scope const(ep_t)* p, scope const(ep2_t)* q, int m) @system @nogc nothrow pure;
1646 extern (C) void pp_map_weilp_k12(scope fp6_t* r, scope const(ep_st)* p, scope const(ep2_st)* q) @system @nogc nothrow pure;
1647 extern (C) void pp_map_sim_weilp_k12(scope fp6_t* r, scope const(ep_t)* p, scope const(ep2_t)* q, int m) @system @nogc nothrow pure;
1648 extern (C) void pp_map_oatep_k12(scope fp6_t* r, scope const(ep_st)* p, scope const(ep2_st)* q) @system @nogc nothrow pure;
1649 extern (C) void pp_map_sim_oatep_k12(scope fp6_t* r, scope const(ep_t)* p, scope const(ep2_t)* q, int m) @system @nogc nothrow pure;
1650 extern (C) void pp_map_tatep_k16(scope fp8_t* r, scope const(ep_st)* p, scope const(ep4_st)* q) @system @nogc nothrow pure;
1651 extern (C) void pp_map_sim_tatep_k16(scope fp8_t* r, scope const(ep_t)* p, scope const(ep4_t)* q, int m) @system @nogc nothrow pure;
1652 extern (C) void pp_map_weilp_k16(scope fp8_t* r, scope const(ep_st)* p, scope const(ep4_st)* q) @system @nogc nothrow pure;
1653 extern (C) void pp_map_sim_weilp_k16(scope fp8_t* r, scope const(ep_t)* p, scope const(ep4_t)* q, int m) @system @nogc nothrow pure;
1654 extern (C) void pp_map_oatep_k16(scope fp8_t* r, scope const(ep_st)* p, scope const(ep4_st)* q) @system @nogc nothrow pure;
1655 extern (C) void pp_map_sim_oatep_k16(scope fp8_t* r, scope const(ep_t)* p, scope const(ep4_t)* q, int m) @system @nogc nothrow pure;
1656 extern (C) void pp_map_tatep_k18(scope fp9_t* r, scope const(ep_st)* p, scope const(ep3_st)* q) @system @nogc nothrow pure;
1657 extern (C) void pp_map_sim_tatep_k18(scope fp9_t* r, scope const(ep_t)* p, scope const(ep3_t)* q, int m) @system @nogc nothrow pure;
1658 extern (C) void pp_map_weilp_k18(scope fp9_t* r, scope const(ep_st)* p, scope const(ep3_st)* q) @system @nogc nothrow pure;
1659 extern (C) void pp_map_sim_weilp_k18(scope fp9_t* r, scope const(ep_t)* p, scope const(ep3_t)* q, int m) @system @nogc nothrow pure;
1660 extern (C) void pp_map_oatep_k18(scope fp9_t* r, scope const(ep_st)* p, scope const(ep3_st)* q) @system @nogc nothrow pure;
1661 extern (C) void pp_map_sim_oatep_k18(scope fp9_t* r, scope const(ep_t)* p, scope const(ep3_t)* q, int m) @system @nogc nothrow pure;
1662 extern (C) void pp_map_k24(scope fp8_t* r, scope const(ep_st)* p, scope const(ep4_st)* q) @system @nogc nothrow pure;
1663 extern (C) void pp_map_sim_k24(scope fp8_t* r, scope const(ep_t)* p, scope const(ep4_t)* q, int m) @system @nogc nothrow pure;
1664 extern (C) void pp_map_k48(scope fp24_t* r, scope const(ep_st)* p, scope const(ep8_st)* q) @system @nogc nothrow pure;
1665 extern (C) void pp_map_sim_k48(scope fp24_t* r, scope const(ep_t)* p, scope const(ep8_t)* q, int m) @system @nogc nothrow pure;
1666 extern (C) void pp_map_k54(scope fp18_t* r, scope const(ep_st)* p, scope const(fp3_t)* qx, scope const(
1667         fp3_t)* qy) @system @nogc nothrow pure;
1668 extern (C) void pc_core_init() @system @nogc nothrow pure;
1669 extern (C) void pc_core_calc() @system @nogc nothrow pure;
1670 extern (C) void pc_core_clean() @system @nogc nothrow pure;
1671 extern (C) void gt_rand(scope fp6_t* a) @system @nogc nothrow pure;
1672 extern (C) void g1_mul(scope ep_st* r, scope const(ep_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1673 extern (C) void g2_mul(scope ep2_st* r, scope const(ep2_st)* p, scope const(bn_st)* k) @system @nogc nothrow pure;
1674 extern (C) void g1_mul_gen(scope ep_st* r, scope const(bn_st)* k) @system @nogc nothrow pure;
1675 extern (C) void g2_mul_gen(scope ep2_st* r, scope const(bn_st)* k) @system @nogc nothrow pure;
1676 extern (C) void gt_exp(scope fp6_t* c, scope const(fp6_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
1677 extern (C) void gt_exp_sec(scope fp6_t* c, scope const(fp6_t)* a, scope const(bn_st)* b) @system @nogc nothrow pure;
1678 extern (C) void gt_exp_dig(scope fp6_t* c, scope const(fp6_t)* a, const(ulong) b) @system @nogc nothrow pure;
1679 extern (C) void gt_exp_sim(scope fp6_t* e, scope const(fp6_t)* a, scope const(bn_st)* b, scope const(
1680         fp6_t)* c, scope const(bn_st)* d) @system @nogc nothrow pure;
1681 extern (C) void gt_exp_gen(scope fp6_t* c, scope const(bn_st)* b) @system @nogc nothrow pure;
1682 extern (C) void gt_get_gen(scope fp6_t* g) @system @nogc nothrow pure;
1683 extern (C) int g1_is_valid(scope const(ep_st)* a) @system @nogc nothrow pure;
1684 extern (C) int g2_is_valid(scope const(ep2_st)* a) @system @nogc nothrow pure;
1685 extern (C) int gt_is_valid(scope const(fp6_t)* a) @system @nogc nothrow pure;
1686 extern (C) void bench_init() @system @nogc nothrow pure;
1687 extern (C) void bench_clean() @system @nogc nothrow pure;
1688 extern (C) void bench_overhead() @system @nogc nothrow pure;
1689 extern (C) void bench_reset() @system @nogc nothrow pure;
1690 extern (C) void bench_before() @system @nogc nothrow pure;
1691 extern (C) void bench_after() @system @nogc nothrow pure;
1692 extern (C) void bench_compute(int benches) @system @nogc nothrow pure;
1693 extern (C) void bench_print() @system @nogc nothrow pure;
1694 extern (C) ulong bench_total() @system @nogc nothrow pure;
1695 extern (C) void rand_init() @system @nogc nothrow pure;
1696 extern (C) void rand_clean() @system @nogc nothrow pure;
1697 extern (C) void rand_seed(scope ubyte* buf, size_t size) @system @nogc nothrow pure;
1698 extern (C) int rand_check(scope ubyte* buf, size_t size) @system @nogc nothrow pure;
1699 extern (C) void rand_bytes(scope ubyte* buf, size_t size) @system @nogc nothrow pure;
1700 extern (C) int core_init() @system @nogc nothrow pure;
1701 extern (C) int core_clean() @system @nogc nothrow pure;
1702 extern (C) ctx_t* core_get() @system @nogc nothrow pure;
1703 extern (C) void core_set(scope ctx_t* _ctx) @system @nogc nothrow pure;
1704 extern (C) void fb2_mul(scope fb_t* c, scope const(fb_t)* a, scope const(fb_t)* b) @system @nogc nothrow pure;
1705 extern (C) void fb2_mul_nor(scope fb_t* c, scope const(fb_t)* a) @system @nogc nothrow pure;
1706 extern (C) void fb2_sqr(scope fb_t* c, scope const(fb_t)* a) @system @nogc nothrow pure;
1707 extern (C) void fb2_slv(scope fb_t* c, scope const(fb_t)* a) @system @nogc nothrow pure;
1708 extern (C) void fb2_inv(scope fb_t* c, scope const(fb_t)* a) @system @nogc nothrow pure;
1709 extern (C) void mpc_mt_gen(scope mt_t* tri, scope const(bn_st)* order) @system @nogc nothrow pure;
1710 extern (C) void mpc_mt_lcl(scope bn_st* d, scope bn_st* e, scope const(bn_st)* x, scope const(bn_st)* y, scope const(
1711         bn_st)* n, scope const(mt_t)* tri) @system @nogc nothrow pure;
1712 extern (C) void mpc_mt_bct(scope bn_t* d, scope bn_t* e, scope bn_st* n) @system @nogc nothrow pure;
1713 extern (C) void mpc_mt_mul(scope bn_st* r, scope const(bn_st)* d, scope const(bn_st)* e, scope const(
1714         bn_st)* n, scope const(mt_t)* tri, int party) @system @nogc nothrow pure;
1715 extern (C) int mpc_sss_gen(scope bn_t* x, scope bn_t* y, scope const(bn_st)* key, scope const(bn_st)* order, size_t k, size_t n) @system @nogc nothrow pure;
1716 extern (C) int mpc_sss_key(scope bn_st* key, scope const(bn_t)* x, scope const(bn_t)* y, scope const(
1717         bn_st)* order, size_t k) @system @nogc nothrow pure;
1718 extern (C) void g1_mul_lcl(scope bn_st* d, scope ep_st* q, scope const(bn_st)* x, scope const(ep_st)* p, scope const(
1719         mt_t)* tri) @system @nogc nothrow pure;
1720 extern (C) void g1_mul_bct(scope bn_t* d, scope g1_t* q) @system @nogc nothrow pure;
1721 extern (C) void g1_mul_mpc(scope ep_st* r, scope const(bn_st)* d, scope const(ep_st)* q, scope const(
1722         mt_t)* tri, int party) @system @nogc nothrow pure;
1723 extern (C) void g2_mul_lcl(scope bn_st* d, scope ep2_st* q, scope const(bn_st)* x, scope const(
1724         ep2_st)* p, scope const(mt_t)* tri) @system @nogc nothrow pure;
1725 extern (C) void g2_mul_bct(scope bn_t* d, scope g2_t* q) @system @nogc nothrow pure;
1726 extern (C) void g2_mul_mpc(scope ep2_st* r, scope const(bn_st)* d, scope const(ep2_st)* q, scope const(
1727         mt_t)* tri, int party) @system @nogc nothrow pure;
1728 extern (C) void gt_exp_lcl(scope bn_st* d, scope fp6_t* q, scope const(bn_st)* x, scope const(fp6_t)* p, scope const(
1729         mt_t)* tri) @system @nogc nothrow pure;
1730 extern (C) void gt_exp_bct(scope bn_t* d, scope gt_t* q) @system @nogc nothrow pure;
1731 extern (C) void gt_exp_mpc(scope fp6_t* r, scope const(bn_st)* d, scope const(fp6_t)* q, scope const(
1732         mt_t)* tri, int party) @system @nogc nothrow pure;
1733 extern (C) void pc_map_tri(scope pt_t* t) @system @nogc nothrow pure;
1734 extern (C) void pc_map_lcl(scope ep_st* d, scope ep2_st* e, scope const(ep_st)* p, scope const(
1735         ep2_st)* q, scope const(pt_st)* t) @system @nogc nothrow pure;
1736 extern (C) void pc_map_bct(scope g1_t* d, scope g2_t* e) @system @nogc nothrow pure;
1737 extern (C) void pc_map_mpc(scope fp6_t* r, scope const(ep_st)* d1, scope const(ep2_st)* d2, scope const(
1738         pt_st)* triple, int party) @system @nogc nothrow pure;
1739 extern (C) int cp_rsa_gen(scope _rsa_st* pub, scope _rsa_st* prv, size_t bits) @system @nogc nothrow pure;
1740 extern (C) int cp_rsa_enc(scope ubyte* _out, scope size_t* out_len, scope const(ubyte)* _in, size_t in_len, scope const(
1741         _rsa_st)* pub) @system @nogc nothrow pure;
1742 extern (C) int cp_rsa_dec(scope ubyte* _out, scope size_t* out_len, scope const(ubyte)* _in, size_t in_len, scope const(
1743         _rsa_st)* prv) @system @nogc nothrow pure;
1744 extern (C) int cp_rsa_sig(scope ubyte* sig, scope size_t* sig_len, scope const(ubyte)* msg, size_t msg_len, int hash, scope const(
1745         _rsa_st)* prv) @system @nogc nothrow pure;
1746 extern (C) int cp_rsa_ver(scope ubyte* sig, size_t sig_len, scope const(ubyte)* msg, size_t msg_len, int hash, scope const(
1747         _rsa_st)* pub) @system @nogc nothrow pure;
1748 extern (C) int cp_rabin_gen(scope crt_st* pub, scope crt_st* prv, size_t bits) @system @nogc nothrow pure;
1749 extern (C) int cp_rabin_enc(scope ubyte* _out, scope size_t* out_len, scope const(ubyte)* _in, size_t in_len, scope const(
1750         crt_st)* pub) @system @nogc nothrow pure;
1751 extern (C) int cp_rabin_dec(scope ubyte* _out, scope size_t* out_len, scope const(ubyte)* _in, size_t in_len, scope const(
1752         crt_st)* prv) @system @nogc nothrow pure;
1753 extern (C) int cp_bdpe_gen(scope bdpe_st* pub, scope bdpe_st* prv, ulong block, size_t bits) @system @nogc nothrow pure;
1754 extern (C) int cp_bdpe_enc(scope ubyte* _out, scope size_t* out_len, ulong _in, scope const(bdpe_st)* pub) @system @nogc nothrow pure;
1755 extern (C) int cp_bdpe_dec(scope dig_t* _out, scope const(ubyte)* _in, size_t in_len, scope const(
1756         bdpe_st)* prv) @system @nogc nothrow pure;
1757 extern (C) int cp_phpe_gen(scope bn_st* pub, scope crt_st* prv, size_t bits) @system @nogc nothrow pure;
1758 extern (C) int cp_phpe_enc(scope bn_st* c, scope const(bn_st)* m, scope const(bn_st)* pub) @system @nogc nothrow pure;
1759 extern (C) int cp_phpe_add(scope bn_st* r, scope const(bn_st)* c, scope const(bn_st)* d, scope const(
1760         bn_st)* pub) @system @nogc nothrow pure;
1761 extern (C) int cp_phpe_dec(scope bn_st* m, scope const(bn_st)* c, scope const(crt_st)* prv) @system @nogc nothrow pure;
1762 extern (C) int cp_shpe_gen(scope shpe_st* pub, scope shpe_st* prv, size_t sbits, size_t nbits) @system @nogc nothrow pure;
1763 extern (C) int cp_shpe_enc(scope bn_st* c, scope const(bn_st)* m, scope const(shpe_st)* pub) @system @nogc nothrow pure;
1764 extern (C) int cp_shpe_enc_prv(scope bn_st* c, scope const(bn_st)* m, scope const(shpe_st)* prv) @system @nogc nothrow pure;
1765 extern (C) int cp_shpe_dec(scope bn_st* m, scope const(bn_st)* c, scope const(shpe_st)* prv) @system @nogc nothrow pure;
1766 extern (C) int cp_ghpe_gen(scope bn_st* pub, scope bn_st* prv, size_t bits) @system @nogc nothrow pure;
1767 extern (C) int cp_ghpe_enc(scope bn_st* c, scope const(bn_st)* m, scope const(bn_st)* pub, size_t s) @system @nogc nothrow pure;
1768 extern (C) int cp_ghpe_dec(scope bn_st* m, scope const(bn_st)* c, scope const(bn_st)* pub, scope const(
1769         bn_st)* prv, size_t s) @system @nogc nothrow pure;
1770 extern (C) int cp_ecdh_gen(scope bn_st* d, scope ep_st* q) @system @nogc nothrow pure;
1771 extern (C) int cp_ecdh_key(scope ubyte* key, size_t key_len, scope const(bn_st)* d, scope const(
1772         ep_st)* q) @system @nogc nothrow pure;
1773 extern (C) int cp_ecmqv_gen(scope bn_st* d, scope ep_st* q) @system @nogc nothrow pure;
1774 extern (C) int cp_ecmqv_key(scope ubyte* key, size_t key_len, scope const(bn_st)* d1, scope const(
1775         bn_st)* d2, scope const(ep_st)* q2u, scope const(ep_st)* q1v, scope const(ep_st)* q2v) @system @nogc nothrow pure;
1776 extern (C) int cp_ecies_gen(scope bn_st* d, scope ep_st* q) @system @nogc nothrow pure;
1777 extern (C) int cp_ecies_enc(scope ep_st* r, scope ubyte* _out, scope size_t* out_len, scope const(
1778         ubyte)* _in, size_t in_len, scope const(ep_st)* q) @system @nogc nothrow pure;
1779 extern (C) int cp_ecies_dec(scope ubyte* _out, scope size_t* out_len, scope const(ep_st)* r, scope const(
1780         ubyte)* _in, size_t in_len, scope const(bn_st)* d) @system @nogc nothrow pure;
1781 extern (C) int cp_ecdsa_gen(scope bn_st* d, scope ep_st* q) @system @nogc nothrow pure;
1782 extern (C) int cp_ecdsa_sig(scope bn_st* r, scope bn_st* s, scope const(ubyte)* msg, size_t len, int hash, scope const(
1783         bn_st)* d) @system @nogc nothrow pure;
1784 extern (C) int cp_ecdsa_ver(scope const(bn_st)* r, scope const(bn_st)* s, scope const(ubyte)* msg, size_t len, int hash, scope const(
1785         ep_st)* q) @system @nogc nothrow pure;
1786 extern (C) int cp_ecss_gen(scope bn_st* d, scope ep_st* q) @system @nogc nothrow pure;
1787 extern (C) int cp_ecss_sig(scope bn_st* e, scope bn_st* s, scope const(ubyte)* msg, size_t len, scope const(
1788         bn_st)* d) @system @nogc nothrow pure;
1789 extern (C) int cp_ecss_ver(scope bn_st* e, scope bn_st* s, scope const(ubyte)* msg, size_t len, scope const(
1790         ep_st)* q) @system @nogc nothrow pure;
1791 extern (C) int cp_pdpub_gen(scope bn_st* c, scope bn_st* r, scope ep_st* u1, scope ep2_st* u2, scope ep2_st* v2, scope fp6_t* e) @system @nogc nothrow pure;
1792 extern (C) int cp_pdpub_ask(scope ep_st* v1, scope ep2_st* w2, scope const(ep_st)* p, scope const(
1793         ep2_st)* q, scope const(bn_st)* c, scope const(bn_st)* r, scope const(ep_st)* u1, scope const(
1794         ep2_st)* u2, scope const(ep2_st)* v2) @system @nogc nothrow pure;
1795 extern (C) int cp_pdpub_ans(scope gt_t* g, scope const(ep_st)* p, scope const(ep2_st)* q, scope const(
1796         ep_st)* v1, scope const(ep2_st)* v2, scope const(ep2_st)* w2) @system @nogc nothrow pure;
1797 extern (C) int cp_pdpub_ver(scope fp6_t* r, scope const(gt_t)* g, scope const(bn_st)* c, scope const(
1798         fp6_t)* e) @system @nogc nothrow pure;
1799 extern (C) int cp_pdprv_gen(scope bn_st* c, scope bn_t* r, scope g1_t* u1, scope g2_t* u2, scope g2_t* v2, scope gt_t* e) @system @nogc nothrow pure;
1800 extern (C) int cp_pdprv_ask(scope g1_t* v1, scope g2_t* w2, scope const(ep_st)* p, scope const(
1801         ep2_st)* q, scope const(bn_st)* c, scope const(bn_t)* r, scope const(g1_t)* u1, scope const(
1802         g2_t)* u2, scope const(g2_t)* v2) @system @nogc nothrow pure;
1803 extern (C) int cp_pdprv_ans(scope gt_t* g, scope const(g1_t)* v1, scope const(g2_t)* w2) @system @nogc nothrow pure;
1804 extern (C) int cp_pdprv_ver(scope fp6_t* r, scope const(gt_t)* g, scope const(bn_st)* c, scope const(
1805         gt_t)* e) @system @nogc nothrow pure;
1806 extern (C) int cp_lvpub_gen(scope bn_st* c, scope bn_st* r, scope ep_st* u1, scope ep2_st* u2, scope ep2_st* v2, scope fp6_t* e) @system @nogc nothrow pure;
1807 extern (C) int cp_lvpub_ask(scope ep_st* v1, scope ep2_st* w2, scope const(bn_st)* c, scope const(
1808         ep_st)* p, scope const(ep2_st)* q, scope const(bn_st)* r, scope const(ep_st)* u1, scope const(
1809         ep2_st)* u2, scope const(ep2_st)* v2) @system @nogc nothrow pure;
1810 extern (C) int cp_lvpub_ans(scope gt_t* g, scope const(ep_st)* p, scope const(ep2_st)* q, scope const(
1811         ep_st)* v1, scope const(ep2_st)* v2, scope const(ep2_st)* w2) @system @nogc nothrow pure;
1812 extern (C) int cp_lvpub_ver(scope fp6_t* r, scope const(gt_t)* g, scope const(bn_st)* c, scope const(
1813         fp6_t)* e) @system @nogc nothrow pure;
1814 extern (C) int cp_lvprv_gen(scope bn_st* c, scope bn_t* r, scope g1_t* u1, scope g2_t* u2, scope g2_t* v2, scope gt_t* e) @system @nogc nothrow pure;
1815 extern (C) int cp_lvprv_ask(scope g1_t* v1, scope g2_t* w2, scope const(bn_st)* c, scope const(
1816         ep_st)* p, scope const(ep2_st)* q, scope const(bn_t)* r, scope const(g1_t)* u1, scope const(
1817         g2_t)* u2, scope const(g2_t)* v2) @system @nogc nothrow pure;
1818 extern (C) int cp_lvprv_ans(scope gt_t* g, scope const(g1_t)* v1, scope const(g2_t)* w2) @system @nogc nothrow pure;
1819 extern (C) int cp_lvprv_ver(scope fp6_t* r, scope const(gt_t)* g, scope const(bn_st)* c, scope const(
1820         gt_t)* e) @system @nogc nothrow pure;
1821 extern (C) int cp_cades_ask(scope bn_st* t, scope ep_st* t1, scope ep2_st* t2, scope fp6_t* e, scope const(
1822         ep_st)* p, scope const(ep2_st)* q) @system @nogc nothrow pure;
1823 extern (C) int cp_cades_ans(scope gt_t* g, scope const(ep_st)* t1, scope const(ep2_st)* t2, scope const(
1824         ep_st)* p, scope const(ep2_st)* q) @system @nogc nothrow pure;
1825 extern (C) int cp_cades_ver(scope fp6_t* r, scope const(gt_t)* g, scope const(bn_st)* t, scope const(
1826         fp6_t)* e) @system @nogc nothrow pure;
1827 extern (C) int cp_pdbat_gen(scope ep_st* u, scope ep2_st* v, scope fp6_t* e) @system @nogc nothrow pure;
1828 extern (C) int cp_pdbat_ask(scope bn_t* l, scope bn_t* b, scope g1_t* z, scope ep2_st* c, scope const(
1829         ep_st)* u, scope const(ep2_st)* v, scope const(g1_t)* p, scope const(g2_t)* q, size_t m) @system @nogc nothrow pure;
1830 extern (C) int cp_pdbat_ans(scope gt_t* w, scope const(g1_t)* z, scope const(ep2_st)* c, scope const(
1831         ep_st)* u, scope const(g1_t)* p, scope const(g2_t)* q, size_t m) @system @nogc nothrow pure;
1832 extern (C) int cp_pdbat_ver(scope gt_t* rs, scope const(gt_t)* w, scope const(bn_t)* b, scope const(
1833         fp6_t)* e, size_t m) @system @nogc nothrow pure;
1834 extern (C) int cp_mvbat_gen(scope bn_t* l, scope ep2_st* r, scope g2_t* rs, size_t m) @system @nogc nothrow pure;
1835 extern (C) int cp_mvbat_ask(scope bn_t* b, scope g2_t* qs, scope const(g2_t)* rs, scope const(g1_t)* p, scope const(
1836         g2_t)* q, size_t m) @system @nogc nothrow pure;
1837 extern (C) int cp_mvbat_ans(scope gt_t* as, scope gt_t* bs, scope const(g2_t)* qs, scope const(g1_t)* p, scope const(
1838         g2_t)* q, size_t m) @system @nogc nothrow pure;
1839 extern (C) int cp_mvbat_ver(scope gt_t* rs, scope const(gt_t)* as, scope const(gt_t)* bs, scope const(
1840         bn_t)* b, scope const(bn_t)* l, scope const(ep2_st)* r, scope const(g1_t)* p, size_t m) @system @nogc nothrow pure;
1841 extern (C) int cp_amore_gen(scope bn_st* s, scope fp6_t* e) @system @nogc nothrow pure;
1842 extern (C) int cp_amore_ask(scope bn_t* r, scope g1_t* c, scope ep_st* x, scope ep2_st* y, scope ep2_st* d, scope ep_st* u, scope ep2_st* v, scope const(
1843         bn_st)* s, scope const(fp6_t)* e, scope const(g1_t)* p, scope const(g2_t)* q, size_t m) @system @nogc nothrow pure;
1844 extern (C) int cp_amore_ans(scope gt_t* gs, scope const(g1_t)* c, scope const(ep_st)* x, scope const(
1845         ep2_st)* y, scope const(ep2_st)* d, scope const(g1_t)* p, scope const(g2_t)* q, size_t m) @system @nogc nothrow pure;
1846 extern (C) int cp_amore_ver(scope gt_t* gs, scope const(bn_t)* c, scope const(fp6_t)* e, size_t m) @system @nogc nothrow pure;
1847 extern (C) int cp_sokaka_gen(scope bn_st* master) @system @nogc nothrow pure;
1848 extern (C) int cp_sokaka_gen_prv(scope sokaka_st* k, scope const(char)* id, scope bn_st* master) @system @nogc nothrow pure;
1849 extern (C) int cp_sokaka_key(scope ubyte* key, size_t key_len, scope const(char)* id1, scope const(
1850         sokaka_st)* k, scope const(char)* id2) @system @nogc nothrow pure;
1851 extern (C) int cp_bgn_gen(scope bgn_st* pub, scope bgn_st* prv) @system @nogc nothrow pure;
1852 extern (C) int cp_bgn_enc1(scope g1_t* _out, const(ulong) _in, scope const(bgn_st)* pub) @system @nogc nothrow pure;
1853 extern (C) int cp_bgn_dec1(scope dig_t* _out, scope const(g1_t)* _in, scope const(bgn_st)* prv) @system @nogc nothrow pure;
1854 extern (C) int cp_bgn_enc2(scope g2_t* _out, const(ulong) _in, scope const(bgn_st)* pub) @system @nogc nothrow pure;
1855 extern (C) int cp_bgn_dec2(scope dig_t* _out, scope const(g2_t)* _in, scope const(bgn_st)* prv) @system @nogc nothrow pure;
1856 extern (C) int cp_bgn_add(scope gt_t* e, scope const(gt_t)* c, scope const(gt_t)* d) @system @nogc nothrow pure;
1857 extern (C) int cp_bgn_mul(scope gt_t* e, scope const(g1_t)* c, scope const(g2_t)* d) @system @nogc nothrow pure;
1858 extern (C) int cp_bgn_dec(scope dig_t* _out, scope const(gt_t)* _in, scope const(bgn_st)* prv) @system @nogc nothrow pure;
1859 extern (C) int cp_ibe_gen(scope bn_st* master, scope ep_st* pub) @system @nogc nothrow pure;
1860 extern (C) int cp_ibe_gen_prv(scope ep2_st* prv, scope const(char)* id, scope const(bn_st)* master) @system @nogc nothrow pure;
1861 extern (C) int cp_ibe_enc(scope ubyte* _out, scope size_t* out_len, scope const(ubyte)* _in, size_t in_len, scope const(
1862         char)* id, scope const(ep_st)* pub) @system @nogc nothrow pure;
1863 extern (C) int cp_ibe_dec(scope ubyte* _out, scope size_t* out_len, scope const(ubyte)* _in, size_t in_len, scope const(
1864         ep2_st)* prv) @system @nogc nothrow pure;
1865 extern (C) int cp_bls_gen(scope bn_st* d, scope ep2_st* q) @system @nogc nothrow pure;
1866 extern (C) int cp_bls_sig(scope ep_st* s, scope const(ubyte)* msg, size_t len, scope const(bn_st)* d) @system @nogc nothrow pure;
1867 extern (C) int cp_bls_ver(scope const(ep_st)* s, scope const(ubyte)* msg, size_t len, scope const(
1868         ep2_st)* q) @system @nogc nothrow pure;
1869 extern (C) int cp_bls_agg_sig(scope ep_st* sig, scope ep2_st* a, scope const(ep_st)* s, scope const(
1870         ep2_st)* q) @system @nogc nothrow pure;
1871 extern (C) int cp_bls_agg_ver(scope const(ep_st)* s, scope const(ubyte*)* m, scope const(size_t)* l, size_t size, scope const(
1872         g2_t)* q) @system @nogc nothrow pure;
1873 extern (C) int cp_bbs_gen(scope bn_st* d, scope ep2_st* q, scope fp6_t* z) @system @nogc nothrow pure;
1874 extern (C) int cp_bbs_sig(scope ep_st* s, scope const(ubyte)* msg, size_t len, int hash, scope const(
1875         bn_st)* d) @system @nogc nothrow pure;
1876 extern (C) int cp_bbs_ver(scope ep_st* s, scope const(ubyte)* msg, size_t len, int hash, scope const(
1877         ep2_st)* q, scope const(fp6_t)* z) @system @nogc nothrow pure;
1878 extern (C) int cp_cls_gen(scope bn_st* u, scope bn_st* v, scope ep2_st* x, scope ep2_st* y) @system @nogc nothrow pure;
1879 extern (C) int cp_cls_sig(scope ep_st* a, scope ep_st* b, scope ep_st* c, scope const(ubyte)* msg, size_t len, scope const(
1880         bn_st)* u, scope const(bn_st)* v) @system @nogc nothrow pure;
1881 extern (C) int cp_cls_ver(scope const(ep_st)* a, scope const(ep_st)* b, scope const(ep_st)* c, scope const(
1882         ubyte)* msg, size_t len, scope const(ep2_st)* x, scope const(ep2_st)* y) @system @nogc nothrow pure;
1883 extern (C) int cp_cli_gen(scope bn_st* t, scope bn_st* u, scope bn_st* v, scope ep2_st* x, scope ep2_st* y, scope ep2_st* z) @system @nogc nothrow pure;
1884 extern (C) int cp_cli_sig(scope ep_st* a, scope ep_st* A, scope ep_st* b, scope ep_st* B, scope ep_st* c, scope const(
1885         ubyte)* msg, size_t len, scope const(bn_st)* r, scope const(bn_st)* t, scope const(bn_st)* u, scope const(
1886         bn_st)* v) @system @nogc nothrow pure;
1887 extern (C) int cp_cli_ver(scope ep_st* a, scope ep_st* A, scope ep_st* b, scope ep_st* B, scope ep_st* c, scope const(
1888         ubyte)* msg, size_t len, scope const(bn_st)* r, scope const(ep2_st)* x, scope const(ep2_st)* y, scope const(
1889         ep2_st)* z) @system @nogc nothrow pure;
1890 extern (C) int cp_clb_gen(scope bn_st* t, scope bn_st* u, scope bn_t* v, scope ep2_st* x, scope ep2_st* y, scope g2_t* z, size_t l) @system @nogc nothrow pure;
1891 extern (C) int cp_clb_sig(scope ep_st* a, scope g1_t* A, scope ep_st* b, scope g1_t* B, scope ep_st* c, scope const(
1892         ubyte*)* ms, scope const(size_t)* ls, scope const(bn_st)* t, scope const(bn_st)* u, scope const(
1893         bn_t)* v, const(size_t) l) @system @nogc nothrow pure;
1894 extern (C) int cp_clb_ver(scope const(ep_st)* a, scope const(g1_t)* A, scope const(ep_st)* b, scope const(
1895         g1_t)* B, scope const(ep_st)* c, scope const(ubyte*)* ms, scope const(size_t)* ls, scope const(
1896         ep2_st)* x, scope const(ep2_st)* y, scope const(g2_t)* z, size_t l) @system @nogc nothrow pure;
1897 extern (C) int cp_pss_gen(scope bn_st* u, scope bn_st* v, scope ep2_st* g, scope ep2_st* x, scope ep2_st* y) @system @nogc nothrow pure;
1898 extern (C) int cp_pss_sig(scope ep_st* a, scope ep_st* b, scope const(bn_st)* m, scope const(bn_st)* u, scope const(
1899         bn_st)* v) @system @nogc nothrow pure;
1900 extern (C) int cp_pss_ver(scope const(ep_st)* a, scope const(ep_st)* b, scope const(bn_st)* m, scope const(
1901         ep2_st)* g, scope const(ep2_st)* x, scope const(ep2_st)* y) @system @nogc nothrow pure;
1902 extern (C) int cp_mpss_gen(scope bn_t* r, scope bn_t* s, scope ep2_st* g, scope g2_t* x, scope g2_t* y) @system @nogc nothrow pure;
1903 extern (C) int cp_mpss_sig(scope ep_st* a, scope g1_t* b, scope const(bn_t)* m, scope const(bn_t)* r, scope const(
1904         bn_t)* s, scope const(mt_t)* mul_tri, scope const(mt_t)* sm_tri) @system @nogc nothrow pure;
1905 extern (C) int cp_mpss_bct(scope g2_t* x, scope g2_t* y) @system @nogc nothrow pure;
1906 extern (C) int cp_mpss_ver(scope fp6_t* e, scope const(ep_st)* a, scope const(g1_t)* b, scope const(
1907         bn_t)* m, scope const(ep2_st)* h, scope const(ep2_st)* x, scope const(ep2_st)* y, scope const(
1908         mt_t)* sm_tri, scope const(pt_t)* pc_tri) @system @nogc nothrow pure;
1909 extern (C) int cp_psb_gen(scope bn_st* r, scope bn_t* s, scope ep2_st* g, scope ep2_st* x, scope g2_t* y, size_t l) @system @nogc nothrow pure;
1910 extern (C) int cp_psb_sig(scope ep_st* a, scope ep_st* b, scope const(bn_t)* ms, scope const(bn_st)* r, scope const(
1911         bn_t)* s, size_t l) @system @nogc nothrow pure;
1912 extern (C) int cp_psb_ver(scope const(ep_st)* a, scope const(ep_st)* b, scope const(bn_t)* ms, scope const(
1913         ep2_st)* g, scope const(ep2_st)* x, scope const(g2_t)* y, size_t l) @system @nogc nothrow pure;
1914 extern (C) int cp_mpsb_gen(scope bn_t* r, void[2] s, scope ep2_st* h, scope g2_t* x, void[2] y, size_t l) @system @nogc nothrow pure;
1915 extern (C) int cp_mpsb_sig(scope ep_st* a, scope g1_t* b, void[2] m, scope const(bn_t)* r, void[2] s, scope const(
1916         mt_t)* mul_tri, scope const(mt_t)* sm_tri, size_t l) @system @nogc nothrow pure;
1917 extern (C) int cp_mpsb_bct(scope g2_t* x, void[2] y, size_t l) @system @nogc nothrow pure;
1918 extern (C) int cp_mpsb_ver(scope fp6_t* e, scope const(ep_st)* a, scope const(g1_t)* b, void[2] m, scope const(
1919         ep2_st)* h, scope const(ep2_st)* x, void[2] y, void[2] v, scope const(mt_t)* sm_tri, scope const(
1920         pt_t)* pc_tri, size_t l) @system @nogc nothrow pure;
1921 extern (C) int cp_zss_gen(scope bn_st* d, scope ep_st* q, scope fp6_t* z) @system @nogc nothrow pure;
1922 extern (C) int cp_zss_sig(scope ep2_st* s, scope const(ubyte)* msg, size_t len, int hash, scope const(
1923         bn_st)* d) @system @nogc nothrow pure;
1924 extern (C) int cp_zss_ver(scope const(ep2_st)* s, scope const(ubyte)* msg, size_t len, int hash, scope const(
1925         ep_st)* q, scope const(fp6_t)* z) @system @nogc nothrow pure;
1926 extern (C) int cp_vbnn_gen(scope bn_st* msk, scope ep_st* mpk) @system @nogc nothrow pure;
1927 extern (C) int cp_vbnn_gen_prv(scope bn_st* sk, scope ep_st* pk, scope const(bn_st)* msk, scope const(
1928         ubyte)* id, size_t id_len) @system @nogc nothrow pure;
1929 extern (C) int cp_vbnn_sig(scope ep_st* r, scope bn_st* z, scope bn_st* h, scope const(ubyte)* id, size_t id_len, scope const(
1930         ubyte)* msg, int msg_len, scope const(bn_st)* sk, scope const(ep_st)* pk) @system @nogc nothrow pure;
1931 extern (C) int cp_vbnn_ver(scope const(ep_st)* r, scope const(bn_st)* z, scope const(bn_st)* h, scope const(
1932         ubyte)* id, size_t id_len, scope const(ubyte)* msg, int msg_len, scope const(ep_st)* mpk) @system @nogc nothrow pure;
1933 extern (C) int cp_pokdl_prv(scope bn_st* c, scope bn_st* r, scope const(ep_st)* y, scope const(
1934         bn_st)* x) @system @nogc nothrow pure;
1935 extern (C) int cp_pokdl_ver(scope const(bn_st)* c, scope const(bn_st)* r, scope const(ep_st)* y) @system @nogc nothrow pure;
1936 extern (C) int cp_pokor_prv(scope bn_t* c, scope bn_t* r, scope const(ec_t)* y, scope const(bn_st)* x) @system @nogc nothrow pure;
1937 extern (C) int cp_pokor_ver(scope const(bn_t)* c, scope const(bn_t)* r, scope const(ec_t)* y) @system @nogc nothrow pure;
1938 extern (C) int cp_sokdl_sig(scope bn_st* c, scope bn_st* r, scope const(ubyte)* msg, size_t len, scope const(
1939         ep_st)* y, scope const(bn_st)* x) @system @nogc nothrow pure;
1940 extern (C) int cp_sokdl_ver(scope const(bn_st)* c, scope const(bn_st)* r, scope const(ubyte)* msg, size_t len, scope const(
1941         ep_st)* y) @system @nogc nothrow pure;
1942 extern (C) int cp_sokor_sig(scope bn_t* c, scope bn_t* r, scope const(ubyte)* msg, size_t len, scope const(
1943         ec_t)* y, scope const(ec_t)* g, scope const(bn_st)* x, int first) @system @nogc nothrow pure;
1944 extern (C) int cp_sokor_ver(scope const(bn_t)* c, scope const(bn_t)* r, scope const(ubyte)* msg, size_t len, scope const(
1945         ec_t)* y, scope const(ec_t)* g) @system @nogc nothrow pure;
1946 extern (C) int cp_ers_gen(scope ep_st* pp) @system @nogc nothrow pure;
1947 extern (C) int cp_ers_gen_key(scope bn_st* sk, scope ep_st* pk) @system @nogc nothrow pure;
1948 extern (C) int cp_ers_sig(scope bn_st* td, scope ers_t* p, scope const(ubyte)* msg, size_t len, scope const(
1949         bn_st)* sk, scope const(ep_st)* pk, scope const(ep_st)* pp) @system @nogc nothrow pure;
1950 extern (C) int cp_ers_ver(scope const(bn_st)* td, scope const(ers_t)* s, size_t size, scope const(
1951         ubyte)* msg, size_t len, scope const(ep_st)* pp) @system @nogc nothrow pure;
1952 extern (C) int cp_ers_ext(scope bn_st* td, scope ers_t* p, scope size_t* size, scope const(ubyte)* msg, size_t len, scope const(
1953         ep_st)* pk, scope const(ep_st)* pp) @system @nogc nothrow pure;
1954 extern (C) int cp_smlers_sig(scope bn_st* td, scope smlers_t* p, scope const(ubyte)* msg, size_t len, scope const(
1955         bn_st)* sk, scope const(ep_st)* pk, scope const(ep_st)* pp) @system @nogc nothrow pure;
1956 extern (C) int cp_smlers_ver(scope bn_st* td, scope smlers_t* s, size_t size, scope const(ubyte)* msg, size_t len, scope const(
1957         ep_st)* pp) @system @nogc nothrow pure;
1958 extern (C) int cp_smlers_ext(scope bn_st* td, scope smlers_t* p, scope size_t* size, scope const(
1959         ubyte)* msg, size_t len, scope const(ep_st)* pk, scope const(ep_st)* pp) @system @nogc nothrow pure;
1960 extern (C) int cp_etrs_sig(scope bn_t* td, scope bn_t* y, size_t max, scope etrs_st* p, scope const(
1961         ubyte)* msg, size_t len, scope const(bn_st)* sk, scope const(ep_st)* pk, scope const(ep_st)* pp) @system @nogc nothrow pure;
1962 extern (C) int cp_etrs_ver(size_t thres, scope const(bn_t)* td, scope const(bn_t)* y, size_t max, scope const(
1963         etrs_t)* s, size_t size, scope const(ubyte)* msg, size_t len, scope const(ep_st)* pp) @system @nogc nothrow pure;
1964 extern (C) int cp_etrs_ext(scope bn_t* td, scope bn_t* y, size_t max, scope etrs_t* p, scope size_t* size, scope const(
1965         ubyte)* msg, size_t len, scope const(ep_st)* pk, scope const(ep_st)* pp) @system @nogc nothrow pure;
1966 extern (C) int cp_etrs_uni(int thres, scope bn_t* td, scope bn_t* y, int max, scope etrs_t* p, scope size_t* size, scope const(
1967         ubyte)* msg, size_t len, scope const(bn_st)* sk, scope const(ep_st)* pk, scope const(ep_st)* pp) @system @nogc nothrow pure;
1968 extern (C) int cp_ped_com(scope ep_st* c, scope ep_st* h, scope bn_st* r, scope bn_st* x) @system @nogc nothrow pure;
1969 extern (C) int cp_cmlhs_init(scope ep_st* h) @system @nogc nothrow pure;
1970 extern (C) int cp_cmlhs_gen(scope bn_t* x, scope gt_t* hs, size_t len, scope ubyte* prf, size_t plen, scope bn_st* sk, scope ep2_st* pk, scope bn_st* d, scope ep2_st* y, int bls) @system @nogc nothrow pure;
1971 extern (C) int cp_cmlhs_sig(scope ep_st* sig, scope ep2_st* z, scope ep_st* a, scope ep_st* c, scope ep_st* r, scope ep2_st* s, scope const(
1972         bn_st)* msg, scope const(char)* data, int label, scope const(bn_st)* x, scope const(ep_st)* h, scope const(
1973         ubyte)* prf, size_t plen, scope const(bn_st)* sk, scope const(bn_st)* d, int bls) @system @nogc nothrow pure;
1974 extern (C) int cp_cmlhs_fun(scope ep_st* a, scope ep_st* c, scope const(g1_t)* as, scope const(g1_t)* cs, scope const(
1975         dig_t)* f, size_t len) @system @nogc nothrow pure;
1976 extern (C) int cp_cmlhs_evl(scope ep_st* r, scope ep2_st* s, scope const(g1_t)* rs, scope const(
1977         g2_t)* ss, scope const(dig_t)* f, size_t len) @system @nogc nothrow pure;
1978 extern (C) int cp_cmlhs_ver(scope const(ep_st)* r, scope const(ep2_st)* s, scope const(g1_t)* sig, scope const(
1979         g2_t)* z, scope const(g1_t)* a, scope const(g1_t)* c, scope const(bn_st)* m, scope const(
1980         char)* data, scope const(ep_st)* h, scope const(int)* label, scope const(gt_t*)* hs, scope const(
1981         dig_t*)* f, scope const(size_t)* flen, scope const(g2_t)* y, scope const(g2_t)* pk, size_t slen, int bls) @system @nogc nothrow pure;
1982 extern (C) void cp_cmlhs_off(scope fp6_t* vk, scope const(ep_st)* h, scope const(int)* label, scope const(
1983         gt_t*)* hs, scope const(dig_t*)* f, scope const(size_t)* flen, size_t slen) @system @nogc nothrow pure;
1984 extern (C) int cp_cmlhs_onv(scope const(ep_st)* r, scope const(ep2_st)* s, scope const(g1_t)* sig, scope const(
1985         g2_t)* z, scope const(g1_t)* a, scope const(g1_t)* c, scope const(bn_st)* msg, scope const(
1986         char)* data, scope const(ep_st)* h, scope const(fp6_t)* vk, scope const(g2_t)* y, scope const(
1987         g2_t)* pk, size_t slen, int bls) @system @nogc nothrow pure;
1988 extern (C) int cp_mklhs_gen(scope bn_st* sk, scope ep2_st* pk) @system @nogc nothrow pure;
1989 extern (C) int cp_mklhs_sig(scope ep_st* s, scope const(bn_st)* m, scope const(char)* data, scope const(
1990         char)* id, scope const(char)* tag, scope const(bn_st)* sk) @system @nogc nothrow pure;
1991 extern (C) int cp_mklhs_fun(scope bn_st* mu, scope const(bn_t)* m, scope const(dig_t)* f, size_t len) @system @nogc nothrow pure;
1992 extern (C) int cp_mklhs_evl(scope ep_st* sig, scope const(g1_t)* s, scope const(dig_t)* f, size_t len) @system @nogc nothrow pure;
1993 extern (C) int cp_mklhs_ver(scope const(ep_st)* sig, scope const(bn_st)* m, scope const(bn_t)* mu, scope const(
1994         char)* data, scope const(char*)* id, scope const(char*)* tag, scope const(dig_t*)* f, scope const(
1995         size_t)* flen, scope const(g2_t)* pk, size_t slen) @system @nogc nothrow pure;
1996 extern (C) int cp_mklhs_off(scope g1_t* h, scope dig_t* ft, scope const(char*)* id, scope const(
1997         char*)* tag, scope const(dig_t*)* f, scope const(size_t)* flen, size_t slen) @system @nogc nothrow pure;
1998 extern (C) int cp_mklhs_onv(scope const(ep_st)* sig, scope const(bn_st)* m, scope const(bn_t)* mu, scope const(
1999         char)* data, scope const(char*)* id, scope const(g1_t)* h, scope const(dig_t)* ft, scope const(
2000         g2_t)* pk, size_t slen) @system @nogc nothrow pure;
2001 extern (C) int cp_rsapsi_gen(scope bn_st* g, scope bn_st* n, size_t bits) @system @nogc nothrow pure;
2002 extern (C) int cp_rsapsi_ask(scope bn_st* d, scope bn_st* r, scope bn_t* p, scope const(bn_st)* g, scope const(
2003         bn_st)* n, scope const(bn_t)* x, size_t m) @system @nogc nothrow pure;
2004 extern (C) int cp_rsapsi_ans(scope bn_t* t, scope bn_t* u, scope const(bn_st)* d, scope const(bn_st)* g, scope const(
2005         bn_st)* n, scope const(bn_t)* y, size_t l) @system @nogc nothrow pure;
2006 extern (C) int cp_rsapsi_int(scope bn_t* z, scope size_t* len, scope const(bn_st)* r, scope const(
2007         bn_t)* p, scope const(bn_st)* n, scope const(bn_t)* x, const(size_t) m, scope const(bn_t)* t, scope const(
2008         bn_t)* u, size_t l) @system @nogc nothrow pure;
2009 extern (C) int cp_shipsi_gen(scope bn_st* g, scope crt_st* crt, size_t bits) @system @nogc nothrow pure;
2010 extern (C) int cp_shipsi_ask(scope bn_st* d, scope bn_st* r, scope bn_t* p, scope const(bn_st)* g, scope const(
2011         bn_st)* n, scope const(bn_t)* x, size_t m) @system @nogc nothrow pure;
2012 extern (C) int cp_shipsi_ans(scope bn_t* t, scope bn_st* u, scope bn_st* d, scope const(bn_st)* g, scope const(
2013         crt_st)* crt, scope const(bn_t)* y, const(size_t) n) @system @nogc nothrow pure;
2014 extern (C) int cp_shipsi_int(scope bn_t* z, scope size_t* len, scope const(bn_st)* r, scope const(
2015         bn_t)* p, scope const(bn_st)* n, scope const(bn_t)* x, size_t m, scope const(bn_t)* t, scope const(
2016         bn_st)* u, size_t l) @system @nogc nothrow pure;
2017 extern (C) int cp_pbpsi_gen(scope bn_st* sk, scope ep_st* ss, scope g2_t* s, size_t m) @system @nogc nothrow pure;
2018 extern (C) int cp_pbpsi_ask(scope g2_t* d, scope bn_st* r, scope const(bn_t)* x, scope const(g2_t)* s, size_t m) @system @nogc nothrow pure;
2019 extern (C) int cp_pbpsi_ans(scope gt_t* t, scope g1_t* u, scope const(ep_st)* ss, scope const(
2020         ep2_st)* d, scope const(bn_t)* y, size_t n) @system @nogc nothrow pure;
2021 extern (C) int cp_pbpsi_int(scope bn_t* z, scope size_t* len, scope const(g2_t)* d, scope const(
2022         bn_t)* x, size_t m, scope const(gt_t)* t, scope const(g1_t)* u, size_t n) @system @nogc nothrow pure;
2023 extern (C) int bc_aes_cbc_enc(scope ubyte* _out, scope size_t* out_len, scope const(ubyte)* _in, size_t in_len, scope const(
2024         ubyte)* key, size_t key_len, scope const(ubyte)* iv) @system @nogc nothrow pure;
2025 extern (C) int bc_aes_cbc_dec(scope ubyte* _out, scope size_t* out_len, scope const(ubyte)* _in, size_t in_len, scope const(
2026         ubyte)* key, size_t key_len, scope const(ubyte)* iv) @system @nogc nothrow pure;
2027 extern (C) void md_map_sh224(scope ubyte* hash, scope const(ubyte)* msg, size_t len) @system @nogc nothrow pure;
2028 extern (C) void md_map_sh256(scope ubyte* hash, scope const(ubyte)* msg, size_t len) @system @nogc nothrow pure;
2029 extern (C) void md_map_sh384(scope ubyte* hash, scope const(ubyte)* msg, size_t len) @system @nogc nothrow pure;
2030 extern (C) void md_map_sh512(scope ubyte* hash, scope const(ubyte)* msg, size_t len) @system @nogc nothrow pure;
2031 extern (C) void md_map_b2s160(scope ubyte* hash, scope const(ubyte)* msg, size_t len) @system @nogc nothrow pure;
2032 extern (C) void md_map_b2s256(scope ubyte* hash, scope const(ubyte)* msg, size_t len) @system @nogc nothrow pure;
2033 extern (C) void md_kdf(scope ubyte* key, size_t key_len, scope const(ubyte)* _in, size_t in_len) @system @nogc nothrow pure;
2034 extern (C) void md_mgf(scope ubyte* mask, size_t mask_len, scope const(ubyte)* _in, size_t in_len) @system @nogc nothrow pure;
2035 extern (C) void md_hmac(scope ubyte* mac, scope const(ubyte)* _in, size_t in_len, scope const(ubyte)* key, size_t key_len) @system @nogc nothrow pure;
2036 extern (C) void md_xmd_sh224(scope ubyte* buf, size_t buf_len, scope const(ubyte)* _in, size_t in_len, scope const(
2037         ubyte)* dst, size_t dst_len) @system @nogc nothrow pure;
2038 extern (C) void md_xmd_sh256(scope ubyte* buf, size_t buf_len, scope const(ubyte)* _in, size_t in_len, scope const(
2039         ubyte)* dst, size_t dst_len) @system @nogc nothrow pure;
2040 extern (C) void md_xmd_sh384(scope ubyte* buf, size_t buf_len, scope const(ubyte)* _in, size_t in_len, scope const(
2041         ubyte)* dst, size_t dst_len) @system @nogc nothrow pure;
2042 extern (C) void md_xmd_sh512(scope ubyte* buf, size_t buf_len, scope const(ubyte)* _in, size_t in_len, scope const(
2043         ubyte)* dst, size_t dst_len) @system @nogc nothrow pure;