30
30
#include "zend_exceptions.h"
31
31
32
32
#include <gmp.h>
33
+ #include "gmp_arginfo.h"
33
34
34
35
/* Needed for gmp_random() */
35
36
#include "ext/standard/php_rand.h"
36
37
#include "ext/standard/php_lcg.h"
37
38
#define GMP_ABS (x ) ((x) >= 0 ? (x) : -(x))
38
39
39
- /* {{{ arginfo */
40
- ZEND_BEGIN_ARG_INFO_EX (arginfo_gmp_init , 0 , 0 , 1 )
41
- ZEND_ARG_INFO (0 , number )
42
- ZEND_ARG_INFO (0 , base )
43
- ZEND_END_ARG_INFO ()
44
-
45
- ZEND_BEGIN_ARG_INFO_EX (arginfo_gmp_import , 0 , 0 , 1 )
46
- ZEND_ARG_INFO (0 , data )
47
- ZEND_ARG_INFO (0 , word_size )
48
- ZEND_ARG_INFO (0 , options )
49
- ZEND_END_ARG_INFO ()
50
-
51
- ZEND_BEGIN_ARG_INFO_EX (arginfo_gmp_export , 0 , 0 , 1 )
52
- ZEND_ARG_INFO (0 , gmpnumber )
53
- ZEND_ARG_INFO (0 , word_size )
54
- ZEND_ARG_INFO (0 , options )
55
- ZEND_END_ARG_INFO ()
56
-
57
- ZEND_BEGIN_ARG_INFO_EX (arginfo_gmp_intval , 0 , 0 , 1 )
58
- ZEND_ARG_INFO (0 , gmpnumber )
59
- ZEND_END_ARG_INFO ()
60
-
61
- ZEND_BEGIN_ARG_INFO_EX (arginfo_gmp_strval , 0 , 0 , 1 )
62
- ZEND_ARG_INFO (0 , gmpnumber )
63
- ZEND_ARG_INFO (0 , base )
64
- ZEND_END_ARG_INFO ()
65
-
66
- ZEND_BEGIN_ARG_INFO_EX (arginfo_gmp_unary , 0 , 0 , 1 )
67
- ZEND_ARG_INFO (0 , a )
68
- ZEND_END_ARG_INFO ()
69
-
70
- ZEND_BEGIN_ARG_INFO_EX (arginfo_gmp_binary , 0 , 0 , 2 )
71
- ZEND_ARG_INFO (0 , a )
72
- ZEND_ARG_INFO (0 , b )
73
- ZEND_END_ARG_INFO ()
74
-
75
- ZEND_BEGIN_ARG_INFO_EX (arginfo_gmp_div , 0 , 0 , 2 )
76
- ZEND_ARG_INFO (0 , a )
77
- ZEND_ARG_INFO (0 , b )
78
- ZEND_ARG_INFO (0 , round )
79
- ZEND_END_ARG_INFO ()
80
-
81
- ZEND_BEGIN_ARG_INFO_EX (arginfo_gmp_pow , 0 , 0 , 2 )
82
- ZEND_ARG_INFO (0 , base )
83
- ZEND_ARG_INFO (0 , exp )
84
- ZEND_END_ARG_INFO ()
85
-
86
- ZEND_BEGIN_ARG_INFO_EX (arginfo_gmp_powm , 0 , 0 , 3 )
87
- ZEND_ARG_INFO (0 , base )
88
- ZEND_ARG_INFO (0 , exp )
89
- ZEND_ARG_INFO (0 , mod )
90
- ZEND_END_ARG_INFO ()
91
-
92
- ZEND_BEGIN_ARG_INFO_EX (arginfo_gmp_root , 0 , 0 , 2 )
93
- ZEND_ARG_INFO (0 , a )
94
- ZEND_ARG_INFO (0 , nth )
95
- ZEND_END_ARG_INFO ()
96
-
97
- ZEND_BEGIN_ARG_INFO_EX (arginfo_gmp_prob_prime , 0 , 0 , 1 )
98
- ZEND_ARG_INFO (0 , a )
99
- ZEND_ARG_INFO (0 , reps )
100
- ZEND_END_ARG_INFO ()
101
-
102
- ZEND_BEGIN_ARG_INFO_EX (arginfo_gmp_random_seed , 0 , 0 , 1 )
103
- ZEND_ARG_INFO (0 , seed )
104
- ZEND_END_ARG_INFO ()
105
-
106
- ZEND_BEGIN_ARG_INFO_EX (arginfo_gmp_random_bits , 0 , 0 , 1 )
107
- ZEND_ARG_INFO (0 , bits )
108
- ZEND_END_ARG_INFO ()
109
-
110
- ZEND_BEGIN_ARG_INFO_EX (arginfo_gmp_random_range , 0 , 0 , 2 )
111
- ZEND_ARG_INFO (0 , min )
112
- ZEND_ARG_INFO (0 , max )
113
- ZEND_END_ARG_INFO ()
114
-
115
- ZEND_BEGIN_ARG_INFO_EX (arginfo_gmp_setbit , 0 , 0 , 2 )
116
- ZEND_ARG_INFO (0 , a )
117
- ZEND_ARG_INFO (0 , index )
118
- ZEND_ARG_INFO (0 , set_clear )
119
- ZEND_END_ARG_INFO ()
120
-
121
- ZEND_BEGIN_ARG_INFO_EX (arginfo_gmp_bit , 0 , 0 , 2 )
122
- ZEND_ARG_INFO (0 , a )
123
- ZEND_ARG_INFO (0 , index )
124
- ZEND_END_ARG_INFO ()
125
-
126
- ZEND_BEGIN_ARG_INFO_EX (arginfo_gmp_scan , 0 , 0 , 2 )
127
- ZEND_ARG_INFO (0 , a )
128
- ZEND_ARG_INFO (0 , start )
129
- ZEND_END_ARG_INFO ()
130
-
131
- /* }}} */
132
-
133
40
ZEND_DECLARE_MODULE_GLOBALS (gmp )
134
41
static ZEND_GINIT_FUNCTION (gmp );
135
42
@@ -141,52 +48,52 @@ static const zend_function_entry gmp_functions[] = {
141
48
ZEND_FE (gmp_export , arginfo_gmp_export )
142
49
ZEND_FE (gmp_intval , arginfo_gmp_intval )
143
50
ZEND_FE (gmp_strval , arginfo_gmp_strval )
144
- ZEND_FE (gmp_add , arginfo_gmp_binary )
145
- ZEND_FE (gmp_sub , arginfo_gmp_binary )
146
- ZEND_FE (gmp_mul , arginfo_gmp_binary )
147
- ZEND_FE (gmp_div_qr , arginfo_gmp_div )
148
- ZEND_FE (gmp_div_q , arginfo_gmp_div )
149
- ZEND_FE (gmp_div_r , arginfo_gmp_div )
51
+ ZEND_FE (gmp_add , arginfo_gmp_add )
52
+ ZEND_FE (gmp_sub , arginfo_gmp_sub )
53
+ ZEND_FE (gmp_mul , arginfo_gmp_mul )
54
+ ZEND_FE (gmp_div_qr , arginfo_gmp_div_qr )
55
+ ZEND_FE (gmp_div_q , arginfo_gmp_div_q )
56
+ ZEND_FE (gmp_div_r , arginfo_gmp_div_r )
150
57
ZEND_FALIAS (gmp_div , gmp_div_q , arginfo_gmp_div )
151
- ZEND_FE (gmp_mod , arginfo_gmp_binary )
152
- ZEND_FE (gmp_divexact , arginfo_gmp_binary )
153
- ZEND_FE (gmp_neg , arginfo_gmp_unary )
154
- ZEND_FE (gmp_abs , arginfo_gmp_unary )
155
- ZEND_FE (gmp_fact , arginfo_gmp_unary )
156
- ZEND_FE (gmp_sqrt , arginfo_gmp_unary )
157
- ZEND_FE (gmp_sqrtrem , arginfo_gmp_unary )
58
+ ZEND_FE (gmp_mod , arginfo_gmp_mod )
59
+ ZEND_FE (gmp_divexact , arginfo_gmp_divexact )
60
+ ZEND_FE (gmp_neg , arginfo_gmp_neg )
61
+ ZEND_FE (gmp_abs , arginfo_gmp_abs )
62
+ ZEND_FE (gmp_fact , arginfo_gmp_fact )
63
+ ZEND_FE (gmp_sqrt , arginfo_gmp_sqrt )
64
+ ZEND_FE (gmp_sqrtrem , arginfo_gmp_sqrtrem )
158
65
ZEND_FE (gmp_root , arginfo_gmp_root )
159
- ZEND_FE (gmp_rootrem , arginfo_gmp_root )
66
+ ZEND_FE (gmp_rootrem , arginfo_gmp_rootrem )
160
67
ZEND_FE (gmp_pow , arginfo_gmp_pow )
161
68
ZEND_FE (gmp_powm , arginfo_gmp_powm )
162
- ZEND_FE (gmp_perfect_square , arginfo_gmp_unary )
163
- ZEND_FE (gmp_perfect_power , arginfo_gmp_unary )
69
+ ZEND_FE (gmp_perfect_square , arginfo_gmp_perfect_square )
70
+ ZEND_FE (gmp_perfect_power , arginfo_gmp_perfect_power )
164
71
ZEND_FE (gmp_prob_prime , arginfo_gmp_prob_prime )
165
- ZEND_FE (gmp_gcd , arginfo_gmp_binary )
166
- ZEND_FE (gmp_gcdext , arginfo_gmp_binary )
167
- ZEND_FE (gmp_lcm , arginfo_gmp_binary )
168
- ZEND_FE (gmp_invert , arginfo_gmp_binary )
169
- ZEND_FE (gmp_jacobi , arginfo_gmp_binary )
170
- ZEND_FE (gmp_legendre , arginfo_gmp_binary )
171
- ZEND_FE (gmp_kronecker , arginfo_gmp_binary )
172
- ZEND_FE (gmp_cmp , arginfo_gmp_binary )
173
- ZEND_FE (gmp_sign , arginfo_gmp_unary )
72
+ ZEND_FE (gmp_gcd , arginfo_gmp_gcd )
73
+ ZEND_FE (gmp_gcdext , arginfo_gmp_gcdext )
74
+ ZEND_FE (gmp_lcm , arginfo_gmp_lcm )
75
+ ZEND_FE (gmp_invert , arginfo_gmp_invert )
76
+ ZEND_FE (gmp_jacobi , arginfo_gmp_jacobi )
77
+ ZEND_FE (gmp_legendre , arginfo_gmp_legendre )
78
+ ZEND_FE (gmp_kronecker , arginfo_gmp_kronecker )
79
+ ZEND_FE (gmp_cmp , arginfo_gmp_cmp )
80
+ ZEND_FE (gmp_sign , arginfo_gmp_sign )
174
81
ZEND_FE (gmp_random_seed , arginfo_gmp_random_seed )
175
82
ZEND_FE (gmp_random_bits , arginfo_gmp_random_bits )
176
83
ZEND_FE (gmp_random_range , arginfo_gmp_random_range )
177
- ZEND_FE (gmp_and , arginfo_gmp_binary )
178
- ZEND_FE (gmp_or , arginfo_gmp_binary )
179
- ZEND_FE (gmp_com , arginfo_gmp_unary )
180
- ZEND_FE (gmp_xor , arginfo_gmp_binary )
84
+ ZEND_FE (gmp_and , arginfo_gmp_and )
85
+ ZEND_FE (gmp_or , arginfo_gmp_or )
86
+ ZEND_FE (gmp_com , arginfo_gmp_com )
87
+ ZEND_FE (gmp_xor , arginfo_gmp_xor )
181
88
ZEND_FE (gmp_setbit , arginfo_gmp_setbit )
182
- ZEND_FE (gmp_clrbit , arginfo_gmp_bit )
183
- ZEND_FE (gmp_testbit , arginfo_gmp_bit )
184
- ZEND_FE (gmp_scan0 , arginfo_gmp_scan )
185
- ZEND_FE (gmp_scan1 , arginfo_gmp_scan )
186
- ZEND_FE (gmp_popcount , arginfo_gmp_unary )
187
- ZEND_FE (gmp_hamdist , arginfo_gmp_binary )
188
- ZEND_FE (gmp_nextprime , arginfo_gmp_unary )
189
- ZEND_FE (gmp_binomial , arginfo_gmp_binary )
89
+ ZEND_FE (gmp_clrbit , arginfo_gmp_clrbit )
90
+ ZEND_FE (gmp_testbit , arginfo_gmp_testbit )
91
+ ZEND_FE (gmp_scan0 , arginfo_gmp_scan0 )
92
+ ZEND_FE (gmp_scan1 , arginfo_gmp_scan1 )
93
+ ZEND_FE (gmp_popcount , arginfo_gmp_popcount )
94
+ ZEND_FE (gmp_hamdist , arginfo_gmp_hamdist )
95
+ ZEND_FE (gmp_nextprime , arginfo_gmp_nextprime )
96
+ ZEND_FE (gmp_binomial , arginfo_gmp_binomial )
190
97
PHP_FE_END
191
98
};
192
99
/* }}} */
0 commit comments