xref: /PHP-8.1/ext/gmp/gmp_arginfo.h (revision 17ceed9a)
1 /* This is a generated file, edit the .stub.php file instead.
2  * Stub hash: be077a57bc9ddbb9100fadfb212857c0b8f21ebf */
3 
4 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_gmp_init, 0, 1, GMP, 0)
5 	ZEND_ARG_TYPE_MASK(0, num, MAY_BE_LONG|MAY_BE_STRING, NULL)
6 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, base, IS_LONG, 0, "0")
7 ZEND_END_ARG_INFO()
8 
9 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_gmp_import, 0, 1, GMP, 0)
10 	ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
11 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, word_size, IS_LONG, 0, "1")
12 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "GMP_MSW_FIRST | GMP_NATIVE_ENDIAN")
13 ZEND_END_ARG_INFO()
14 
15 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gmp_export, 0, 1, IS_STRING, 0)
16 	ZEND_ARG_OBJ_TYPE_MASK(0, num, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
17 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, word_size, IS_LONG, 0, "1")
18 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "GMP_MSW_FIRST | GMP_NATIVE_ENDIAN")
19 ZEND_END_ARG_INFO()
20 
21 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gmp_intval, 0, 1, IS_LONG, 0)
22 	ZEND_ARG_OBJ_TYPE_MASK(0, num, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
23 ZEND_END_ARG_INFO()
24 
25 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gmp_strval, 0, 1, IS_STRING, 0)
26 	ZEND_ARG_OBJ_TYPE_MASK(0, num, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
27 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, base, IS_LONG, 0, "10")
28 ZEND_END_ARG_INFO()
29 
30 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_gmp_add, 0, 2, GMP, 0)
31 	ZEND_ARG_OBJ_TYPE_MASK(0, num1, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
32 	ZEND_ARG_OBJ_TYPE_MASK(0, num2, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
33 ZEND_END_ARG_INFO()
34 
35 #define arginfo_gmp_sub arginfo_gmp_add
36 
37 #define arginfo_gmp_mul arginfo_gmp_add
38 
39 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gmp_div_qr, 0, 2, IS_ARRAY, 0)
40 	ZEND_ARG_OBJ_TYPE_MASK(0, num1, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
41 	ZEND_ARG_OBJ_TYPE_MASK(0, num2, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
42 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, rounding_mode, IS_LONG, 0, "GMP_ROUND_ZERO")
43 ZEND_END_ARG_INFO()
44 
45 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_gmp_div_q, 0, 2, GMP, 0)
46 	ZEND_ARG_OBJ_TYPE_MASK(0, num1, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
47 	ZEND_ARG_OBJ_TYPE_MASK(0, num2, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
48 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, rounding_mode, IS_LONG, 0, "GMP_ROUND_ZERO")
49 ZEND_END_ARG_INFO()
50 
51 #define arginfo_gmp_div_r arginfo_gmp_div_q
52 
53 #define arginfo_gmp_div arginfo_gmp_div_q
54 
55 #define arginfo_gmp_mod arginfo_gmp_add
56 
57 #define arginfo_gmp_divexact arginfo_gmp_add
58 
59 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_gmp_neg, 0, 1, GMP, 0)
60 	ZEND_ARG_OBJ_TYPE_MASK(0, num, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
61 ZEND_END_ARG_INFO()
62 
63 #define arginfo_gmp_abs arginfo_gmp_neg
64 
65 #define arginfo_gmp_fact arginfo_gmp_neg
66 
67 #define arginfo_gmp_sqrt arginfo_gmp_neg
68 
69 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gmp_sqrtrem, 0, 1, IS_ARRAY, 0)
70 	ZEND_ARG_OBJ_TYPE_MASK(0, num, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
71 ZEND_END_ARG_INFO()
72 
73 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_gmp_root, 0, 2, GMP, 0)
74 	ZEND_ARG_OBJ_TYPE_MASK(0, num, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
75 	ZEND_ARG_TYPE_INFO(0, nth, IS_LONG, 0)
76 ZEND_END_ARG_INFO()
77 
78 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gmp_rootrem, 0, 2, IS_ARRAY, 0)
79 	ZEND_ARG_OBJ_TYPE_MASK(0, num, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
80 	ZEND_ARG_TYPE_INFO(0, nth, IS_LONG, 0)
81 ZEND_END_ARG_INFO()
82 
83 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_gmp_pow, 0, 2, GMP, 0)
84 	ZEND_ARG_OBJ_TYPE_MASK(0, num, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
85 	ZEND_ARG_TYPE_INFO(0, exponent, IS_LONG, 0)
86 ZEND_END_ARG_INFO()
87 
88 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_gmp_powm, 0, 3, GMP, 0)
89 	ZEND_ARG_OBJ_TYPE_MASK(0, num, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
90 	ZEND_ARG_OBJ_TYPE_MASK(0, exponent, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
91 	ZEND_ARG_OBJ_TYPE_MASK(0, modulus, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
92 ZEND_END_ARG_INFO()
93 
94 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gmp_perfect_square, 0, 1, _IS_BOOL, 0)
95 	ZEND_ARG_OBJ_TYPE_MASK(0, num, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
96 ZEND_END_ARG_INFO()
97 
98 #define arginfo_gmp_perfect_power arginfo_gmp_perfect_square
99 
100 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gmp_prob_prime, 0, 1, IS_LONG, 0)
101 	ZEND_ARG_OBJ_TYPE_MASK(0, num, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
102 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, repetitions, IS_LONG, 0, "10")
103 ZEND_END_ARG_INFO()
104 
105 #define arginfo_gmp_gcd arginfo_gmp_add
106 
107 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gmp_gcdext, 0, 2, IS_ARRAY, 0)
108 	ZEND_ARG_OBJ_TYPE_MASK(0, num1, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
109 	ZEND_ARG_OBJ_TYPE_MASK(0, num2, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
110 ZEND_END_ARG_INFO()
111 
112 #define arginfo_gmp_lcm arginfo_gmp_add
113 
114 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_gmp_invert, 0, 2, GMP, MAY_BE_FALSE)
115 	ZEND_ARG_OBJ_TYPE_MASK(0, num1, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
116 	ZEND_ARG_OBJ_TYPE_MASK(0, num2, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
117 ZEND_END_ARG_INFO()
118 
119 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gmp_jacobi, 0, 2, IS_LONG, 0)
120 	ZEND_ARG_OBJ_TYPE_MASK(0, num1, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
121 	ZEND_ARG_OBJ_TYPE_MASK(0, num2, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
122 ZEND_END_ARG_INFO()
123 
124 #define arginfo_gmp_legendre arginfo_gmp_jacobi
125 
126 #define arginfo_gmp_kronecker arginfo_gmp_jacobi
127 
128 #define arginfo_gmp_cmp arginfo_gmp_jacobi
129 
130 #define arginfo_gmp_sign arginfo_gmp_intval
131 
132 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gmp_random_seed, 0, 1, IS_VOID, 0)
133 	ZEND_ARG_OBJ_TYPE_MASK(0, seed, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
134 ZEND_END_ARG_INFO()
135 
136 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_gmp_random_bits, 0, 1, GMP, 0)
137 	ZEND_ARG_TYPE_INFO(0, bits, IS_LONG, 0)
138 ZEND_END_ARG_INFO()
139 
140 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_gmp_random_range, 0, 2, GMP, 0)
141 	ZEND_ARG_OBJ_TYPE_MASK(0, min, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
142 	ZEND_ARG_OBJ_TYPE_MASK(0, max, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
143 ZEND_END_ARG_INFO()
144 
145 #define arginfo_gmp_and arginfo_gmp_add
146 
147 #define arginfo_gmp_or arginfo_gmp_add
148 
149 #define arginfo_gmp_com arginfo_gmp_neg
150 
151 #define arginfo_gmp_xor arginfo_gmp_add
152 
153 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gmp_setbit, 0, 2, IS_VOID, 0)
154 	ZEND_ARG_OBJ_INFO(0, num, GMP, 0)
155 	ZEND_ARG_TYPE_INFO(0, index, IS_LONG, 0)
156 	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, value, _IS_BOOL, 0, "true")
157 ZEND_END_ARG_INFO()
158 
159 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gmp_clrbit, 0, 2, IS_VOID, 0)
160 	ZEND_ARG_OBJ_INFO(0, num, GMP, 0)
161 	ZEND_ARG_TYPE_INFO(0, index, IS_LONG, 0)
162 ZEND_END_ARG_INFO()
163 
164 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gmp_testbit, 0, 2, _IS_BOOL, 0)
165 	ZEND_ARG_OBJ_TYPE_MASK(0, num, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
166 	ZEND_ARG_TYPE_INFO(0, index, IS_LONG, 0)
167 ZEND_END_ARG_INFO()
168 
169 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gmp_scan0, 0, 2, IS_LONG, 0)
170 	ZEND_ARG_OBJ_TYPE_MASK(0, num1, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
171 	ZEND_ARG_TYPE_INFO(0, start, IS_LONG, 0)
172 ZEND_END_ARG_INFO()
173 
174 #define arginfo_gmp_scan1 arginfo_gmp_scan0
175 
176 #define arginfo_gmp_popcount arginfo_gmp_intval
177 
178 #define arginfo_gmp_hamdist arginfo_gmp_jacobi
179 
180 #define arginfo_gmp_nextprime arginfo_gmp_neg
181 
182 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_gmp_binomial, 0, 2, GMP, 0)
183 	ZEND_ARG_OBJ_TYPE_MASK(0, n, GMP, MAY_BE_LONG|MAY_BE_STRING, NULL)
184 	ZEND_ARG_TYPE_INFO(0, k, IS_LONG, 0)
185 ZEND_END_ARG_INFO()
186 
187 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_GMP___serialize, 0, 0, IS_ARRAY, 0)
188 ZEND_END_ARG_INFO()
189 
190 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_GMP___unserialize, 0, 1, IS_VOID, 0)
191 	ZEND_ARG_TYPE_INFO(0, data, IS_ARRAY, 0)
192 ZEND_END_ARG_INFO()
193 
194 
195 ZEND_FUNCTION(gmp_init);
196 ZEND_FUNCTION(gmp_import);
197 ZEND_FUNCTION(gmp_export);
198 ZEND_FUNCTION(gmp_intval);
199 ZEND_FUNCTION(gmp_strval);
200 ZEND_FUNCTION(gmp_add);
201 ZEND_FUNCTION(gmp_sub);
202 ZEND_FUNCTION(gmp_mul);
203 ZEND_FUNCTION(gmp_div_qr);
204 ZEND_FUNCTION(gmp_div_q);
205 ZEND_FUNCTION(gmp_div_r);
206 ZEND_FUNCTION(gmp_mod);
207 ZEND_FUNCTION(gmp_divexact);
208 ZEND_FUNCTION(gmp_neg);
209 ZEND_FUNCTION(gmp_abs);
210 ZEND_FUNCTION(gmp_fact);
211 ZEND_FUNCTION(gmp_sqrt);
212 ZEND_FUNCTION(gmp_sqrtrem);
213 ZEND_FUNCTION(gmp_root);
214 ZEND_FUNCTION(gmp_rootrem);
215 ZEND_FUNCTION(gmp_pow);
216 ZEND_FUNCTION(gmp_powm);
217 ZEND_FUNCTION(gmp_perfect_square);
218 ZEND_FUNCTION(gmp_perfect_power);
219 ZEND_FUNCTION(gmp_prob_prime);
220 ZEND_FUNCTION(gmp_gcd);
221 ZEND_FUNCTION(gmp_gcdext);
222 ZEND_FUNCTION(gmp_lcm);
223 ZEND_FUNCTION(gmp_invert);
224 ZEND_FUNCTION(gmp_jacobi);
225 ZEND_FUNCTION(gmp_legendre);
226 ZEND_FUNCTION(gmp_kronecker);
227 ZEND_FUNCTION(gmp_cmp);
228 ZEND_FUNCTION(gmp_sign);
229 ZEND_FUNCTION(gmp_random_seed);
230 ZEND_FUNCTION(gmp_random_bits);
231 ZEND_FUNCTION(gmp_random_range);
232 ZEND_FUNCTION(gmp_and);
233 ZEND_FUNCTION(gmp_or);
234 ZEND_FUNCTION(gmp_com);
235 ZEND_FUNCTION(gmp_xor);
236 ZEND_FUNCTION(gmp_setbit);
237 ZEND_FUNCTION(gmp_clrbit);
238 ZEND_FUNCTION(gmp_testbit);
239 ZEND_FUNCTION(gmp_scan0);
240 ZEND_FUNCTION(gmp_scan1);
241 ZEND_FUNCTION(gmp_popcount);
242 ZEND_FUNCTION(gmp_hamdist);
243 ZEND_FUNCTION(gmp_nextprime);
244 ZEND_FUNCTION(gmp_binomial);
245 ZEND_METHOD(GMP, __serialize);
246 ZEND_METHOD(GMP, __unserialize);
247 
248 
249 static const zend_function_entry ext_functions[] = {
250 	ZEND_FE(gmp_init, arginfo_gmp_init)
251 	ZEND_FE(gmp_import, arginfo_gmp_import)
252 	ZEND_FE(gmp_export, arginfo_gmp_export)
253 	ZEND_FE(gmp_intval, arginfo_gmp_intval)
254 	ZEND_FE(gmp_strval, arginfo_gmp_strval)
255 	ZEND_FE(gmp_add, arginfo_gmp_add)
256 	ZEND_FE(gmp_sub, arginfo_gmp_sub)
257 	ZEND_FE(gmp_mul, arginfo_gmp_mul)
258 	ZEND_FE(gmp_div_qr, arginfo_gmp_div_qr)
259 	ZEND_FE(gmp_div_q, arginfo_gmp_div_q)
260 	ZEND_FE(gmp_div_r, arginfo_gmp_div_r)
261 	ZEND_FALIAS(gmp_div, gmp_div_q, arginfo_gmp_div)
262 	ZEND_FE(gmp_mod, arginfo_gmp_mod)
263 	ZEND_FE(gmp_divexact, arginfo_gmp_divexact)
264 	ZEND_FE(gmp_neg, arginfo_gmp_neg)
265 	ZEND_FE(gmp_abs, arginfo_gmp_abs)
266 	ZEND_FE(gmp_fact, arginfo_gmp_fact)
267 	ZEND_FE(gmp_sqrt, arginfo_gmp_sqrt)
268 	ZEND_FE(gmp_sqrtrem, arginfo_gmp_sqrtrem)
269 	ZEND_FE(gmp_root, arginfo_gmp_root)
270 	ZEND_FE(gmp_rootrem, arginfo_gmp_rootrem)
271 	ZEND_FE(gmp_pow, arginfo_gmp_pow)
272 	ZEND_FE(gmp_powm, arginfo_gmp_powm)
273 	ZEND_FE(gmp_perfect_square, arginfo_gmp_perfect_square)
274 	ZEND_FE(gmp_perfect_power, arginfo_gmp_perfect_power)
275 	ZEND_FE(gmp_prob_prime, arginfo_gmp_prob_prime)
276 	ZEND_FE(gmp_gcd, arginfo_gmp_gcd)
277 	ZEND_FE(gmp_gcdext, arginfo_gmp_gcdext)
278 	ZEND_FE(gmp_lcm, arginfo_gmp_lcm)
279 	ZEND_FE(gmp_invert, arginfo_gmp_invert)
280 	ZEND_FE(gmp_jacobi, arginfo_gmp_jacobi)
281 	ZEND_FE(gmp_legendre, arginfo_gmp_legendre)
282 	ZEND_FE(gmp_kronecker, arginfo_gmp_kronecker)
283 	ZEND_FE(gmp_cmp, arginfo_gmp_cmp)
284 	ZEND_FE(gmp_sign, arginfo_gmp_sign)
285 	ZEND_FE(gmp_random_seed, arginfo_gmp_random_seed)
286 	ZEND_FE(gmp_random_bits, arginfo_gmp_random_bits)
287 	ZEND_FE(gmp_random_range, arginfo_gmp_random_range)
288 	ZEND_FE(gmp_and, arginfo_gmp_and)
289 	ZEND_FE(gmp_or, arginfo_gmp_or)
290 	ZEND_FE(gmp_com, arginfo_gmp_com)
291 	ZEND_FE(gmp_xor, arginfo_gmp_xor)
292 	ZEND_FE(gmp_setbit, arginfo_gmp_setbit)
293 	ZEND_FE(gmp_clrbit, arginfo_gmp_clrbit)
294 	ZEND_FE(gmp_testbit, arginfo_gmp_testbit)
295 	ZEND_FE(gmp_scan0, arginfo_gmp_scan0)
296 	ZEND_FE(gmp_scan1, arginfo_gmp_scan1)
297 	ZEND_FE(gmp_popcount, arginfo_gmp_popcount)
298 	ZEND_FE(gmp_hamdist, arginfo_gmp_hamdist)
299 	ZEND_FE(gmp_nextprime, arginfo_gmp_nextprime)
300 	ZEND_FE(gmp_binomial, arginfo_gmp_binomial)
301 	ZEND_FE_END
302 };
303 
304 
305 static const zend_function_entry class_GMP_methods[] = {
306 	ZEND_ME(GMP, __serialize, arginfo_class_GMP___serialize, ZEND_ACC_PUBLIC)
307 	ZEND_ME(GMP, __unserialize, arginfo_class_GMP___unserialize, ZEND_ACC_PUBLIC)
308 	ZEND_FE_END
309 };
310 
register_class_GMP(void)311 static zend_class_entry *register_class_GMP(void)
312 {
313 	zend_class_entry ce, *class_entry;
314 
315 	INIT_CLASS_ENTRY(ce, "GMP", class_GMP_methods);
316 	class_entry = zend_register_internal_class_ex(&ce, NULL);
317 
318 	return class_entry;
319 }
320