Ruby
2.1.10p492(2016-04-01revision54464)
|
Go to the source code of this file.
Data Structures | |
struct | Real |
Macros | |
#define | BDIGIT uint16_t |
#define | BDIGIT_DBL uint32_t |
#define | BDIGIT_DBL_SIGNED int32_t |
#define | SIZEOF_BDIGITS 2 |
#define | vabs abs |
#define | RMPD_COMPONENT_FIGURES 4 |
#define | RMPD_BASE ((BDIGIT)10000U) |
#define | SZ_NaN "NaN" |
#define | SZ_INF "Infinity" |
#define | SZ_PINF "+Infinity" |
#define | SZ_NINF "-Infinity" |
#define | VP_EXPORT static |
#define | VP_EXCEPTION_ALL ((unsigned short)0x00FF) |
#define | VP_EXCEPTION_INFINITY ((unsigned short)0x0001) |
#define | VP_EXCEPTION_NaN ((unsigned short)0x0002) |
#define | VP_EXCEPTION_UNDERFLOW ((unsigned short)0x0004) |
#define | VP_EXCEPTION_OVERFLOW ((unsigned short)0x0001) /* 0x0008) */ |
#define | VP_EXCEPTION_ZERODIVIDE ((unsigned short)0x0010) |
#define | VP_EXCEPTION_OP ((unsigned short)0x0020) |
#define | VP_EXCEPTION_MEMORY ((unsigned short)0x0040) |
#define | RMPD_EXCEPTION_MODE_DEFAULT 0U |
#define | VP_ROUND_MODE ((unsigned short)0x0100) |
#define | VP_ROUND_UP 1 |
#define | VP_ROUND_DOWN 2 |
#define | VP_ROUND_HALF_UP 3 |
#define | VP_ROUND_HALF_DOWN 4 |
#define | VP_ROUND_CEIL 5 |
#define | VP_ROUND_FLOOR 6 |
#define | VP_ROUND_HALF_EVEN 7 |
#define | RMPD_ROUNDING_MODE_DEFAULT VP_ROUND_HALF_UP |
#define | VP_SIGN_NaN 0 /* NaN */ |
#define | VP_SIGN_POSITIVE_ZERO 1 /* Positive zero */ |
#define | VP_SIGN_NEGATIVE_ZERO -1 /* Negative zero */ |
#define | VP_SIGN_POSITIVE_FINITE 2 /* Positive finite number */ |
#define | VP_SIGN_NEGATIVE_FINITE -2 /* Negative finite number */ |
#define | VP_SIGN_POSITIVE_INFINITE 3 /* Positive infinite number */ |
#define | VP_SIGN_NEGATIVE_INFINITE -3 /* Negative infinite number */ |
#define | FLEXIBLE_ARRAY_SIZE 1 |
#define | VpBaseFig() rmpd_component_figures() |
#define | VpDblFig() rmpd_double_figures() |
#define | VpBaseVal() rmpd_base_value() |
#define | Abs(a) (((a)>= 0)?(a):(-(a))) |
#define | Max(a, b) (((a)>(b))?(a):(b)) |
#define | Min(a, b) (((a)>(b))?(b):(a)) |
#define | VpMaxPrec(a) ((a)->MaxPrec) |
#define | VpPrec(a) ((a)->Prec) |
#define | VpGetFlag(a) ((a)->flag) |
#define | VpGetSign(a) (((a)->sign>0)?1:(-1)) |
#define | VpChangeSign(a, s) {if((s)>0) (a)->sign=(short)Abs((ssize_t)(a)->sign);else (a)->sign=-(short)Abs((ssize_t)(a)->sign);} |
#define | VpSetSign(a, s) {if((s)>0) (a)->sign=(short)VP_SIGN_POSITIVE_FINITE;else (a)->sign=(short)VP_SIGN_NEGATIVE_FINITE;} |
#define | VpSetOne(a) {(a)->Prec=(a)->exponent=(a)->frac[0]=1;(a)->sign=VP_SIGN_POSITIVE_FINITE;} |
#define | VpIsPosZero(a) ((a)->sign==VP_SIGN_POSITIVE_ZERO) |
#define | VpIsNegZero(a) ((a)->sign==VP_SIGN_NEGATIVE_ZERO) |
#define | VpIsZero(a) (VpIsPosZero(a) || VpIsNegZero(a)) |
#define | VpSetPosZero(a) ((a)->frac[0]=0,(a)->Prec=1,(a)->sign=VP_SIGN_POSITIVE_ZERO) |
#define | VpSetNegZero(a) ((a)->frac[0]=0,(a)->Prec=1,(a)->sign=VP_SIGN_NEGATIVE_ZERO) |
#define | VpSetZero(a, s) ( ((s)>0)?VpSetPosZero(a):VpSetNegZero(a) ) |
#define | VpIsNaN(a) ((a)->sign==VP_SIGN_NaN) |
#define | VpSetNaN(a) ((a)->frac[0]=0,(a)->Prec=1,(a)->sign=VP_SIGN_NaN) |
#define | VpIsPosInf(a) ((a)->sign==VP_SIGN_POSITIVE_INFINITE) |
#define | VpIsNegInf(a) ((a)->sign==VP_SIGN_NEGATIVE_INFINITE) |
#define | VpIsInf(a) (VpIsPosInf(a) || VpIsNegInf(a)) |
#define | VpIsDef(a) ( !(VpIsNaN(a)||VpIsInf(a)) ) |
#define | VpSetPosInf(a) ((a)->frac[0]=0,(a)->Prec=1,(a)->sign=VP_SIGN_POSITIVE_INFINITE) |
#define | VpSetNegInf(a) ((a)->frac[0]=0,(a)->Prec=1,(a)->sign=VP_SIGN_NEGATIVE_INFINITE) |
#define | VpSetInf(a, s) ( ((s)>0)?VpSetPosInf(a):VpSetNegInf(a) ) |
#define | VpHasVal(a) (a->frac[0]) |
#define | VpIsOne(a) ((a->Prec==1)&&(a->frac[0]==1)&&(a->exponent==1)) |
#define | VpExponent(a) (a->exponent) |
Variables | |
VALUE | rb_cBigDecimal |
#define BDIGIT uint16_t |
Definition at line 40 of file bigdecimal.h.
Referenced by abs2twocomp(), absint_numwords_generic(), bary_addc(), bary_divmod(), bary_divmod_normal(), bary_mul_balance_with_mulfunc(), bary_mul_karatsuba(), bary_mul_precheck(), bary_mul_toom3(), bary_pack(), bary_small_rshift(), bary_sq_fast(), bary_swap(), bary_unpack_internal(), bdigitdbl2bary(), big2dbl(), big2str_generic(), big2str_karatsuba(), big2ulong(), big_shift3(), bigadd_int(), bigand_int(), BigDecimal_hash(), BigDecimal_memsize(), bigdivrem(), bigdivrem1(), bigdivrem_restoring(), bigdivrem_single1(), bigfixize(), bigmul0(), bignew_1(), bigor_int(), bigsq(), bigsub(), bigsub_int(), bigtrunc(), bigxor_int(), dbl2big(), get2comp(), if(), obj_memsize_of(), ossl_bn_initialize(), rb_absint_singlebit_p(), rb_absint_size(), rb_big2str1(), rb_big_and(), rb_big_aref(), rb_big_bit_length(), rb_big_clone(), rb_big_divrem_normal(), rb_big_eq(), rb_big_eql(), rb_big_hash(), rb_big_neg(), rb_big_or(), rb_big_realloc(), rb_big_xor(), rb_integer_pack(), rb_integer_unpack(), rb_uint2big(), str2big_karatsuba(), str2big_normal(), str2big_poweroftwo(), VpAddAbs(), VpAddSub(), VpAsgn(), VpCopy(), VpCtoV(), VpDivd(), VpDtoV(), VpMult(), VpNmlz(), VpRdup(), VpSubAbs(), and w_object().
#define BDIGIT_DBL uint32_t |
Definition at line 41 of file bigdecimal.h.
Referenced by bary_addc(), bary_divmod(), bary_mul_single(), bary_muladd_1xN(), bary_pack(), bary_small_lshift(), bary_small_rshift(), bary_sq_fast(), bary_unpack_internal(), big2str_2bdigits(), bigadd_int(), bigdivrem(), bigdivrem_mulsub(), bigdivrem_single1(), if(), integer_pack_fill_dd(), integer_pack_take_lowbits(), integer_unpack_push_bits(), maxpow_in_bdigit_dbl(), power_cache_get_power(), rb_integer_unpack(), str2big_karatsuba(), str2big_normal(), str2big_poweroftwo(), VpDivd(), VpMult(), and VpSzMantissa().
#define BDIGIT_DBL_SIGNED int32_t |
Definition at line 42 of file bigdecimal.h.
Referenced by bary_mulsub_1xN(), bary_pack(), bary_subb(), BigDecimal_to_i(), bigdivrem1(), bigdivrem_mulsub(), bigsub_int(), and rb_integer_unpack().
#define FLEXIBLE_ARRAY_SIZE 1 |
Definition at line 153 of file bigdecimal.h.
Definition at line 262 of file bigdecimal.h.
Referenced by VpAlloc(), and VpSetPTR().
Definition at line 263 of file bigdecimal.h.
Referenced by VpAddSub(), VpDivd(), VpFrac(), VpSqrt(), and VpVtoD().
#define RMPD_BASE ((BDIGIT)10000U) |
Definition at line 95 of file bigdecimal.h.
Referenced by rmpd_base_value().
#define RMPD_COMPONENT_FIGURES 4 |
Definition at line 94 of file bigdecimal.h.
Referenced by rmpd_component_figures().
#define RMPD_EXCEPTION_MODE_DEFAULT 0U |
Definition at line 128 of file bigdecimal.h.
Referenced by VpGetException().
#define RMPD_ROUNDING_MODE_DEFAULT VP_ROUND_HALF_UP |
Definition at line 140 of file bigdecimal.h.
Referenced by VpGetRoundMode().
#define SIZEOF_BDIGITS 2 |
Definition at line 43 of file bigdecimal.h.
Referenced by bary_pack(), bary_unpack_internal(), bigfixize(), integer_unpack_single_bdigit(), nlz(), ossl_bn_initialize(), rb_absint_size(), and w_object().
#define SZ_INF "Infinity" |
Definition at line 106 of file bigdecimal.h.
Referenced by VpAlloc(), and VpSzMantissa().
#define SZ_NaN "NaN" |
Definition at line 105 of file bigdecimal.h.
Referenced by VpAlloc(), and VpSzMantissa().
#define SZ_NINF "-Infinity" |
Definition at line 108 of file bigdecimal.h.
Referenced by VpAlloc(), and VpSzMantissa().
#define SZ_PINF "+Infinity" |
Definition at line 107 of file bigdecimal.h.
Referenced by VpAlloc().
#define vabs abs |
Definition at line 75 of file bigdecimal.h.
Referenced by BigDecimal_DoDivmod(), BigMath_s_exp(), and BigMath_s_log().
#define VP_EXCEPTION_ALL ((unsigned short)0x00FF) |
Definition at line 117 of file bigdecimal.h.
Referenced by BigDecimal_mode(), and Init_bigdecimal().
#define VP_EXCEPTION_INFINITY ((unsigned short)0x0001) |
Definition at line 118 of file bigdecimal.h.
Referenced by BigDecimal_check_num(), BigDecimal_mode(), GetAddSubPrec(), Init_bigdecimal(), ToValue(), VpCtoV(), VpException(), and VpIsDefOP().
#define VP_EXCEPTION_MEMORY ((unsigned short)0x0040) |
Definition at line 126 of file bigdecimal.h.
Referenced by VpException(), VpMemAlloc(), and VpMemRealloc().
#define VP_EXCEPTION_NaN ((unsigned short)0x0002) |
Definition at line 119 of file bigdecimal.h.
Referenced by BigDecimal_check_num(), BigDecimal_mode(), Init_bigdecimal(), ToValue(), VpDivd(), VpException(), and VpIsDefOP().
#define VP_EXCEPTION_OP ((unsigned short)0x0020) |
Definition at line 125 of file bigdecimal.h.
Referenced by VpException(), and VpSqrt().
#define VP_EXCEPTION_OVERFLOW ((unsigned short)0x0001) /* 0x0008) */ |
Definition at line 121 of file bigdecimal.h.
Referenced by AddExponent(), BigDecimal_to_f(), and Init_bigdecimal().
#define VP_EXCEPTION_UNDERFLOW ((unsigned short)0x0004) |
Definition at line 120 of file bigdecimal.h.
Referenced by AddExponent(), BigDecimal_mode(), BigDecimal_to_f(), Init_bigdecimal(), and VpException().
#define VP_EXCEPTION_ZERODIVIDE ((unsigned short)0x0010) |
Definition at line 122 of file bigdecimal.h.
Referenced by BigDecimal_mode(), Init_bigdecimal(), VpDivd(), and VpException().
#define VP_EXPORT static |
Definition at line 114 of file bigdecimal.h.
#define VP_ROUND_CEIL 5 |
Definition at line 136 of file bigdecimal.h.
Referenced by BigDecimal_ceil(), check_rounding_mode(), if(), Init_bigdecimal(), switch(), VpInternalRound(), and VpIsRoundMode().
#define VP_ROUND_DOWN 2 |
Definition at line 133 of file bigdecimal.h.
Referenced by BigDecimal_divremain(), BigDecimal_DoDivmod(), BigDecimal_fix(), BigDecimal_truncate(), check_rounding_mode(), Init_bigdecimal(), switch(), VpInternalRound(), and VpIsRoundMode().
#define VP_ROUND_FLOOR 6 |
Definition at line 137 of file bigdecimal.h.
Referenced by BigDecimal_floor(), check_rounding_mode(), if(), Init_bigdecimal(), switch(), VpInternalRound(), and VpIsRoundMode().
#define VP_ROUND_HALF_DOWN 4 |
Definition at line 135 of file bigdecimal.h.
Referenced by check_rounding_mode(), Init_bigdecimal(), switch(), VpInternalRound(), and VpIsRoundMode().
#define VP_ROUND_HALF_EVEN 7 |
Definition at line 138 of file bigdecimal.h.
Referenced by check_rounding_mode(), Init_bigdecimal(), switch(), VpInternalRound(), and VpIsRoundMode().
#define VP_ROUND_HALF_UP 3 |
Definition at line 134 of file bigdecimal.h.
Referenced by check_rounding_mode(), Init_bigdecimal(), switch(), VpInternalRound(), and VpIsRoundMode().
#define VP_ROUND_MODE ((unsigned short)0x0100) |
Definition at line 131 of file bigdecimal.h.
Referenced by BigDecimal_mode(), and Init_bigdecimal().
#define VP_ROUND_UP 1 |
Definition at line 132 of file bigdecimal.h.
Referenced by check_rounding_mode(), Init_bigdecimal(), switch(), VpInternalRound(), and VpIsRoundMode().
#define VP_SIGN_NaN 0 /* NaN */ |
Definition at line 142 of file bigdecimal.h.
Referenced by Init_bigdecimal().
#define VP_SIGN_NEGATIVE_FINITE -2 /* Negative finite number */ |
Definition at line 146 of file bigdecimal.h.
Referenced by Init_bigdecimal().
#define VP_SIGN_NEGATIVE_INFINITE -3 /* Negative infinite number */ |
Definition at line 148 of file bigdecimal.h.
Referenced by Init_bigdecimal().
#define VP_SIGN_NEGATIVE_ZERO -1 /* Negative zero */ |
Definition at line 144 of file bigdecimal.h.
Referenced by Init_bigdecimal().
#define VP_SIGN_POSITIVE_FINITE 2 /* Positive finite number */ |
Definition at line 145 of file bigdecimal.h.
Referenced by Init_bigdecimal().
#define VP_SIGN_POSITIVE_INFINITE 3 /* Positive infinite number */ |
Definition at line 147 of file bigdecimal.h.
Referenced by BigMath_s_exp(), BigMath_s_log(), and Init_bigdecimal().
#define VP_SIGN_POSITIVE_ZERO 1 /* Positive zero */ |
Definition at line 143 of file bigdecimal.h.
Referenced by Init_bigdecimal().
#define VpBaseFig | ( | ) | rmpd_component_figures() |
Definition at line 201 of file bigdecimal.h.
Referenced by BigDecimal_abs(), BigDecimal_add(), BigDecimal_ceil(), BigDecimal_coerce(), BigDecimal_div2(), BigDecimal_divremain(), BigDecimal_DoDivmod(), BigDecimal_dump(), BigDecimal_fix(), BigDecimal_floor(), BigDecimal_frac(), BigDecimal_inspect(), BigDecimal_load(), BigDecimal_mult(), BigDecimal_neg(), BigDecimal_power(), BigDecimal_prec(), BigDecimal_round(), BigDecimal_sqrt(), BigDecimal_sub(), BigDecimal_to_i(), BigDecimal_truncate(), BigDecimalCmp(), GetVpValueWithPrec(), and if().
#define VpBaseVal | ( | ) | rmpd_base_value() |
Definition at line 203 of file bigdecimal.h.
Referenced by if(), and Init_bigdecimal().
#define VpChangeSign | ( | a, | |
s | |||
) | {if((s)>0) (a)->sign=(short)Abs((ssize_t)(a)->sign);else (a)->sign=-(short)Abs((ssize_t)(a)->sign);} |
Definition at line 274 of file bigdecimal.h.
Referenced by BigDecimal_abs(), and VpSqrt().
#define VpDblFig | ( | ) | rmpd_double_figures() |
Definition at line 202 of file bigdecimal.h.
Referenced by BigDecimal_double_fig(), and BigDecimal_sqrt().
Definition at line 303 of file bigdecimal.h.
Definition at line 267 of file bigdecimal.h.
Definition at line 272 of file bigdecimal.h.
Referenced by AddExponent(), BigDecimal_add(), BigDecimal_DoDivmod(), BigDecimal_power(), BigDecimal_sub(), BigDecimal_to_i(), BigDecimal_to_r(), BigMath_s_exp(), BigMath_s_log(), for(), if(), switch(), VpAddSub(), VpAsgn(), VpComp(), VpDivd(), VpFrac(), VpInternalRound(), VpIsDefOP(), VpMult(), VpNmlz(), VpPower(), VpSqrt(), VpSzMantissa(), and VpVtoD().
Definition at line 301 of file bigdecimal.h.
Referenced by VpExponent10(), VpFrac(), and VpSqrt().
Definition at line 297 of file bigdecimal.h.
Referenced by BigDecimal_power(), GetAddSubPrec(), VpComp(), VpNmlz(), and VpNumOfChars().
#define VpIsInf | ( | a | ) | (VpIsPosInf(a) || VpIsNegInf(a)) |
Definition at line 296 of file bigdecimal.h.
Referenced by BigDecimal_DoDivmod(), BigDecimal_IsFinite(), BigDecimal_power(), VpAsgn(), VpIsDefOP(), and VpPower().
#define VpIsNaN | ( | a | ) | ((a)->sign==VP_SIGN_NaN) |
Definition at line 290 of file bigdecimal.h.
Referenced by BigDecimal_add(), BigDecimal_check_num(), BigDecimal_DoDivmod(), BigDecimal_IsFinite(), BigDecimal_IsNaN(), BigDecimal_power(), BigDecimal_sub(), BigMath_s_exp(), BigMath_s_log(), ToValue(), VpAsgn(), VpComp(), VpIsDefOP(), VpPower(), VpSzMantissa(), and VpVtoD().
#define VpIsNegInf | ( | a | ) | ((a)->sign==VP_SIGN_NEGATIVE_INFINITE) |
Definition at line 295 of file bigdecimal.h.
Referenced by BigDecimal_check_num(), BigDecimal_IsInfinite(), BigMath_s_exp(), BigMath_s_log(), ToValue(), VpSzMantissa(), and VpVtoD().
#define VpIsNegZero | ( | a | ) | ((a)->sign==VP_SIGN_NEGATIVE_ZERO) |
Definition at line 283 of file bigdecimal.h.
Referenced by VpVtoD().
Definition at line 302 of file bigdecimal.h.
#define VpIsPosInf | ( | a | ) | ((a)->sign==VP_SIGN_POSITIVE_INFINITE) |
Definition at line 294 of file bigdecimal.h.
Referenced by BigDecimal_check_num(), BigDecimal_IsInfinite(), BigMath_s_exp(), BigMath_s_log(), ToValue(), VpPower(), VpSzMantissa(), and VpVtoD().
#define VpIsPosZero | ( | a | ) | ((a)->sign==VP_SIGN_POSITIVE_ZERO) |
Definition at line 282 of file bigdecimal.h.
Referenced by VpSzMantissa(), and VpVtoD().
#define VpIsZero | ( | a | ) | (VpIsPosZero(a) || VpIsNegZero(a)) |
Definition at line 284 of file bigdecimal.h.
Referenced by BigDecimal_DoDivmod(), BigDecimal_nonzero(), BigDecimal_power(), BigDecimal_zero(), BigMath_s_exp(), BigMath_s_log(), rmpd_power_by_big_decimal(), VpAddSub(), VpAsgn(), VpComp(), VpDivd(), VpIsDefOP(), VpMult(), VpNmlz(), VpPower(), VpSqrt(), and VpSzMantissa().
Definition at line 265 of file bigdecimal.h.
Referenced by BigDecimal_dump(), and BigDecimal_inspect().
Definition at line 266 of file bigdecimal.h.
Referenced by BigDecimal_inspect().
#define VpSetInf | ( | a, | |
s | |||
) | ( ((s)>0)?VpSetPosInf(a):VpSetNegInf(a) ) |
Definition at line 300 of file bigdecimal.h.
Referenced by AddExponent(), BigDecimal_add(), BigDecimal_DoDivmod(), BigDecimal_power(), BigDecimal_sub(), BigMath_s_exp(), BigMath_s_log(), VpAsgn(), VpCtoV(), VpDivd(), VpIsDefOP(), and VpPower().
#define VpSetNaN | ( | a | ) | ((a)->frac[0]=0,(a)->Prec=1,(a)->sign=VP_SIGN_NaN) |
Definition at line 291 of file bigdecimal.h.
Referenced by BigDecimal_power(), BigMath_s_exp(), BigMath_s_log(), VpAlloc(), VpAsgn(), VpDivd(), VpDtoV(), VpIsDefOP(), VpPower(), and VpSqrt().
#define VpSetNegInf | ( | a | ) | ((a)->frac[0]=0,(a)->Prec=1,(a)->sign=VP_SIGN_NEGATIVE_INFINITE) |
Definition at line 299 of file bigdecimal.h.
Referenced by BigDecimal_power(), VpAlloc(), and VpDtoV().
#define VpSetNegZero | ( | a | ) | ((a)->frac[0]=0,(a)->Prec=1,(a)->sign=VP_SIGN_NEGATIVE_ZERO) |
Definition at line 286 of file bigdecimal.h.
Definition at line 279 of file bigdecimal.h.
#define VpSetPosInf | ( | a | ) | ((a)->frac[0]=0,(a)->Prec=1,(a)->sign=VP_SIGN_POSITIVE_INFINITE) |
Definition at line 298 of file bigdecimal.h.
Referenced by BigDecimal_power(), VpAlloc(), and VpDtoV().
#define VpSetPosZero | ( | a | ) | ((a)->frac[0]=0,(a)->Prec=1,(a)->sign=VP_SIGN_POSITIVE_ZERO) |
Definition at line 285 of file bigdecimal.h.
#define VpSetSign | ( | a, | |
s | |||
) | {if((s)>0) (a)->sign=(short)VP_SIGN_POSITIVE_FINITE;else (a)->sign=(short)VP_SIGN_NEGATIVE_FINITE;} |
Definition at line 276 of file bigdecimal.h.
Referenced by BigMath_s_exp(), for(), VpAddSub(), VpAsgn(), VpCtoV(), VpDivd(), VpDtoV(), VpFrac(), VpMult(), and VpPower().
#define VpSetZero | ( | a, | |
s | |||
) | ( ((s)>0)?VpSetPosZero(a):VpSetNegZero(a) ) |
Definition at line 287 of file bigdecimal.h.
Referenced by AddExponent(), if(), VpAddSub(), VpAlloc(), VpAsgn(), VpCtoV(), VpDivd(), VpDtoV(), VpFrac(), VpIsDefOP(), VpMult(), VpNmlz(), and VpPower().
|
inlinestatic |
Definition at line 55 of file bigdecimal.h.
Referenced by ossl_bn_initialize().
|
inlinestatic |
Definition at line 64 of file bigdecimal.h.
Definition at line 195 of file bigdecimal.h.
References RMPD_BASE.
|
inlinestatic |
Definition at line 197 of file bigdecimal.h.
References RMPD_COMPONENT_FIGURES.
|
inlinestatic |
Definition at line 199 of file bigdecimal.h.
References DBL_DIG.
Referenced by BigMath_s_exp(), BigMath_s_log(), and VpInit().
Definition at line 4038 of file bigdecimal.c.
References a, b, BASE_FIG, BDIGIT, Real::exponent, Real::frac, i, Min, n, Real::Prec, sw, VpAddAbs(), VpAsgn(), VpGetSign, VpInternalRound(), VpIsDefOP(), VpIsZero, VpSetSign, VpSetZero, and VpSubAbs().
Referenced by BigDecimal_add(), BigDecimal_divremain(), BigDecimal_DoDivmod(), BigDecimal_sub(), and VpSqrt().
Definition at line 3837 of file bigdecimal.c.
References BASE_FIG, buf, i, ISDIGIT, ISSPACE, Max, Real::MaxPrec, mx, ne, nf, NULL, rb_str_resize(), rb_str_tmp_new(), RSTRING_PTR, StrCmp, strlen(), SZ_INF, SZ_NaN, SZ_NINF, SZ_PINF, v, VpAllocReal, VpCtoV(), VpGetPrecLimit(), VpSetNaN, VpSetNegInf, VpSetPosInf, and VpSetZero.
Referenced by BigDecimal_new(), VpCreateRbObject(), VpInit(), VpMult(), VpNewRbClass(), VpPower(), and VpSqrt().
Definition at line 3994 of file bigdecimal.c.
References BASE_FIG, BDIGIT, Real::exponent, Real::frac, Real::MaxPrec, memcpy(), n, Real::Prec, VpGetSign, VpInternalRound(), VpIsInf, VpIsNaN, VpIsZero, VpLimitRound(), VpSetInf, VpSetNaN, VpSetSign, and VpSetZero.
Referenced by BigDecimal_abs(), BigDecimal_neg(), VpAddAbs(), VpAddSub(), VpDivd(), VpFrac(), VpMult(), VpPower(), VpSqrt(), and VpSubAbs().
Definition at line 4875 of file bigdecimal.c.
References e, Real::exponent, Real::frac, mx, Real::Prec, Real::sign, val, VpGetSign, VpIsDef, VpIsNaN, VpIsZero, and while().
Referenced by BigDecimalCmp().
Definition at line 572 of file bigdecimal.c.
References Real::obj, rb_cBigDecimal, TypedData_Wrap_Struct, and VpAlloc().
Referenced by BigDecimal_abs(), BigDecimal_add(), BigDecimal_ceil(), BigDecimal_div2(), BigDecimal_divremain(), BigDecimal_DoDivmod(), BigDecimal_fix(), BigDecimal_floor(), BigDecimal_frac(), BigDecimal_mult(), BigDecimal_neg(), BigDecimal_power(), BigDecimal_round(), BigDecimal_sqrt(), BigDecimal_sub(), BigDecimal_truncate(), BigMath_s_exp(), BigMath_s_log(), GetVpValueWithPrec(), and rmpd_power_by_big_decimal().
VP_EXPORT int VpCtoV | ( | Real * | a, |
const char * | int_chr, | ||
size_t | ni, | ||
const char * | frac, | ||
size_t | nf, | ||
const char * | exp_chr, | ||
size_t | ne | ||
) |
Definition at line 5319 of file bigdecimal.c.
References BASE_FIG, BDIGIT, e, Real::exponent, Real::frac, i, j, Real::MaxPrec, memset(), MUL_OVERFLOW_SIGNED_VALUE_P, ne, Real::Prec, rb_warn(), SIGNED_VALUE, SIGNED_VALUE_MAX, VP_EXCEPTION_INFINITY, VpException(), VpNmlz(), VpSetInf, VpSetSign, VpSetZero, and zero().
Referenced by VpAlloc().
Definition at line 4622 of file bigdecimal.c.
References AddExponent(), BASE, BASE_FIG, BDIGIT, BDIGIT_DBL, Real::exponent, Real::frac, i, if(), Real::MaxPrec, Min, n, Real::Prec, q, rb_bug(), VP_EXCEPTION_NaN, VP_EXCEPTION_ZERODIVIDE, VpAsgn(), VpException(), VpGetSign, VpIsDefOP(), VpIsOne, VpIsZero, VpNmlz(), VpSetInf, VpSetNaN, VpSetSign, and VpSetZero.
Referenced by BigDecimal_div2(), BigDecimal_divremain(), BigDecimal_DoDivmod(), VpPower(), and VpSqrt().
Definition at line 5543 of file bigdecimal.c.
References BASE, BDIGIT, d, Real::exponent, Real::frac, i, isinf(), isnan, Real::MaxPrec, memset(), ne, Real::Prec, SIGNED_VALUE, val, VpInternalRound(), VpSetNaN, VpSetNegInf, VpSetPosInf, VpSetSign, and VpSetZero.
Referenced by VpSqrt().
Definition at line 3582 of file bigdecimal.c.
References rb_eFloatDomainError, rb_fatal(), rb_raise(), VP_EXCEPTION_INFINITY, VP_EXCEPTION_MEMORY, VP_EXCEPTION_NaN, VP_EXCEPTION_OP, VP_EXCEPTION_UNDERFLOW, VP_EXCEPTION_ZERODIVIDE, and VpGetException().
Referenced by AddExponent(), BigDecimal_check_num(), BigDecimal_to_f(), GetAddSubPrec(), ToValue(), VpCtoV(), VpDivd(), VpIsDefOP(), VpMemAlloc(), VpMemRealloc(), and VpSqrt().
Definition at line 5106 of file bigdecimal.c.
References BASE1, BASE_FIG, ex, Real::exponent, Real::frac, n, and VpHasVal.
Referenced by BigDecimal_exponent(), BigDecimal_split(), BigDecimal_to_i(), BigDecimal_to_r(), BigMath_s_exp(), and BigMath_s_log().
Definition at line 6060 of file bigdecimal.c.
References Real::exponent, Real::frac, Real::MaxPrec, Min, Real::Prec, VpAsgn(), VpGetSign, VpHasVal, VpNmlz(), VpSetSign, and VpSetZero.
Referenced by BigDecimal_divremain(), and BigDecimal_frac().
Definition at line 3360 of file bigdecimal.c.
References getchar, NULL, and xfree.
Referenced by BigDecimal_delete(), BigDecimal_initialize(), VpMult(), VpPower(), and VpSqrt().
Definition at line 3541 of file bigdecimal.c.
References Zero().
Definition at line 3557 of file bigdecimal.c.
Referenced by BigDecimal_to_f(), VpGetDoubleNegZero(), VpInit(), and VpVtoD().
Definition at line 3565 of file bigdecimal.c.
References One(), and VpGetDoubleNegInf().
Definition at line 3549 of file bigdecimal.c.
Referenced by BigDecimal_to_f(), VpInit(), and VpVtoD().
Definition at line 3425 of file bigdecimal.c.
References id_BigDecimal_precision_limit, NIL_P(), NUM2SIZET, rb_thread_current(), rb_thread_local_aref(), RMPD_PRECISION_LIMIT_DEFAULT, and rmpd_set_thread_local_precision_limit.
Referenced by BigDecimal_limit(), BigDecimal_save_limit(), VpAlloc(), VpLimitRound(), VpSetPrecLimit(), and VpSetPTR().
Definition at line 3460 of file bigdecimal.c.
References FIX2INT, id_BigDecimal_rounding_mode, NIL_P(), rb_thread_current(), rb_thread_local_aref(), RMPD_ROUNDING_MODE_DEFAULT, and rmpd_set_thread_local_rounding_mode.
Referenced by BigDecimal_add2(), BigDecimal_div2(), BigDecimal_mode(), BigDecimal_mult2(), BigDecimal_power(), BigDecimal_round(), BigDecimal_save_rounding_mode(), BigDecimal_sub2(), VpInternalRound(), VpLimitRound(), and VpSetRoundMode().
Definition at line 3749 of file bigdecimal.c.
References BASE, BASE1, BASE_FIG, DBLE_FIG, HALF_BASE, rmpd_double_figures(), VpAlloc(), VpGetDoubleNaN(), VpGetDoubleNegInf(), VpGetDoubleNegZero(), and VpGetDoublePosInf().
Referenced by Init_bigdecimal().
Definition at line 3476 of file bigdecimal.c.
References VP_ROUND_CEIL, VP_ROUND_DOWN, VP_ROUND_FLOOR, VP_ROUND_HALF_DOWN, VP_ROUND_HALF_EVEN, VP_ROUND_HALF_UP, and VP_ROUND_UP.
Referenced by check_rounding_mode(), and VpSetRoundMode().
Referenced by BigDecimal_add2(), BigDecimal_div2(), BigDecimal_mult2(), BigDecimal_sub2(), and VpLimitRound().
Definition at line 3336 of file bigdecimal.c.
References memset(), p, VP_EXCEPTION_MEMORY, VpException(), and xmalloc.
Definition at line 3350 of file bigdecimal.c.
References p, VP_EXCEPTION_MEMORY, VpException(), and xrealloc.
Referenced by BigDecimal_power().
Definition at line 4493 of file bigdecimal.c.
References a, AddExponent(), b, BASE, BASE_FIG, BDIGIT, BDIGIT_DBL, c, Real::exponent, Real::frac, i, Real::MaxPrec, memset(), NULL, Real::Prec, s, VpAlloc(), VpAsgn(), VpFree(), VpGetSign, VpIsDefOP(), VpIsOne, VpIsZero, VpLimitRound(), VpNmlz(), VpSetSign, and VpSetZero.
Referenced by BigDecimal_divremain(), BigDecimal_DoDivmod(), BigDecimal_mult(), VpPower(), and VpSqrt().
Definition at line 564 of file bigdecimal.c.
References Real::obj, TypedData_Wrap_Struct, and VpAlloc().
Referenced by BigDecimal_load(), and BigDecimal_s_allocate().
Definition at line 3705 of file bigdecimal.c.
References BASE_FIG, ex, Real::exponent, NULL, Real::Prec, SIGNED_VALUE, and VpIsDef.
Referenced by BigDecimal_dump(), BigDecimal_inspect(), BigDecimal_split(), BigDecimal_to_f(), and BigDecimal_to_s().
Definition at line 3780 of file bigdecimal.c.
References VpConstOne.
Referenced by BigDecimal_DoDivmod().
VP_EXPORT int VpPower | ( | Real * | y, |
Real * | x, | ||
SIGNED_VALUE | n | ||
) |
Definition at line 6108 of file bigdecimal.c.
References BASE_FIG, Real::exponent, Real::frac, Real::MaxPrec, n, NULL, Real::Prec, s, SIGNED_VALUE, VpAlloc(), VpAsgn(), VpDivd(), VpFree(), VpGetSign, VpIsInf, VpIsNaN, VpIsPosInf, VpIsZero, VpMult(), VpSetInf, VpSetNaN, VpSetOne, VpSetSign, and VpSetZero.
Referenced by BigDecimal_power().
VP_EXPORT size_t VpSetPrecLimit | ( | size_t | n | ) |
Definition at line 3441 of file bigdecimal.c.
References rmpd_set_thread_local_precision_limit, s, and VpGetPrecLimit().
Referenced by BigDecimal_add2(), BigDecimal_ceil(), BigDecimal_div2(), BigDecimal_floor(), BigDecimal_limit(), BigDecimal_mult2(), BigDecimal_round(), BigDecimal_save_limit(), BigDecimal_sub2(), and BigDecimal_truncate().
VP_EXPORT unsigned short VpSetRoundMode | ( | unsigned short | n | ) |
Definition at line 3494 of file bigdecimal.c.
References n, rmpd_set_thread_local_rounding_mode, VpGetRoundMode(), and VpIsRoundMode().
Referenced by BigDecimal_mode(), and BigDecimal_save_rounding_mode().
Definition at line 5675 of file bigdecimal.c.
References BASE, BASE_FIG, DBLE_FIG, e, Real::exponent, f, if(), maxnr, Real::MaxPrec, Min, n, NULL, PRIdSIZE, SIGNED_VALUE, val, VP_EXCEPTION_OP, VpAddSub(), VpAlloc(), VpAsgn(), VpChangeSign, VpDivd(), VpDtoV(), VpException(), VpFree(), VpGetSign, VpHasVal, VpIsOne, VpIsZero, VpMult(), VpSetNaN, VpSetOne, and VpVtoD().
Referenced by BigDecimal_sqrt().
Definition at line 5123 of file bigdecimal.c.
References BASE1, BDIGIT_DBL, e, Real::frac, i, m, n, nn, Real::Prec, sprintf(), strlen(), SZ_INF, SZ_NaN, SZ_NINF, VpGetSign, VpIsNaN, VpIsNegInf, VpIsPosInf, VpIsPosZero, and VpIsZero.
Referenced by BigDecimal_split().
Referenced by BigDecimal_to_s().
Referenced by BigDecimal_dump(), BigDecimal_inspect(), BigDecimal_to_f(), and BigDecimal_to_s().
VP_EXPORT int VpVtoD | ( | double * | d, |
SIGNED_VALUE * | e, | ||
Real * | m | ||
) |
Definition at line 5479 of file bigdecimal.c.
References BASE, BASE_FIG, DBLE_FIG, div, Real::exponent, f, Real::frac, Min, Real::Prec, SIGNED_VALUE, VpGetDoubleNaN(), VpGetDoubleNegInf(), VpGetDoubleNegZero(), VpGetDoublePosInf(), VpGetSign, VpIsNaN, VpIsNegInf, VpIsNegZero, VpIsPosInf, and VpIsPosZero.
Referenced by BigDecimal_to_f(), and VpSqrt().
VALUE rb_cBigDecimal |
Definition at line 44 of file bigdecimal.c.
Referenced by BigDecimal_global_new(), Init_bigdecimal(), and VpCreateRbObject().