|
Ruby
2.1.5p273(2014-11-13revision48405)
|
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 47 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 48 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 49 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 160 of file bigdecimal.h.
Definition at line 269 of file bigdecimal.h.
Referenced by VpAlloc(), and VpSetPTR().
Definition at line 270 of file bigdecimal.h.
Referenced by VpAddSub(), VpDivd(), VpFrac(), VpSqrt(), and VpVtoD().
| #define RMPD_BASE ((BDIGIT)10000U) |
Definition at line 102 of file bigdecimal.h.
Referenced by rmpd_base_value().
| #define RMPD_COMPONENT_FIGURES 4 |
Definition at line 101 of file bigdecimal.h.
Referenced by rmpd_component_figures().
| #define RMPD_EXCEPTION_MODE_DEFAULT 0U |
Definition at line 135 of file bigdecimal.h.
Referenced by VpGetException().
| #define RMPD_ROUNDING_MODE_DEFAULT VP_ROUND_HALF_UP |
Definition at line 147 of file bigdecimal.h.
Referenced by VpGetRoundMode().
| #define SIZEOF_BDIGITS 2 |
Definition at line 50 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 113 of file bigdecimal.h.
Referenced by VpAlloc(), and VpSzMantissa().
| #define SZ_NaN "NaN" |
Definition at line 112 of file bigdecimal.h.
Referenced by VpAlloc(), and VpSzMantissa().
| #define SZ_NINF "-Infinity" |
Definition at line 115 of file bigdecimal.h.
Referenced by VpAlloc(), and VpSzMantissa().
| #define SZ_PINF "+Infinity" |
Definition at line 114 of file bigdecimal.h.
Referenced by VpAlloc().
| #define vabs abs |
Definition at line 82 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 124 of file bigdecimal.h.
Referenced by BigDecimal_mode(), and Init_bigdecimal().
| #define VP_EXCEPTION_INFINITY ((unsigned short)0x0001) |
Definition at line 125 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 133 of file bigdecimal.h.
Referenced by VpException(), VpMemAlloc(), and VpMemRealloc().
| #define VP_EXCEPTION_NaN ((unsigned short)0x0002) |
Definition at line 126 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 132 of file bigdecimal.h.
Referenced by VpException(), and VpSqrt().
| #define VP_EXCEPTION_OVERFLOW ((unsigned short)0x0001) /* 0x0008) */ |
Definition at line 128 of file bigdecimal.h.
Referenced by AddExponent(), BigDecimal_to_f(), and Init_bigdecimal().
| #define VP_EXCEPTION_UNDERFLOW ((unsigned short)0x0004) |
Definition at line 127 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 129 of file bigdecimal.h.
Referenced by BigDecimal_mode(), Init_bigdecimal(), VpDivd(), and VpException().
| #define VP_EXPORT static |
Definition at line 121 of file bigdecimal.h.
| #define VP_ROUND_CEIL 5 |
Definition at line 143 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 140 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 144 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 142 of file bigdecimal.h.
Referenced by check_rounding_mode(), Init_bigdecimal(), switch(), VpInternalRound(), and VpIsRoundMode().
| #define VP_ROUND_HALF_EVEN 7 |
Definition at line 145 of file bigdecimal.h.
Referenced by check_rounding_mode(), Init_bigdecimal(), switch(), VpInternalRound(), and VpIsRoundMode().
| #define VP_ROUND_HALF_UP 3 |
Definition at line 141 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 138 of file bigdecimal.h.
Referenced by BigDecimal_mode(), and Init_bigdecimal().
| #define VP_ROUND_UP 1 |
Definition at line 139 of file bigdecimal.h.
Referenced by check_rounding_mode(), Init_bigdecimal(), switch(), VpInternalRound(), and VpIsRoundMode().
| #define VP_SIGN_NaN 0 /* NaN */ |
Definition at line 149 of file bigdecimal.h.
Referenced by Init_bigdecimal().
| #define VP_SIGN_NEGATIVE_FINITE -2 /* Negative finite number */ |
Definition at line 153 of file bigdecimal.h.
Referenced by Init_bigdecimal().
| #define VP_SIGN_NEGATIVE_INFINITE -3 /* Negative infinite number */ |
Definition at line 155 of file bigdecimal.h.
Referenced by Init_bigdecimal().
| #define VP_SIGN_NEGATIVE_ZERO -1 /* Negative zero */ |
Definition at line 151 of file bigdecimal.h.
Referenced by Init_bigdecimal().
| #define VP_SIGN_POSITIVE_FINITE 2 /* Positive finite number */ |
Definition at line 152 of file bigdecimal.h.
Referenced by Init_bigdecimal().
| #define VP_SIGN_POSITIVE_INFINITE 3 /* Positive infinite number */ |
Definition at line 154 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 150 of file bigdecimal.h.
Referenced by Init_bigdecimal().
| #define VpBaseFig | ( | ) | rmpd_component_figures() |
Definition at line 208 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 210 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 281 of file bigdecimal.h.
Referenced by BigDecimal_abs(), and VpSqrt().
| #define VpDblFig | ( | ) | rmpd_double_figures() |
Definition at line 209 of file bigdecimal.h.
Referenced by BigDecimal_double_fig(), and BigDecimal_sqrt().
Definition at line 310 of file bigdecimal.h.
Definition at line 274 of file bigdecimal.h.
Definition at line 279 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 308 of file bigdecimal.h.
Referenced by VpExponent10(), VpFrac(), and VpSqrt().
Definition at line 304 of file bigdecimal.h.
Referenced by BigDecimal_power(), GetAddSubPrec(), VpComp(), VpNmlz(), and VpNumOfChars().
| #define VpIsInf | ( | a | ) | (VpIsPosInf(a) || VpIsNegInf(a)) |
Definition at line 303 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 297 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 302 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 290 of file bigdecimal.h.
Referenced by VpVtoD().
Definition at line 309 of file bigdecimal.h.
| #define VpIsPosInf | ( | a | ) | ((a)->sign==VP_SIGN_POSITIVE_INFINITE) |
Definition at line 301 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 289 of file bigdecimal.h.
Referenced by VpSzMantissa(), and VpVtoD().
| #define VpIsZero | ( | a | ) | (VpIsPosZero(a) || VpIsNegZero(a)) |
Definition at line 291 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 272 of file bigdecimal.h.
Referenced by BigDecimal_dump(), and BigDecimal_inspect().
Definition at line 273 of file bigdecimal.h.
Referenced by BigDecimal_inspect().
| #define VpSetInf | ( | a, | |
| s | |||
| ) | ( ((s)>0)?VpSetPosInf(a):VpSetNegInf(a) ) |
Definition at line 307 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 298 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 306 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 293 of file bigdecimal.h.
Definition at line 286 of file bigdecimal.h.
| #define VpSetPosInf | ( | a | ) | ((a)->frac[0]=0,(a)->Prec=1,(a)->sign=VP_SIGN_POSITIVE_INFINITE) |
Definition at line 305 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 292 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 283 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 294 of file bigdecimal.h.
Referenced by AddExponent(), if(), VpAddSub(), VpAlloc(), VpAsgn(), VpCtoV(), VpDivd(), VpDtoV(), VpFrac(), VpIsDefOP(), VpMult(), VpNmlz(), and VpPower().
|
inlinestatic |
Definition at line 62 of file bigdecimal.h.
Referenced by ossl_bn_initialize().
|
inlinestatic |
Definition at line 71 of file bigdecimal.h.
Definition at line 202 of file bigdecimal.h.
References RMPD_BASE.
|
inlinestatic |
Definition at line 204 of file bigdecimal.h.
References RMPD_COMPONENT_FIGURES.
|
inlinestatic |
Definition at line 206 of file bigdecimal.h.
References DBL_DIG.
Referenced by BigMath_s_exp(), BigMath_s_log(), and VpInit().
Definition at line 4045 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 3844 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 4001 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 4882 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 579 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 5326 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 4629 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 5550 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 3589 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 5113 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 6067 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 3367 of file bigdecimal.c.
References getchar, NULL, and xfree.
Referenced by BigDecimal_delete(), BigDecimal_initialize(), VpMult(), VpPower(), and VpSqrt().
Definition at line 3548 of file bigdecimal.c.
References Zero().
Definition at line 3564 of file bigdecimal.c.
Referenced by BigDecimal_to_f(), VpGetDoubleNegZero(), VpInit(), and VpVtoD().
Definition at line 3572 of file bigdecimal.c.
References One(), and VpGetDoubleNegInf().
Definition at line 3556 of file bigdecimal.c.
Referenced by BigDecimal_to_f(), VpInit(), and VpVtoD().
Definition at line 3432 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 3467 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 3756 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 3483 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 3343 of file bigdecimal.c.
References memset(), p, VP_EXCEPTION_MEMORY, VpException(), and xmalloc.
Definition at line 3357 of file bigdecimal.c.
References p, VP_EXCEPTION_MEMORY, VpException(), and xrealloc.
Referenced by BigDecimal_power().
Definition at line 4500 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 571 of file bigdecimal.c.
References Real::obj, TypedData_Wrap_Struct, and VpAlloc().
Referenced by BigDecimal_load(), and BigDecimal_s_allocate().
Definition at line 3712 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 3787 of file bigdecimal.c.
References VpConstOne.
Referenced by BigDecimal_DoDivmod().
| VP_EXPORT int VpPower | ( | Real * | y, |
| Real * | x, | ||
| SIGNED_VALUE | n | ||
| ) |
Definition at line 6115 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 3448 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 3501 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 5682 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 5130 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 5486 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 51 of file bigdecimal.c.
Referenced by BigDecimal_global_new(), Init_bigdecimal(), and VpCreateRbObject().
1.8.5