Annotation of OpenXM_contrib/gmp/mpfr/mpfr.h, Revision 1.1.1.2
1.1 maekawa 1: /* mpfr.h -- Include file for mpfr.
2:
1.1.1.2 ! ohara 3: Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
1.1 maekawa 4:
5: This file is part of the MPFR Library.
6:
7: The MPFR Library is free software; you can redistribute it and/or modify
1.1.1.2 ! ohara 8: it under the terms of the GNU Lesser General Public License as published by
! 9: the Free Software Foundation; either version 2.1 of the License, or (at your
1.1 maekawa 10: option) any later version.
11:
12: The MPFR Library is distributed in the hope that it will be useful, but
13: WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
1.1.1.2 ! ohara 14: or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
1.1 maekawa 15: License for more details.
16:
1.1.1.2 ! ohara 17: You should have received a copy of the GNU Lesser General Public License
1.1 maekawa 18: along with the MPFR Library; see the file COPYING.LIB. If not, write to
19: the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
20: MA 02111-1307, USA. */
21:
1.1.1.2 ! ohara 22: #ifndef __MPFR_H
! 23: #define __MPFR_H
1.1 maekawa 24:
1.1.1.2 ! ohara 25: /* check if stdio.h is included */
! 26: #if defined (FILE) || defined (H_STDIO) || defined (_H_STDIO) \
! 27: || defined (_STDIO_H) || defined (_STDIO_H_) || defined (__STDIO_H__) \
! 28: || defined (_STDIO_INCLUDED) || defined (__dj_include_stdio_h_)
! 29: #define _MPFR_H_HAVE_FILE 1
1.1 maekawa 30: #endif
31:
32: /* Definition of rounding modes */
33:
34: #define GMP_RNDN 0
35: #define GMP_RNDZ 1
36: #define GMP_RNDU 2
37: #define GMP_RNDD 3
38:
1.1.1.2 ! ohara 39: /* Definition of exponent limits */
! 40:
! 41: #define MPFR_EMAX_DEFAULT ((mp_exp_t) (((unsigned long) 1 << 31) - 1))
! 42: #define MPFR_EMIN_DEFAULT (-(MPFR_EMAX_DEFAULT))
! 43:
! 44: #define MPFR_EMIN_MIN MPFR_EMIN_DEFAULT
! 45: #define MPFR_EMIN_MAX MPFR_EMAX_DEFAULT
! 46: #define MPFR_EMAX_MIN MPFR_EMIN_DEFAULT
! 47: #define MPFR_EMAX_MAX MPFR_EMAX_DEFAULT
! 48:
! 49: /* Flags */
! 50:
! 51: #define MPFR_FLAGS_UNDERFLOW 1
! 52: #define MPFR_FLAGS_OVERFLOW 2
! 53: #define MPFR_FLAGS_NAN 4
! 54: #define MPFR_FLAGS_INEXACT 8
! 55: #define MPFR_FLAGS_ALL 15
! 56:
1.1 maekawa 57: /* Definitions of types and their semantics */
58:
1.1.1.2 ! ohara 59: typedef unsigned long int mp_prec_t; /* easy to change if necessary */
! 60: #define MPFR_PREC_MIN 2
! 61: #define MPFR_PREC_MAX (ULONG_MAX >> 1)
! 62: /* Limit mainly due to the multiplication code. */
! 63:
! 64: typedef int mp_rnd_t;
! 65:
1.1 maekawa 66: typedef struct {
1.1.1.2 ! ohara 67: mp_prec_t _mpfr_prec; /* WARNING : for the mpfr type, the precision */
1.1 maekawa 68: /* should be understood as the number of BITS,*/
69: /* not the number of mp_limb_t's. This means */
70: /* that the corresponding number of allocated
71: limbs is >= ceil(_mp_prec/BITS_PER_MP_LIMB) */
1.1.1.2 ! ohara 72: mp_size_t _mpfr_size; /* MPFR_ABSSIZE(.) is the number of allocated
1.1 maekawa 73: limbs the field _mp_d points to.
1.1.1.2 ! ohara 74: The sign is that of _mpfr_size.
1.1 maekawa 75: The number 0 is such that _mp_d[k-1]=0
76: where k = ceil(_mp_prec/BITS_PER_MP_LIMB) */
1.1.1.2 ! ohara 77: mp_exp_t _mpfr_exp;
! 78: mp_limb_t *_mpfr_d;
1.1 maekawa 79: }
80: __mpfr_struct;
81:
82: /*
83: The number represented is
84:
1.1.1.2 ! ohara 85: sign(_mpfr_size)*(_mpfr_d[k-1]/B+_mpfr_d[k-2]/B^2+...+_mpfr_d[0]/B^k)*2^_mpfr_exp
1.1 maekawa 86:
87: where k=ceil(_mp_prec/BITS_PER_MP_LIMB) and B=2^BITS_PER_MP_LIMB.
88:
89: For the msb (most significant bit) normalized representation, we must have
1.1.1.2 ! ohara 90: _mpfr_d[k-1]>=B/2, unless the number is zero (in that case its sign is still
! 91: given by sign(_mpfr_size)).
1.1 maekawa 92:
93: We must also have the last k*BITS_PER_MP_LIMB-_mp_prec bits set to zero.
94: */
95:
96: typedef __mpfr_struct mpfr_t[1];
97: typedef __mpfr_struct *mpfr_ptr;
98: typedef __gmp_const __mpfr_struct *mpfr_srcptr;
99:
1.1.1.2 ! ohara 100: #define MPFR_SIGN(x) (((x)->_mpfr_size >> 31) ? -1 : 1)
1.1 maekawa 101:
102: /* Prototypes */
103:
104: #ifndef _PROTO
105: #if defined (__STDC__) || defined (__cplusplus)
106: #define _PROTO(x) x
107: #else
108: #define _PROTO(x) ()
109: #endif
110: #endif
111:
1.1.1.2 ! ohara 112: /* _PROTO will be renamed __GMP_PROTO in gmp 4.1 */
! 113: #ifndef __GMP_PROTO
! 114: #define __GMP_PROTO(x) _PROTO(x)
! 115: #endif
! 116:
! 117: #if defined (__cplusplus)
! 118: extern "C" {
! 119: #endif
! 120:
! 121: extern unsigned int __mpfr_flags;
! 122: extern mp_exp_t __mpfr_emin;
! 123: extern mp_exp_t __mpfr_emax;
! 124: mp_exp_t mpfr_get_emin _PROTO ((void));
! 125: int mpfr_set_emin _PROTO ((mp_exp_t));
! 126: mp_exp_t mpfr_get_emax _PROTO ((void));
! 127: int mpfr_set_emax _PROTO ((mp_exp_t));
! 128: void mpfr_clear_flags _PROTO ((void));
! 129: void mpfr_clear_underflow _PROTO ((void));
! 130: void mpfr_clear_overflow _PROTO ((void));
! 131: void mpfr_clear_nanflag _PROTO ((void));
! 132: void mpfr_clear_inexflag _PROTO ((void));
! 133: int mpfr_check_range _PROTO ((mpfr_ptr, mp_rnd_t));
! 134: int mpfr_underflow_p _PROTO ((void));
! 135: int mpfr_overflow_p _PROTO ((void));
! 136: int mpfr_nanflag_p _PROTO ((void));
! 137: int mpfr_inexflag_p _PROTO ((void));
! 138:
! 139: void mpfr_init2 _PROTO ((mpfr_ptr, mp_prec_t));
! 140: void mpfr_init _PROTO ((mpfr_ptr));
! 141: int mpfr_round_prec _PROTO ((mpfr_ptr, mp_rnd_t, mp_prec_t));
! 142: int mpfr_can_round _PROTO ((mpfr_ptr, mp_exp_t, mp_rnd_t, mp_rnd_t,
! 143: mp_prec_t));
! 144: int mpfr_set_d _PROTO ((mpfr_ptr, double, mp_rnd_t));
! 145: int mpfr_set_z _PROTO ((mpfr_ptr, mpz_srcptr, mp_rnd_t));
! 146: void mpfr_set_nan _PROTO ((mpfr_ptr));
! 147: void mpfr_set_inf _PROTO ((mpfr_ptr, int));
! 148: mp_exp_t mpfr_get_z_exp _PROTO ((mpz_ptr, mpfr_srcptr));
! 149: int mpfr_set_q _PROTO ((mpfr_ptr, mpq_srcptr, mp_rnd_t));
! 150: double mpfr_get_d1 _PROTO ((mpfr_srcptr));
! 151: double mpfr_get_d _PROTO ((mpfr_srcptr, mp_rnd_t));
! 152: int mpfr_set_f _PROTO ((mpfr_ptr, mpf_srcptr, mp_rnd_t));
! 153: int mpfr_set_si _PROTO ((mpfr_ptr, long, mp_rnd_t));
! 154: int mpfr_set_ui _PROTO ((mpfr_ptr, unsigned long, mp_rnd_t));
! 155: void mpfr_print_binary _PROTO ((mpfr_srcptr));
! 156: void mpfr_random _PROTO ((mpfr_ptr));
! 157: void mpfr_random2 _PROTO ((mpfr_ptr, mp_size_t, mp_exp_t));
! 158: void mpfr_urandomb _PROTO ((mpfr_ptr, gmp_randstate_t));
1.1 maekawa 159: void mpfr_clear _PROTO ((mpfr_ptr));
1.1.1.2 ! ohara 160: void mpfr_set_str_raw _PROTO ((mpfr_ptr, char *));
! 161: int mpfr_set_str _PROTO ((mpfr_ptr, __gmp_const char *, int, mp_rnd_t));
! 162: int mpfr_init_set_str _PROTO ((mpfr_ptr, char *, int, mp_rnd_t));
! 163: char* mpfr_get_str _PROTO ((char *, mp_exp_t *, int, size_t, mpfr_srcptr, mp_rnd_t));
! 164: #ifdef _MPFR_H_HAVE_FILE
! 165: size_t mpfr_inp_str _PROTO ((mpfr_ptr, FILE *, int, mp_rnd_t));
! 166: size_t mpfr_out_str _PROTO ((FILE *, int, size_t, mpfr_srcptr, mp_rnd_t));
! 167: #endif
! 168: int mpfr_mul _PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mp_rnd_t));
! 169: int mpfr_pow_ui _PROTO ((mpfr_ptr, mpfr_srcptr, unsigned long int, mp_rnd_t));
! 170: int mpfr_ui_pow_ui _PROTO ((mpfr_ptr, unsigned long int, unsigned long int,
! 171: mp_rnd_t));
! 172: int mpfr_div _PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mp_rnd_t));
! 173: void mpfr_agm _PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mp_rnd_t));
! 174: int mpfr_sqrt _PROTO ((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 175: int mpfr_sqrt_ui _PROTO ((mpfr_ptr, unsigned long, mp_rnd_t));
! 176: int mpfr_add _PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mp_rnd_t));
! 177: int mpfr_add_ui _PROTO ((mpfr_ptr, mpfr_srcptr, unsigned long, mp_rnd_t));
! 178: int mpfr_sub_ui _PROTO ((mpfr_ptr, mpfr_srcptr, unsigned long, mp_rnd_t));
! 179: int mpfr_add_one_ulp _PROTO ((mpfr_ptr, mp_rnd_t));
! 180: int mpfr_sub _PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mp_rnd_t));
! 181: int mpfr_ui_sub _PROTO ((mpfr_ptr, unsigned long, mpfr_srcptr, mp_rnd_t));
! 182: void mpfr_reldiff _PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mp_rnd_t));
! 183: void mpfr_const_pi _PROTO ((mpfr_ptr, mp_rnd_t));
! 184: void mpfr_const_log2 _PROTO ((mpfr_ptr, mp_rnd_t));
! 185: int mpfr_const_euler _PROTO ((mpfr_ptr, mp_rnd_t));
! 186: int mpfr_log _PROTO ((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 187: int mpfr_exp _PROTO ((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 188: int mpfr_exp2 _PROTO ((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 189: int mpfr_sin _PROTO ((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 190: int mpfr_sin_cos _PROTO ((mpfr_ptr, mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 191: int mpfr_cos _PROTO ((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 192: int mpfr_tan _PROTO ((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 193: int mpfr_mul_ui _PROTO((mpfr_ptr, mpfr_srcptr, unsigned long int, mp_rnd_t));
! 194: void mpfr_set_machine_rnd_mode _PROTO ((mp_rnd_t));
1.1 maekawa 195: int mpfr_cmp_ui_2exp _PROTO ((mpfr_srcptr, unsigned long int, int));
196: int mpfr_cmp_si_2exp _PROTO ((mpfr_srcptr, long int, int));
1.1.1.2 ! ohara 197: int mpfr_mul_2exp _PROTO((mpfr_ptr, mpfr_srcptr, unsigned long int, mp_rnd_t));
! 198: int mpfr_div_2exp _PROTO((mpfr_ptr, mpfr_srcptr, unsigned long int, mp_rnd_t));
! 199: int mpfr_mul_2ui _PROTO((mpfr_ptr, mpfr_srcptr, unsigned long int, mp_rnd_t));
! 200: int mpfr_div_2ui _PROTO((mpfr_ptr, mpfr_srcptr, unsigned long int, mp_rnd_t));
! 201: int mpfr_mul_2si _PROTO((mpfr_ptr, mpfr_srcptr, long int, mp_rnd_t));
! 202: int mpfr_div_2si _PROTO((mpfr_ptr, mpfr_srcptr, long int, mp_rnd_t));
! 203: int mpfr_set_prec _PROTO((mpfr_ptr, mp_prec_t));
! 204: void mpfr_set_prec_raw _PROTO((mpfr_ptr, mp_prec_t));
! 205: void mpfr_set_default_prec _PROTO((mp_prec_t));
! 206: mp_prec_t mpfr_get_default_prec _PROTO((void));
! 207: extern mp_prec_t __mpfr_default_fp_bit_precision;
! 208: extern mp_rnd_t __gmp_default_rounding_mode;
! 209: char * mpfr_print_rnd_mode _PROTO((mp_rnd_t));
! 210: int mpfr_neg _PROTO((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 211: int mpfr_sub_one_ulp _PROTO((mpfr_ptr, mp_rnd_t));
! 212: int mpfr_div_ui _PROTO((mpfr_ptr, mpfr_srcptr, unsigned long int, mp_rnd_t));
! 213: int mpfr_ui_div _PROTO((mpfr_ptr, unsigned long int, mpfr_srcptr, mp_rnd_t));
! 214: mp_prec_t mpfr_get_prec _PROTO((mpfr_srcptr));
! 215: void mpfr_set_default_rounding_mode _PROTO((mp_rnd_t));
! 216: int mpfr_eq _PROTO((mpfr_srcptr, mpfr_srcptr, unsigned long));
! 217: int mpfr_rint _PROTO((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 218: int mpfr_round _PROTO((mpfr_ptr, mpfr_srcptr));
! 219: int mpfr_trunc _PROTO((mpfr_ptr, mpfr_srcptr));
! 220: int mpfr_ceil _PROTO((mpfr_ptr, mpfr_srcptr));
! 221: int mpfr_floor _PROTO((mpfr_ptr, mpfr_srcptr));
! 222: void mpfr_extract _PROTO((mpz_ptr, mpfr_srcptr, unsigned int));
! 223: void mpfr_swap _PROTO((mpfr_ptr, mpfr_ptr));
! 224: void mpfr_dump _PROTO((mpfr_srcptr, mp_rnd_t));
! 225: int mpfr_set4 _PROTO ((mpfr_ptr, mpfr_srcptr, mp_rnd_t, int));
! 226: int mpfr_cmp3 _PROTO ((mpfr_srcptr, mpfr_srcptr, int));
! 227: int mpfr_nan_p _PROTO((mpfr_srcptr));
! 228: int mpfr_inf_p _PROTO((mpfr_srcptr));
! 229: int mpfr_number_p _PROTO((mpfr_srcptr));
! 230: int mpfr_acos _PROTO ((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 231: int mpfr_asin _PROTO ((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 232: int mpfr_atan _PROTO ((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 233:
! 234: int mpfr_sinh _PROTO((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 235: int mpfr_tanh _PROTO((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 236: int mpfr_factorial _PROTO ((mpfr_ptr, unsigned long int, mp_rnd_t));
! 237: int mpfr_ui_pow _PROTO ((mpfr_ptr, unsigned long int, mpfr_srcptr, mp_rnd_t));
! 238:
! 239: int mpfr_atanh _PROTO((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 240: int mpfr_acosh _PROTO((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 241: int mpfr_asinh _PROTO((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 242:
! 243: int mpfr_cosh _PROTO((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 244: int mpfr_sinh _PROTO((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 245: int mpfr_tanh _PROTO((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 246: int mpfr_asin _PROTO ((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 247: int mpfr_atan _PROTO ((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 248: int mpfr_fac_ui _PROTO ((mpfr_ptr, unsigned long int, mp_rnd_t));
! 249: int mpfr_fma _PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_srcptr, mp_rnd_t));
! 250: int mpfr_hypot _PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mp_rnd_t));
! 251: int mpfr_pow _PROTO ((mpfr_ptr, mpfr_srcptr,mpfr_srcptr, mp_rnd_t));
! 252: int mpfr_pow_si _PROTO ((mpfr_ptr, mpfr_srcptr, long int, mp_rnd_t));
! 253: int mpfr_isinteger _PROTO ((mpfr_srcptr));
! 254: int mpfr_log2 _PROTO ((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 255: int mpfr_log10 _PROTO ((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 256: int mpfr_log1p _PROTO ((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 257: int mpfr_expm1 _PROTO ((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 258: int mpfr_cbrt _PROTO ((mpfr_ptr, mpfr_srcptr, mp_rnd_t));
! 259:
! 260: int mpfr_min _PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mp_rnd_t));
! 261: int mpfr_max _PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mp_rnd_t));
! 262: int mpfr_dim _PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mp_rnd_t));
! 263: int mpfr_copysign _PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mp_rnd_t));
! 264:
! 265: int mpfr_mul_z _PROTO ((mpfr_ptr, mpfr_srcptr, mpz_srcptr, mp_rnd_t));
! 266: int mpfr_div_z _PROTO ((mpfr_ptr, mpfr_srcptr, mpz_srcptr, mp_rnd_t));
! 267: int mpfr_add_z _PROTO ((mpfr_ptr, mpfr_srcptr, mpz_srcptr, mp_rnd_t));
! 268: int mpfr_sub_z _PROTO ((mpfr_ptr, mpfr_srcptr, mpz_srcptr, mp_rnd_t));
! 269:
! 270: int mpfr_mul_q _PROTO ((mpfr_ptr, mpfr_srcptr, mpq_srcptr, mp_rnd_t));
! 271: int mpfr_div_q _PROTO ((mpfr_ptr, mpfr_srcptr, mpq_srcptr, mp_rnd_t));
! 272: int mpfr_add_q _PROTO ((mpfr_ptr, mpfr_srcptr, mpq_srcptr, mp_rnd_t));
! 273: int mpfr_sub_q _PROTO ((mpfr_ptr, mpfr_srcptr, mpq_srcptr, mp_rnd_t));
1.1 maekawa 274:
1.1.1.2 ! ohara 275: #if defined (__cplusplus)
! 276: }
! 277: #endif
! 278:
! 279: /* prevent from using mpfr_get_e{min,max} as lvalues */
! 280: #define mpfr_get_emin() (__mpfr_emin + 0)
! 281: #define mpfr_get_emax() (__mpfr_emax + 0)
! 282:
! 283: #define mpfr_clear_flags() \
! 284: ((void) (__mpfr_flags = 0))
! 285: #define mpfr_clear_underflow() \
! 286: ((void) (__mpfr_flags &= MPFR_FLAGS_ALL ^ MPFR_FLAGS_UNDERFLOW))
! 287: #define mpfr_clear_overflow() \
! 288: ((void) (__mpfr_flags &= MPFR_FLAGS_ALL ^ MPFR_FLAGS_OVERFLOW))
! 289: #define mpfr_clear_nanflag() \
! 290: ((void) (__mpfr_flags &= MPFR_FLAGS_ALL ^ MPFR_FLAGS_NAN))
! 291: #define mpfr_clear_inexflag() \
! 292: ((void) (__mpfr_flags &= MPFR_FLAGS_ALL ^ MPFR_FLAGS_INEXACT))
! 293: #define mpfr_underflow_p() \
! 294: ((int) (__mpfr_flags & MPFR_FLAGS_UNDERFLOW))
! 295: #define mpfr_overflow_p() \
! 296: ((int) (__mpfr_flags & MPFR_FLAGS_OVERFLOW))
! 297: #define mpfr_nanflag_p() \
! 298: ((int) (__mpfr_flags & MPFR_FLAGS_NAN))
! 299: #define mpfr_inexflag_p() \
! 300: ((int) (__mpfr_flags & MPFR_FLAGS_INEXACT))
! 301:
! 302: #define mpfr_round(a,b) mpfr_rint((a), (b), GMP_RNDN)
! 303: #define mpfr_trunc(a,b) mpfr_rint((a), (b), GMP_RNDZ)
! 304: #define mpfr_ceil(a,b) mpfr_rint((a), (b), GMP_RNDU)
! 305: #define mpfr_floor(a,b) mpfr_rint((a), (b), GMP_RNDD)
! 306:
! 307: #define mpfr_cmp_ui(b,i) mpfr_cmp_ui_2exp((b),(i),0)
! 308: #define mpfr_cmp_si(b,i) mpfr_cmp_si_2exp((b),(i),0)
! 309: #define mpfr_set(a,b,r) mpfr_set4(a,b,r,MPFR_SIGN(b))
! 310: #define mpfr_abs(a,b,r) mpfr_set4(a,b,r,1)
! 311: #define mpfr_cmp(b, c) mpfr_cmp3(b, c, 1)
! 312: #define mpfr_sgn(x) mpfr_cmp_ui(x,0)
! 313: #define mpfr_mul_2exp(y,x,n,r) mpfr_mul_2ui((y),(x),(n),(r))
! 314: #define mpfr_div_2exp(y,x,n,r) mpfr_div_2ui((y),(x),(n),(r))
! 315:
! 316: #define mpfr_init_set_si(x, i, rnd) \
! 317: ( mpfr_init(x), mpfr_set_si((x), (i), (rnd)) )
! 318: #define mpfr_init_set_ui(x, i, rnd) \
! 319: ( mpfr_init(x), mpfr_set_ui((x), (i), (rnd)) )
! 320: #define mpfr_init_set_d(x, d, rnd) \
! 321: ( mpfr_init(x), mpfr_set_d((x), (d), (rnd)) )
! 322: #define mpfr_init_set_z(x, i, rnd) \
! 323: ( mpfr_init(x), mpfr_set_z((x), (i), (rnd)) )
! 324: #define mpfr_init_set_q(x, i, rnd) \
! 325: ( mpfr_init(x), mpfr_set_q((x), (i), (rnd)) )
! 326: #define mpfr_init_set(x, y, rnd) \
! 327: ( mpfr_init(x), mpfr_set((x), (y), (rnd)) )
! 328: #define mpfr_init_set_f(x, y, rnd) \
! 329: ( mpfr_init(x), mpfr_set_f((x), (y), (rnd)) )
1.1 maekawa 330:
1.1.1.2 ! ohara 331: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>