1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 2 * gmpy2_math.h * 3 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 4 * Python interface to the GMP or MPIR, MPFR, and MPC multiple precision * 5 * libraries. * 6 * * 7 * Copyright 2000 - 2009 Alex Martelli * 8 * * 9 * Copyright 2008 - 2021 Case Van Horsen * 10 * * 11 * This file is part of GMPY2. * 12 * * 13 * GMPY2 is free software: you can redistribute it and/or modify it under * 14 * the terms of the GNU Lesser General Public License as published by the * 15 * Free Software Foundation, either version 3 of the License, or (at your * 16 * option) any later version. * 17 * * 18 * GMPY2 is distributed in the hope that it will be useful, but WITHOUT * 19 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * 20 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public * 21 * License for more details. * 22 * * 23 * You should have received a copy of the GNU Lesser General Public * 24 * License along with GMPY2; if not, see <http://www.gnu.org/licenses/> * 25 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 26 27 #ifndef GMPY_MATH_H 28 #define GMPY_MATH_H 29 30 #ifdef __cplusplus 31 extern "C" { 32 #endif 33 34 static PyObject * GMPy_RealWithType_Sin(PyObject *x, int xtype, CTXT_Object *context); 35 static PyObject * GMPy_ComplexWithType_Sin(PyObject *x, int xtype, CTXT_Object *context); 36 static PyObject * GMPy_Number_Sin(PyObject *x, CTXT_Object *context); 37 static PyObject * GMPy_Context_Sin(PyObject *self, PyObject *other); 38 39 static PyObject * GMPy_RealWithType_Cos(PyObject *x, int xtype, CTXT_Object *context); 40 static PyObject * GMPy_ComplexWithType_Cos(PyObject *x, int xtype, CTXT_Object *context); 41 static PyObject * GMPy_Number_Cos(PyObject *x, CTXT_Object *context); 42 static PyObject * GMPy_Context_Cos(PyObject *self, PyObject *other); 43 44 static PyObject * GMPy_RealWithType_Tan(PyObject *x, int xtype, CTXT_Object *context); 45 static PyObject * GMPy_ComplexWithType_Tan(PyObject *x, int xtype, CTXT_Object *context); 46 static PyObject * GMPy_Number_Tan(PyObject *x, CTXT_Object *context); 47 static PyObject * GMPy_Context_Tan(PyObject *self, PyObject *other); 48 49 static PyObject * GMPy_RealWithType_Atan(PyObject *x, int xtype, CTXT_Object *context); 50 static PyObject * GMPy_ComplexWithType_Atan(PyObject *x, int xtype, CTXT_Object *context); 51 static PyObject * GMPy_Number_Atan(PyObject *x, CTXT_Object *context); 52 static PyObject * GMPy_Context_Atan(PyObject *self, PyObject *other); 53 54 static PyObject * GMPy_RealWithType_Sinh(PyObject *x, int xtype, CTXT_Object *context); 55 static PyObject * GMPy_ComplexWithType_Sinh(PyObject *x, int xtype, CTXT_Object *context); 56 static PyObject * GMPy_Number_Sinh(PyObject *x, CTXT_Object *context); 57 static PyObject * GMPy_Context_Sinh(PyObject *self, PyObject *other); 58 59 static PyObject * GMPy_RealWithType_Cosh(PyObject *x, int xtype, CTXT_Object *context); 60 static PyObject * GMPy_ComplexWithType_Cosh(PyObject *x, int xtype, CTXT_Object *context); 61 static PyObject * GMPy_Number_Cosh(PyObject *x, CTXT_Object *context); 62 static PyObject * GMPy_Context_Cosh(PyObject *self, PyObject *other); 63 64 static PyObject * GMPy_RealWithType_Tanh(PyObject *x, int xtype, CTXT_Object *context); 65 static PyObject * GMPy_ComplexWithType_Tanh(PyObject *x, int xtype, CTXT_Object *context); 66 static PyObject * GMPy_Number_Tanh(PyObject *x, CTXT_Object *context); 67 static PyObject * GMPy_Context_Tanh(PyObject *self, PyObject *other); 68 69 static PyObject * GMPy_RealWithType_Asinh(PyObject *x, int xtype, CTXT_Object *context); 70 static PyObject * GMPy_ComplexWithType_Asinh(PyObject *x, int xtype, CTXT_Object *context); 71 static PyObject * GMPy_Number_Asinh(PyObject *x, CTXT_Object *context); 72 static PyObject * GMPy_Context_Asinh(PyObject *self, PyObject *other); 73 74 static PyObject * GMPy_RealWithType_Acosh(PyObject *x, int xtype, CTXT_Object *context); 75 static PyObject * GMPy_ComplexWithType_Acosh(PyObject *x, int xtype, CTXT_Object *context); 76 static PyObject * GMPy_Number_Acosh(PyObject *x, CTXT_Object *context); 77 static PyObject * GMPy_Context_Acosh(PyObject *self, PyObject *other); 78 79 static PyObject * GMPy_RealWithType_Sec(PyObject *x, int xtype, CTXT_Object *context); 80 static PyObject * GMPy_Number_Sec(PyObject *x, CTXT_Object *context); 81 static PyObject * GMPy_Context_Sec(PyObject *self, PyObject *other); 82 83 static PyObject * GMPy_RealWithType_Csc(PyObject *x, int xtype, CTXT_Object *context); 84 static PyObject * GMPy_Number_Csc(PyObject *x, CTXT_Object *context); 85 static PyObject * GMPy_Context_Csc(PyObject *self, PyObject *other); 86 87 static PyObject * GMPy_RealWithType_Cot(PyObject *x, int xtype, CTXT_Object *context); 88 static PyObject * GMPy_Number_Cot(PyObject *x, CTXT_Object *context); 89 static PyObject * GMPy_Context_Cot(PyObject *self, PyObject *other); 90 91 static PyObject * GMPy_RealWithType_Sech(PyObject *x, int xtype, CTXT_Object *context); 92 static PyObject * GMPy_Number_Sech(PyObject *x, CTXT_Object *context); 93 static PyObject * GMPy_Context_Sech(PyObject *self, PyObject *other); 94 95 static PyObject * GMPy_RealWithType_Csch(PyObject *x, int xtype, CTXT_Object *context); 96 static PyObject * GMPy_Number_Csch(PyObject *x, CTXT_Object *context); 97 static PyObject * GMPy_Context_Csch(PyObject *self, PyObject *other); 98 99 static PyObject * GMPy_RealWithType_Coth(PyObject *x, int xtype, CTXT_Object *context); 100 static PyObject * GMPy_Number_Coth(PyObject *x, CTXT_Object *context); 101 static PyObject * GMPy_Context_Coth(PyObject *self, PyObject *other); 102 103 static PyObject * GMPy_RealWithType_Acos(PyObject *x, int xtype, CTXT_Object *context); 104 static PyObject * GMPy_ComplexWithType_Acos(PyObject *x, int xtype, CTXT_Object *context); 105 static PyObject * GMPy_Number_Acos(PyObject *x, CTXT_Object *context); 106 static PyObject * GMPy_Context_Acos(PyObject *self, PyObject *other); 107 108 static PyObject * GMPy_RealWithType_Asin(PyObject *x, int xtype, CTXT_Object *context); 109 static PyObject * GMPy_ComplexWithType_Asin(PyObject *x, int xtype, CTXT_Object *context); 110 static PyObject * GMPy_Number_Asin(PyObject *x, CTXT_Object *context); 111 static PyObject * GMPy_Context_Asin(PyObject *self, PyObject *other); 112 113 static PyObject * GMPy_RealWithType_Atanh(PyObject *x, int xtype, CTXT_Object *context); 114 static PyObject * GMPy_ComplexWithType_Atanh(PyObject *x, int xtype, CTXT_Object *context); 115 static PyObject * GMPy_Number_Atanh(PyObject *x, CTXT_Object *context); 116 static PyObject * GMPy_Context_Atanh(PyObject *self, PyObject *other); 117 118 static PyObject * GMPy_RealWithType_Sin_Cos(PyObject *x, int xtype, CTXT_Object *context); 119 static PyObject * GMPy_ComplexWithType_Sin_Cos(PyObject *x, int xtype, CTXT_Object *context); 120 static PyObject * GMPy_Number_Sin_Cos(PyObject *x, CTXT_Object *context); 121 static PyObject * GMPy_Context_Sin_Cos(PyObject *self, PyObject *other); 122 123 static PyObject * GMPy_RealWithType_Sinh_Cosh(PyObject *x, int xtype, CTXT_Object *context); 124 static PyObject * GMPy_Number_Sinh_Cosh(PyObject *x, CTXT_Object *context); 125 static PyObject * GMPy_Context_Sinh_Cosh(PyObject *self, PyObject *other); 126 127 static PyObject * GMPy_RealWithType_Atan2(PyObject *x, int xtype, PyObject *y, int ytype, CTXT_Object *context); 128 static PyObject * GMPy_Number_Atan2(PyObject *x, PyObject *y, CTXT_Object *context); 129 static PyObject * GMPy_Context_Atan2(PyObject *self, PyObject *args); 130 131 static PyObject * GMPy_RealWithType_Hypot(PyObject *x, int xtype, PyObject *y, int ytype, CTXT_Object *context); 132 static PyObject * GMPy_Number_Hypot(PyObject *x, PyObject *y, CTXT_Object *context); 133 static PyObject * GMPy_Context_Hypot(PyObject *self, PyObject *args); 134 135 static PyObject * GMPy_Context_Degrees(PyObject *self, PyObject *other); 136 static PyObject * GMPy_Context_Radians(PyObject *self, PyObject *other); 137 138 static PyObject * GMPy_RealWithType_Log(PyObject *x, int xtype, CTXT_Object *context); 139 static PyObject * GMPy_ComplexWithType_Log(PyObject *x, int xtype, CTXT_Object *context); 140 static PyObject * GMPy_Number_Log(PyObject *x, CTXT_Object *context); 141 static PyObject * GMPy_Context_Log(PyObject *self, PyObject *other); 142 143 static PyObject * GMPy_RealWithType_Log10(PyObject *x, int xtype, CTXT_Object *context); 144 static PyObject * GMPy_ComplexWithType_Log10(PyObject *x, int xtype, CTXT_Object *context); 145 static PyObject * GMPy_Number_Log10(PyObject *x, CTXT_Object *context); 146 static PyObject * GMPy_Context_Log10(PyObject *self, PyObject *other); 147 148 static PyObject * GMPy_RealWithType_Exp(PyObject *x, int xtype, CTXT_Object *context); 149 static PyObject * GMPy_ComplexWithType_Exp(PyObject *x, int xtype, CTXT_Object *context); 150 static PyObject * GMPy_Number_Exp(PyObject *x, CTXT_Object *context); 151 static PyObject * GMPy_Context_Exp(PyObject *self, PyObject *other); 152 153 static PyObject * GMPy_RealWithType_Sqrt(PyObject *x, int xtype, CTXT_Object *context); 154 static PyObject * GMPy_ComplexWithType_Sqrt(PyObject *x, int xtype, CTXT_Object *context); 155 static PyObject * GMPy_Number_Sqrt(PyObject *x, CTXT_Object *context); 156 static PyObject * GMPy_Context_Sqrt(PyObject *self, PyObject *other); 157 158 static PyObject * GMPy_RealWithType_RecSqrt(PyObject *x, int xtype, CTXT_Object *context); 159 static PyObject * GMPy_Number_RecSqrt(PyObject *x, CTXT_Object *context); 160 static PyObject * GMPy_Context_RecSqrt(PyObject *self, PyObject *other); 161 162 static PyObject * GMPy_RealWithType_Rint(PyObject *x, int xtype, CTXT_Object *context); 163 static PyObject * GMPy_Number_Rint(PyObject *x, CTXT_Object *context); 164 static PyObject * GMPy_Context_Rint(PyObject *self, PyObject *other); 165 166 static PyObject * GMPy_RealWithType_RintCeil(PyObject *x, int xtype, CTXT_Object *context); 167 static PyObject * GMPy_Number_RintCeil(PyObject *x, CTXT_Object *context); 168 static PyObject * GMPy_Context_RintCeil(PyObject *self, PyObject *other); 169 170 static PyObject * GMPy_RealWithType_RintFloor(PyObject *x, int xtype, CTXT_Object *context); 171 static PyObject * GMPy_Number_RintFloor(PyObject *x, CTXT_Object *context); 172 static PyObject * GMPy_Context_RintFloor(PyObject *self, PyObject *other); 173 174 static PyObject * GMPy_RealWithType_RintRound(PyObject *x, int xtype, CTXT_Object *context); 175 static PyObject * GMPy_Number_RintRound(PyObject *x, CTXT_Object *context); 176 static PyObject * GMPy_Context_RintRound(PyObject *self, PyObject *other); 177 178 static PyObject * GMPy_RealWithType_RintTrunc(PyObject *x, int xtype, CTXT_Object *context); 179 static PyObject * GMPy_Number_RintTrunc(PyObject *x, CTXT_Object *context); 180 static PyObject * GMPy_Context_RintTrunc(PyObject *self, PyObject *other); 181 182 static PyObject * GMPy_RealWithType_Frac(PyObject *x, int xtype, CTXT_Object *context); 183 static PyObject * GMPy_Number_Frac(PyObject *x, CTXT_Object *context); 184 static PyObject * GMPy_Context_Frac(PyObject *self, PyObject *other); 185 186 static PyObject * GMPy_RealWithType_Cbrt(PyObject *x, int xtype, CTXT_Object *context); 187 static PyObject * GMPy_Number_Cbrt(PyObject *x, CTXT_Object *context); 188 static PyObject * GMPy_Context_Cbrt(PyObject *self, PyObject *other); 189 190 static PyObject * GMPy_RealWithType_Log2(PyObject *x, int xtype, CTXT_Object *context); 191 static PyObject * GMPy_Number_Log2(PyObject *x, CTXT_Object *context); 192 static PyObject * GMPy_Context_Log2(PyObject *self, PyObject *other); 193 194 static PyObject * GMPy_RealWithType_Exp2(PyObject *x, int xtype, CTXT_Object *context); 195 static PyObject * GMPy_Number_Exp2(PyObject *x, CTXT_Object *context); 196 static PyObject * GMPy_Context_Exp2(PyObject *self, PyObject *other); 197 198 static PyObject * GMPy_RealWithType_Exp10(PyObject *x, int xtype, CTXT_Object *context); 199 static PyObject * GMPy_Number_Exp10(PyObject *x, CTXT_Object *context); 200 static PyObject * GMPy_Context_Exp10(PyObject *self, PyObject *other); 201 202 static PyObject * GMPy_RealWithType_Log1p(PyObject *x, int xtype, CTXT_Object *context); 203 static PyObject * GMPy_Number_Log1p(PyObject *x, CTXT_Object *context); 204 static PyObject * GMPy_Context_Log1p(PyObject *self, PyObject *other); 205 206 static PyObject * GMPy_RealWithType_Expm1(PyObject *x, int xtype, CTXT_Object *context); 207 static PyObject * GMPy_Number_Expm1(PyObject *x, CTXT_Object *context); 208 static PyObject * GMPy_Context_Expm1(PyObject *self, PyObject *other); 209 210 static PyObject * GMPy_RealWithType_Eint(PyObject *x, int xtype, CTXT_Object *context); 211 static PyObject * GMPy_Number_Eint(PyObject *x, CTXT_Object *context); 212 static PyObject * GMPy_Context_Eint(PyObject *self, PyObject *other); 213 214 static PyObject * GMPy_RealWithType_Li2(PyObject *x, int xtype, CTXT_Object *context); 215 static PyObject * GMPy_Number_Li2(PyObject *x, CTXT_Object *context); 216 static PyObject * GMPy_Context_Li2(PyObject *self, PyObject *other); 217 218 static PyObject * GMPy_RealWithType_Lngamma(PyObject *x, int xtype, CTXT_Object *context); 219 static PyObject * GMPy_Number_Lngamma(PyObject *x, CTXT_Object *context); 220 static PyObject * GMPy_Context_Lngamma(PyObject *self, PyObject *other); 221 222 static PyObject * GMPy_RealWithType_Digamma(PyObject *x, int xtype, CTXT_Object *context); 223 static PyObject * GMPy_Number_Digamma(PyObject *x, CTXT_Object *context); 224 static PyObject * GMPy_Context_Digamma(PyObject *self, PyObject *other); 225 226 static PyObject * GMPy_RealWithType_Zeta(PyObject *x, int xtype, CTXT_Object *context); 227 static PyObject * GMPy_Number_Zeta(PyObject *x, CTXT_Object *context); 228 static PyObject * GMPy_Context_Zeta(PyObject *self, PyObject *other); 229 230 static PyObject * GMPy_RealWithType_Erf(PyObject *x,int xtype, CTXT_Object *context); 231 static PyObject * GMPy_Number_Erf(PyObject *x, CTXT_Object *context); 232 static PyObject * GMPy_Context_Erf(PyObject *self, PyObject *other); 233 234 static PyObject * GMPy_RealWithType_Erfc(PyObject *x, int xtype, CTXT_Object *context); 235 static PyObject * GMPy_Number_Erfc(PyObject *x, CTXT_Object *context); 236 static PyObject * GMPy_Context_Erfc(PyObject *self, PyObject *other); 237 238 static PyObject * GMPy_RealWithType_J0(PyObject *x, int xtype, CTXT_Object *context); 239 static PyObject * GMPy_Number_J0(PyObject *x, CTXT_Object *context); 240 static PyObject * GMPy_Context_J0(PyObject *self, PyObject *other); 241 242 static PyObject * GMPy_RealWithType_J1(PyObject *x, int xtype, CTXT_Object *context); 243 static PyObject * GMPy_Number_J1(PyObject *x, CTXT_Object *context); 244 static PyObject * GMPy_Context_J1(PyObject *self, PyObject *other); 245 246 static PyObject * GMPy_RealWithType_Y0(PyObject *x, int xtype, CTXT_Object *context); 247 static PyObject * GMPy_Number_Y0(PyObject *x, CTXT_Object *context); 248 static PyObject * GMPy_Context_Y0(PyObject *self, PyObject *other); 249 250 static PyObject * GMPy_RealWithType_Y1(PyObject *x, int xtype, CTXT_Object *context); 251 static PyObject * GMPy_Number_Y1(PyObject *x, CTXT_Object *context); 252 static PyObject * GMPy_Context_Y1(PyObject *self, PyObject *other); 253 254 static PyObject * GMPy_RealWithType_Ai(PyObject *x, int xtype, CTXT_Object *context); 255 static PyObject * GMPy_Number_Ai(PyObject *x, CTXT_Object *context); 256 static PyObject * GMPy_Context_Ai(PyObject *self, PyObject *other); 257 258 static PyObject * GMPy_Real_Root(PyObject *x, PyObject *y, CTXT_Object *context); 259 static PyObject * GMPy_Number_Root(PyObject *x, PyObject *y, CTXT_Object *context); 260 static PyObject * GMPy_Context_Root(PyObject *self, PyObject *args); 261 262 static PyObject * GMPy_RealWithType_Jn(PyObject *x, int xtype, PyObject *y, int ytype, CTXT_Object *context); 263 static PyObject * GMPy_Number_Jn(PyObject *x, PyObject *y, CTXT_Object *context); 264 static PyObject * GMPy_Context_Jn(PyObject *self, PyObject *args); 265 266 static PyObject * GMPy_RealWithType_Yn(PyObject *x, int xtype, PyObject *y, int ytype, CTXT_Object *context); 267 static PyObject * GMPy_Number_Yn(PyObject *x, PyObject *y, CTXT_Object *context); 268 static PyObject * GMPy_Context_Yn(PyObject *self, PyObject *args); 269 270 static PyObject * GMPy_RealWithType_AGM(PyObject *x, int xtype, PyObject *y, int ytype, CTXT_Object *context); 271 static PyObject * GMPy_Number_AGM(PyObject *x, PyObject *y, CTXT_Object *context); 272 static PyObject * GMPy_Context_AGM(PyObject *self, PyObject *args); 273 274 static PyObject * GMPy_RealWithType_Maxnum(PyObject *x, int xtype, PyObject *y, int ytype, CTXT_Object *context); 275 static PyObject * GMPy_Number_Maxnum(PyObject *x, PyObject *y, CTXT_Object *context); 276 static PyObject * GMPy_Context_Maxnum(PyObject *self, PyObject *args); 277 278 static PyObject * GMPy_RealWithType_Minnum(PyObject *x, int xtype, PyObject *y, int ytype, CTXT_Object *context); 279 static PyObject * GMPy_Number_Minnum(PyObject *x, PyObject *y, CTXT_Object *context); 280 static PyObject * GMPy_Context_Minnum(PyObject *self, PyObject *args); 281 282 static PyObject * GMPy_RealWithType_Remainder(PyObject *x, int xtype, PyObject *y, int ytype, CTXT_Object *context); 283 static PyObject * GMPy_Number_Remainder(PyObject *x, PyObject *y, CTXT_Object *context); 284 static PyObject * GMPy_Context_Remainder(PyObject *self, PyObject *args); 285 286 static PyObject * GMPy_RealWithType_Fmod(PyObject *x, int xtype, PyObject *y, int ytype, CTXT_Object *context); 287 static PyObject * GMPy_Number_Fmod(PyObject *x, PyObject *y, CTXT_Object *context); 288 static PyObject * GMPy_Context_Fmod(PyObject *self, PyObject *args); 289 290 static PyObject * GMPy_RealWithType_RelDiff(PyObject *x, int xtype, PyObject *y, int ytype, CTXT_Object *context); 291 static PyObject * GMPy_Number_RelDiff(PyObject *x, PyObject *y, CTXT_Object *context); 292 static PyObject * GMPy_Context_RelDiff(PyObject *self, PyObject *args); 293 294 static PyObject * GMPy_RealWithType_Ceil(PyObject *x, int xtype, CTXT_Object *context); 295 static PyObject * GMPy_Number_Ceil(PyObject *x, CTXT_Object *context); 296 static PyObject * GMPy_MPFR_Method_Ceil(PyObject *self, PyObject *args); 297 static PyObject * GMPy_Context_Ceil(PyObject *self, PyObject *args); 298 299 static PyObject * GMPy_RealWithType_Floor(PyObject *x, int xtype, CTXT_Object *context); 300 static PyObject * GMPy_Number_Floor(PyObject *x, CTXT_Object *context); 301 static PyObject * GMPy_MPFR_Method_Floor(PyObject *self, PyObject *args); 302 static PyObject * GMPy_Context_Floor(PyObject *self, PyObject *args); 303 304 static PyObject * GMPy_RealWithType_Trunc(PyObject *x, int xtype, CTXT_Object *context); 305 static PyObject * GMPy_Number_Trunc(PyObject *x, CTXT_Object *context); 306 static PyObject * GMPy_MPFR_Method_Trunc(PyObject *self, PyObject *args); 307 static PyObject * GMPy_Context_Trunc(PyObject *self, PyObject *args); 308 309 static PyObject * GMPy_Real_Round2(PyObject *x, PyObject *y, CTXT_Object *context); 310 static PyObject * GMPy_Number_Round2(PyObject *x, PyObject *y, CTXT_Object *context); 311 static PyObject * GMPy_Context_Round2(PyObject *self, PyObject *args); 312 313 static PyObject * GMPy_RealWithType_RoundAway(PyObject *x, int xtype, CTXT_Object *context); 314 static PyObject * GMPy_Number_RoundAway(PyObject *x, CTXT_Object *context); 315 static PyObject * GMPy_Context_RoundAway(PyObject *self, PyObject *other); 316 317 static PyObject * GMPy_RealWithType_Modf(PyObject *x, int xtype, CTXT_Object *context); 318 static PyObject * GMPy_Number_Modf(PyObject *x, CTXT_Object *context); 319 static PyObject * GMPy_Context_Modf(PyObject *self, PyObject *other); 320 321 static PyObject * GMPy_RealWithType_Lgamma(PyObject *x, int xtype, CTXT_Object *context); 322 static PyObject * GMPy_Number_Lgamma(PyObject *x, CTXT_Object *context); 323 static PyObject * GMPy_Context_Lgamma(PyObject *self, PyObject *other); 324 325 static PyObject * GMPy_RealWithType_RemQuo(PyObject *x, int xtype, PyObject *y, int ytype, CTXT_Object *context); 326 static PyObject * GMPy_Number_RemQuo(PyObject *x, PyObject *y, CTXT_Object *context); 327 static PyObject * GMPy_Context_RemQuo(PyObject *self, PyObject *other); 328 329 static PyObject * GMPy_RealWithType_Frexp(PyObject *x, int xtype, CTXT_Object *context); 330 static PyObject * GMPy_Number_Frexp(PyObject *x, CTXT_Object *context); 331 static PyObject * GMPy_Context_Frexp(PyObject *self, PyObject *other); 332 333 static PyObject * GMPy_Context_NextToward(PyObject *self, PyObject *args); 334 335 static PyObject * GMPy_Context_NextAbove(PyObject *self, PyObject *other); 336 337 static PyObject * GMPy_Context_NextBelow(PyObject *self, PyObject *other); 338 339 static PyObject * GMPy_Context_Factorial(PyObject *self, PyObject *other); 340 341 static PyObject * GMPy_Context_Fsum(PyObject *self, PyObject *other); 342 343 #ifdef __cplusplus 344 } 345 #endif 346 #endif 347