|
Ruby
1.9.3p537(2014-02-19revision0)
|
#include "bigdecimal.h"#include <assert.h>#include <ctype.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>#include <math.h>Go to the source code of this file.
Definition at line 69 of file bigdecimal.c.
Referenced by VpAddAbs(), VpDivd(), VpDtoV(), VpInit(), VpMidRound(), VpMult(), VpRdup(), VpSqrt(), VpSubAbs(), VpToFString(), and VpVtoD().
Definition at line 72 of file bigdecimal.c.
Referenced by VpExponent10(), VpInit(), VpInternalRound(), VpSzMantissa(), VpToFString(), and VpToString().
| #define BASE_FIG RMPD_COMPONENT_FIGURES |
Definition at line 68 of file bigdecimal.c.
Referenced by AddExponent(), BigDecimal_to_f(), VpAddSub(), VpAlloc(), VpAsgn(), VpCtoV(), VpDivd(), VpExponent10(), VpInit(), VpLeftRound(), VpLimitRound(), VpMidRound(), VpMult(), VpNumOfChars(), VpPower(), VpSqrt(), VpToFString(), VpToString(), and VpVtoD().
| #define BigMath_exp | ( | x, | |
| n | |||
| ) | BigMath_s_exp(rb_mBigMath, (x), (n)) |
Definition at line 1967 of file bigdecimal.c.
Referenced by rmpd_power_by_big_decimal().
| #define BigMath_log | ( | x, | |
| n | |||
| ) | BigMath_s_log(rb_mBigMath, (x), (n)) |
Definition at line 1968 of file bigdecimal.c.
Referenced by rmpd_power_by_big_decimal().
Definition at line 75 of file bigdecimal.c.
| #define DoSomeOne | ( | x, | |
| y, | |||
| f | |||
| ) | rb_num_coerce_bin(x,y,f) |
Definition at line 117 of file bigdecimal.c.
Referenced by BigDecimal_add(), BigDecimal_div2(), BigDecimal_divide(), BigDecimal_divmod(), BigDecimal_divremain(), BigDecimal_mod(), BigDecimal_mult(), and BigDecimal_sub().
Definition at line 63 of file bigdecimal.c.
Referenced by BigDecimal_abs(), BigDecimal_add(), BigDecimal_add2(), BigDecimal_ceil(), BigDecimal_coerce(), BigDecimal_div(), BigDecimal_div2(), BigDecimal_divide(), BigDecimal_divmod(), BigDecimal_divremain(), BigDecimal_DoDivmod(), BigDecimal_dump(), BigDecimal_fix(), BigDecimal_floor(), BigDecimal_frac(), BigDecimal_hash(), BigDecimal_inspect(), BigDecimal_load(), BigDecimal_mod(), BigDecimal_mult(), BigDecimal_mult2(), BigDecimal_neg(), BigDecimal_new(), BigDecimal_power(), BigDecimal_prec(), BigDecimal_round(), BigDecimal_split(), BigDecimal_sqrt(), BigDecimal_sub(), BigDecimal_sub2(), BigDecimal_to_f(), BigDecimal_to_i(), BigDecimal_to_s(), BigDecimal_truncate(), and BigDecimalCmp().
Definition at line 66 of file bigdecimal.c.
Referenced by BigDecimal_abs(), BigDecimal_add(), BigDecimal_add2(), BigDecimal_ceil(), BigDecimal_coerce(), BigDecimal_div2(), BigDecimal_divide(), BigDecimal_divremain(), BigDecimal_DoDivmod(), BigDecimal_dump(), BigDecimal_fix(), BigDecimal_floor(), BigDecimal_frac(), BigDecimal_hash(), BigDecimal_inspect(), BigDecimal_load(), BigDecimal_mult(), BigDecimal_mult2(), BigDecimal_neg(), BigDecimal_new(), BigDecimal_power(), BigDecimal_prec(), BigDecimal_round(), BigDecimal_split(), BigDecimal_sqrt(), BigDecimal_sub(), BigDecimal_sub2(), BigDecimal_to_f(), BigDecimal_to_i(), BigDecimal_to_s(), BigDecimal_truncate(), and BigDecimalCmp().
Definition at line 71 of file bigdecimal.c.
Referenced by VpInit().
| #define is_positive | ( | x | ) | (!is_negative(x)) |
Definition at line 1991 of file bigdecimal.c.
Referenced by BigDecimal_power().
| #define maxnr 100UL /* Maximum iterations for calcurating sqrt. */ |
Definition at line 3115 of file bigdecimal.c.
Referenced by VpSqrt().
Definition at line 3119 of file bigdecimal.c.
| #define NDEBUG |
Definition at line 23 of file bigdecimal.c.
| #define PRIsVALUE "s" |
Definition at line 109 of file bigdecimal.c.
Referenced by BigDecimal_new(), ossl_asn1_default_tag(), ossl_cipher_init(), and ossl_x509_inspect().
Definition at line 64 of file bigdecimal.c.
| #define RB_OBJ_CLASSNAME | ( | obj | ) | rb_obj_classname(obj) |
Definition at line 110 of file bigdecimal.c.
Referenced by BigDecimal_new(), ossl_asn1_default_tag(), and ossl_x509_inspect().
| #define RB_OBJ_STRING | ( | obj | ) | StringValueCStr(obj) |
Definition at line 111 of file bigdecimal.c.
Referenced by ossl_cipher_init(), and ossl_x509_inspect().
| #define RBIGNUM_ZERO_P | ( | x | ) |
(RBIGNUM_LEN(x) == 0 || \ (RBIGNUM_DIGITS(x)[0] == 0 && \ (RBIGNUM_LEN(x) == 1 || bigzero_p(x))))
Definition at line 79 of file bigdecimal.c.
Referenced by BigMath_s_log().
| #define RMPD_PRECISION_LIMIT_DEFAULT ((size_t)0) |
Definition at line 3211 of file bigdecimal.c.
Referenced by VpGetPrecLimit().
| #define rmpd_set_thread_local_exception_mode | ( | mode | ) |
rb_thread_local_aset( \ rb_thread_current(), \ id_BigDecimal_exception_mode, \ INT2FIX((int)(mode)) \ )
Definition at line 3172 of file bigdecimal.c.
Referenced by VpGetException(), and VpSetException().
| #define rmpd_set_thread_local_precision_limit | ( | limit | ) |
rb_thread_local_aset( \ rb_thread_current(), \ id_BigDecimal_precision_limit, \ SIZET2NUM(limit) \ )
Definition at line 3205 of file bigdecimal.c.
Referenced by VpGetPrecLimit(), and VpSetPrecLimit().
| #define rmpd_set_thread_local_rounding_mode | ( | mode | ) |
rb_thread_local_aset( \ rb_thread_current(), \ id_BigDecimal_rounding_mode, \ INT2FIX((int)(mode)) \ )
Definition at line 3242 of file bigdecimal.c.
Referenced by VpGetRoundMode(), and VpSetRoundMode().
| #define RRATIONAL_NEGATIVE_P | ( | x | ) | RTEST(rb_funcall((x), '<', 1, INT2FIX(0))) |
Definition at line 102 of file bigdecimal.c.
Referenced by BigMath_s_log().
| #define RRATIONAL_ZERO_P | ( | x | ) |
Definition at line 97 of file bigdecimal.c.
Referenced by BigMath_s_log().
Definition at line 65 of file bigdecimal.c.
Referenced by BigDecimal_add(), BigDecimal_div(), BigDecimal_divide(), BigDecimal_divmod(), BigDecimal_divremain(), BigDecimal_DoDivmod(), BigDecimal_mod(), BigDecimal_mult(), BigDecimal_sub(), and BigDecimalCmp().
| #define StrCmp | ( | x, | |
| y | |||
| ) | strcmp(x,y) |
Definition at line 3120 of file bigdecimal.c.
Referenced by VpAlloc().
| static int AddExponent | ( | Real * | a, |
| SIGNED_VALUE | n | ||
| ) | [static] |
Definition at line 3591 of file bigdecimal.c.
References BASE_FIG, Real::exponent, SIGNED_VALUE, VP_EXCEPTION_OVERFLOW, VP_EXCEPTION_UNDERFLOW, VpException(), VpGetSign, VpSetInf, and VpSetZero.
Referenced by VpDivd(), VpMult(), VpNmlz(), VpRdup(), and VpSetPTR().
| static VALUE BigDecimal_abs | ( | VALUE | self | ) | [static] |
Definition at line 1493 of file bigdecimal.c.
References ENTER, GetVpValue(), GUARD_OBJ, Real::Prec, ToValue(), VpAsgn(), VpBaseFig, VpChangeSign, and VpCreateRbObject().
Referenced by BigDecimal_power(), and Init_bigdecimal().
| static VALUE BigDecimal_add | ( | VALUE | self, |
| VALUE | r | ||
| ) | [static] |
Definition at line 815 of file bigdecimal.c.
References DBL_DIG, DoSomeOne, ENTER, GetAddSubPrec(), GetVpValue(), GetVpValueWithPrec(), GUARD_OBJ, Real::obj, Real::Prec, RB_TYPE_P, SAVE, T_FLOAT, T_RATIONAL, ToValue(), VpAddSub(), VpBaseFig, VpCreateRbObject(), VpGetSign, VpIsNaN, and VpSetInf.
Referenced by BigDecimal_add2(), BigMath_s_exp(), BigMath_s_log(), and Init_bigdecimal().
| static VALUE BigDecimal_add2 | ( | VALUE | self, |
| VALUE | b, | ||
| VALUE | n | ||
| ) | [static] |
Definition at line 1436 of file bigdecimal.c.
References BigDecimal_add(), cv, ENTER, GetPositiveInt(), GetVpValue(), GUARD_OBJ, SIGNED_VALUE, ToValue(), VpGetRoundMode(), VpLeftRound(), and VpSetPrecLimit().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_ceil | ( | int | argc, |
| VALUE * | argv, | ||
| VALUE | self | ||
| ) | [static] |
Definition at line 1739 of file bigdecimal.c.
References BigDecimal_to_i(), Check_Type, ENTER, FIX2INT, GetVpValue(), GUARD_OBJ, Real::Prec, rb_scan_args(), T_FIXNUM, ToValue(), VP_ROUND_CEIL, VpActiveRound(), VpBaseFig, VpCreateRbObject(), and VpSetPrecLimit().
Referenced by Init_bigdecimal().
| static void BigDecimal_check_num | ( | Real * | p | ) | [static] |
Definition at line 620 of file bigdecimal.c.
References VP_EXCEPTION_INFINITY, VP_EXCEPTION_NaN, VpException(), VpIsNaN, VpIsNegInf, and VpIsPosInf.
Referenced by BigDecimal_to_i(), and BigDecimal_to_r().
| static VALUE BigDecimal_coerce | ( | VALUE | self, |
| VALUE | other | ||
| ) | [static] |
Definition at line 774 of file bigdecimal.c.
References BigDecimal_to_f(), DATA_PTR, ENTER, GetVpValue(), GetVpValueWithPrec(), GUARD_OBJ, Real::obj, Real::Prec, rb_assoc_new(), RB_TYPE_P, T_FLOAT, T_RATIONAL, and VpBaseFig.
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_comp | ( | VALUE | self, |
| VALUE | r | ||
| ) | [static] |
Definition at line 1017 of file bigdecimal.c.
References BigDecimalCmp().
Referenced by Init_bigdecimal().
| static void BigDecimal_delete | ( | void * | pv | ) | [static] |
Definition at line 150 of file bigdecimal.c.
References VpFree().
| static VALUE BigDecimal_div | ( | VALUE | self, |
| VALUE | r | ||
| ) | [static] |
Definition at line 1185 of file bigdecimal.c.
References BDIGIT, BDIGIT_DBL, BigDecimal_divide(), div, ENTER, Real::frac, NULL, Real::Prec, SAVE, ToValue(), VpBaseVal, VpHasVal, and VpInternalRound().
Referenced by BigDecimal_div2(), and Init_bigdecimal().
| static VALUE BigDecimal_div2 | ( | int | argc, |
| VALUE * | argv, | ||
| VALUE | self | ||
| ) | [static] |
Definition at line 1400 of file bigdecimal.c.
References BigDecimal_div(), BigDecimal_DoDivmod(), BigDecimal_to_i(), cv, div, DoSomeOne, ENTER, GetPositiveInt(), GetVpValue(), GUARD_OBJ, mod, NULL, Real::Prec, rb_intern, rb_scan_args(), SIGNED_VALUE, ToValue(), VpBaseFig, VpCreateRbObject(), VpDivd(), VpGetRoundMode(), VpLeftRound(), and VpSetPrecLimit().
Referenced by BigMath_s_exp(), BigMath_s_log(), GetVpValueWithPrec(), and Init_bigdecimal().
| static VALUE BigDecimal_divide | ( | Real ** | c, |
| Real ** | res, | ||
| Real ** | div, | ||
| VALUE | self, | ||
| VALUE | r | ||
| ) | [static] |
Definition at line 1136 of file bigdecimal.c.
References DBL_DIG, DoSomeOne, ENTER, Real::exponent, GetVpValue(), GetVpValueWithPrec(), GUARD_OBJ, Real::Prec, RB_TYPE_P, SAVE, T_FLOAT, T_RATIONAL, vabs, VpBaseFig, VpCreateRbObject(), and VpDivd().
Referenced by BigDecimal_div().
| static VALUE BigDecimal_divmod | ( | VALUE | self, |
| VALUE | r | ||
| ) | [static] |
Definition at line 1387 of file bigdecimal.c.
References BigDecimal_DoDivmod(), div, DoSomeOne, ENTER, mod, NULL, rb_assoc_new(), rb_intern, SAVE, and ToValue().
Referenced by Init_bigdecimal().
Definition at line 1308 of file bigdecimal.c.
References DBL_DIG, DoSomeOne, ENTER, GetVpValue(), GetVpValueWithPrec(), GUARD_OBJ, Real::MaxPrec, NULL, Real::Prec, rb_intern, RB_TYPE_P, SAVE, T_FLOAT, T_RATIONAL, VP_ROUND_DOWN, VpActiveRound(), VpAddSub(), VpBaseFig, VpCreateRbObject(), VpDivd(), VpFrac(), and VpMult().
Referenced by BigDecimal_remainder().
Definition at line 1209 of file bigdecimal.c.
References DBL_DIG, ENTER, Real::exponent, GetAddSubPrec(), GetVpValue(), GetVpValueWithPrec(), GUARD_OBJ, NULL, Real::Prec, Qfalse, Qtrue, rb_eZeroDivError, rb_raise(), RB_TYPE_P, SAVE, SIGNED_VALUE, T_FLOAT, T_RATIONAL, vabs, VP_ROUND_DOWN, VpActiveRound(), VpAddSub(), VpBaseFig, VpCreateRbObject(), VpDivd(), VpGetSign, VpIsInf, VpIsNaN, VpIsZero, VpMult(), VpOne(), and VpSetInf.
Referenced by BigDecimal_div2(), BigDecimal_divmod(), and BigDecimal_mod().
| static VALUE BigDecimal_double_fig | ( | VALUE | self | ) | [static] |
Definition at line 298 of file bigdecimal.c.
References INT2FIX, and VpDblFig.
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_dump | ( | int | argc, |
| VALUE * | argv, | ||
| VALUE | self | ||
| ) | [static] |
Definition at line 343 of file bigdecimal.c.
References ENTER, GetVpValue(), GUARD_OBJ, PRIuSIZE, rb_scan_args(), rb_str_new(), rb_str_resize(), RSTRING_PTR, strlen(), VpBaseFig, VpMaxPrec, VpNumOfChars(), and VpToString().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_eq | ( | VALUE | self, |
| VALUE | r | ||
| ) | [static] |
Definition at line 1033 of file bigdecimal.c.
References BigDecimalCmp().
Referenced by BigDecimal_power(), and Init_bigdecimal().
| static VALUE BigDecimal_exponent | ( | VALUE | self | ) | [static] |
Definition at line 1924 of file bigdecimal.c.
References GetVpValue(), INT2NUM(), and VpExponent10().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_fix | ( | VALUE | self | ) | [static] |
Definition at line 1534 of file bigdecimal.c.
References ENTER, GetVpValue(), GUARD_OBJ, Real::Prec, ToValue(), VP_ROUND_DOWN, VpActiveRound(), VpBaseFig, and VpCreateRbObject().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_floor | ( | int | argc, |
| VALUE * | argv, | ||
| VALUE | self | ||
| ) | [static] |
Definition at line 1690 of file bigdecimal.c.
References BigDecimal_to_i(), Check_Type, ENTER, FIX2INT, GetVpValue(), GUARD_OBJ, Real::Prec, rb_scan_args(), T_FIXNUM, ToValue(), VP_ROUND_FLOOR, VpActiveRound(), VpBaseFig, VpCreateRbObject(), and VpSetPrecLimit().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_frac | ( | VALUE | self | ) | [static] |
Definition at line 1657 of file bigdecimal.c.
References ENTER, GetVpValue(), GUARD_OBJ, Real::Prec, ToValue(), VpBaseFig, VpCreateRbObject(), and VpFrac().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_ge | ( | VALUE | self, |
| VALUE | r | ||
| ) | [static] |
Definition at line 1081 of file bigdecimal.c.
References BigDecimalCmp().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_global_new | ( | int | argc, |
| VALUE * | argv, | ||
| VALUE | self | ||
| ) | [static] |
Definition at line 2385 of file bigdecimal.c.
References BigDecimal_new(), and rb_cBigDecimal.
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_gt | ( | VALUE | self, |
| VALUE | r | ||
| ) | [static] |
Definition at line 1069 of file bigdecimal.c.
References BigDecimalCmp().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_hash | ( | VALUE | self | ) | [static] |
Definition at line 326 of file bigdecimal.c.
References BDIGIT, ENTER, Real::exponent, Real::frac, GetVpValue(), GUARD_OBJ, hash(), INT2FIX, Real::Prec, rb_memhash(), and Real::sign.
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_inspect | ( | VALUE | self | ) | [static] |
Definition at line 1941 of file bigdecimal.c.
References ENTER, GetVpValue(), GUARD_OBJ, PRIuSIZE, PRIxVALUE, rb_str_new(), rb_str_resize(), RSTRING_PTR, strlen(), VpBaseFig, VpMaxPrec, VpNumOfChars(), VpPrec, and VpToString().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_IsFinite | ( | VALUE | self | ) | [static] |
Definition at line 611 of file bigdecimal.c.
References GetVpValue(), Qfalse, Qtrue, VpIsInf, and VpIsNaN.
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_IsInfinite | ( | VALUE | self | ) | [static] |
Definition at line 601 of file bigdecimal.c.
References GetVpValue(), INT2FIX, Qnil, VpIsNegInf, and VpIsPosInf.
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_IsNaN | ( | VALUE | self | ) | [static] |
Definition at line 590 of file bigdecimal.c.
References GetVpValue(), Qfalse, Qtrue, and VpIsNaN.
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_le | ( | VALUE | self, |
| VALUE | r | ||
| ) | [static] |
Definition at line 1057 of file bigdecimal.c.
References BigDecimalCmp().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_limit | ( | int | argc, |
| VALUE * | argv, | ||
| VALUE | self | ||
| ) | [static] |
Definition at line 2403 of file bigdecimal.c.
References Check_Type, FIX2INT, INT2NUM(), Qnil, rb_eArgError, rb_raise(), rb_scan_args(), T_FIXNUM, VpGetPrecLimit(), and VpSetPrecLimit().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_load | ( | VALUE | self, |
| VALUE | str | ||
| ) | [static] |
Definition at line 365 of file bigdecimal.c.
References ENTER, GUARD_OBJ, ISDIGIT, long, Real::MaxPrec, rb_eTypeError, rb_raise(), RSTRING_PTR, SafeStringValue, ToValue(), VpBaseFig, and VpNewRbClass().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_lt | ( | VALUE | self, |
| VALUE | r | ||
| ) | [static] |
Definition at line 1045 of file bigdecimal.c.
References BigDecimalCmp().
Referenced by Init_bigdecimal().
| static size_t BigDecimal_memsize | ( | const void * | ptr | ) | [static] |
Definition at line 156 of file bigdecimal.c.
References BDIGIT, and Real::MaxPrec.
| static VALUE BigDecimal_mod | ( | VALUE | self, |
| VALUE | r | ||
| ) | [static] |
Definition at line 1295 of file bigdecimal.c.
References BigDecimal_DoDivmod(), div, DoSomeOne, ENTER, mod, NULL, SAVE, and ToValue().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_mode | ( | int | argc, |
| VALUE * | argv, | ||
| VALUE | self | ||
| ) | [static] |
Definition at line 464 of file bigdecimal.c.
References check_rounding_mode(), Check_Type, FIX2INT, INT2FIX, long, NIL_P, Qfalse, Qnil, Qtrue, rb_eArgError, rb_eTypeError, rb_raise(), rb_scan_args(), T_FIXNUM, VP_EXCEPTION_ALL, VP_EXCEPTION_INFINITY, VP_EXCEPTION_NaN, VP_EXCEPTION_UNDERFLOW, VP_EXCEPTION_ZERODIVIDE, VP_ROUND_MODE, VpGetException(), VpGetRoundMode(), VpSetException(), and VpSetRoundMode().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_mult | ( | VALUE | self, |
| VALUE | r | ||
| ) | [static] |
Definition at line 1109 of file bigdecimal.c.
References DBL_DIG, DoSomeOne, ENTER, GetVpValue(), GetVpValueWithPrec(), GUARD_OBJ, Real::Prec, RB_TYPE_P, SAVE, T_FLOAT, T_RATIONAL, ToValue(), VpBaseFig, VpCreateRbObject(), and VpMult().
Referenced by BigDecimal_mult2(), BigMath_s_exp(), BigMath_s_log(), and Init_bigdecimal().
| static VALUE BigDecimal_mult2 | ( | VALUE | self, |
| VALUE | b, | ||
| VALUE | n | ||
| ) | [static] |
Definition at line 1470 of file bigdecimal.c.
References BigDecimal_mult(), cv, ENTER, GetPositiveInt(), GetVpValue(), GUARD_OBJ, SIGNED_VALUE, ToValue(), VpGetRoundMode(), VpLeftRound(), and VpSetPrecLimit().
Referenced by BigMath_s_exp(), BigMath_s_log(), Init_bigdecimal(), and rmpd_power_by_big_decimal().
| static VALUE BigDecimal_neg | ( | VALUE | self | ) | [static] |
Definition at line 1087 of file bigdecimal.c.
References ENTER, GetVpValue(), GUARD_OBJ, Real::Prec, ToValue(), VpAsgn(), VpBaseFig, and VpCreateRbObject().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_new | ( | int | argc, |
| VALUE * | argv, | ||
| VALUE | self | ||
| ) | [static] |
Definition at line 2332 of file bigdecimal.c.
References DATA_PTR, DBL_DIG, ENTER, GetPositiveInt(), GetVpValue(), GetVpValueWithPrec(), GUARD_OBJ, is_kind_of_BigDecimal(), NIL_P, PRIsVALUE, rb_eArgError, RB_OBJ_CLASSNAME, rb_raise(), rb_scan_args(), RSTRING_PTR, SafeStringValue, T_BIGNUM, T_DATA, T_FIXNUM, T_FLOAT, T_RATIONAL, T_STRING, ToValue(), TYPE, VpDup(), and VpNewRbClass().
Referenced by BigDecimal_global_new(), and Init_bigdecimal().
| static VALUE BigDecimal_nonzero | ( | VALUE | self | ) | [static] |
Definition at line 1007 of file bigdecimal.c.
References GetVpValue(), Qnil, and VpIsZero.
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_power | ( | int | argc, |
| VALUE * | argv, | ||
| VALUE | self | ||
| ) | [static] |
Definition at line 2083 of file bigdecimal.c.
References BigDecimal_abs(), BigDecimal_eq(), BigDecimal_round(), BigDecimal_to_i(), DATA_PTR, DBL_DIG, ENTER, FIX2INT, GetVpValue(), GetVpValueWithPrec(), GUARD_OBJ, INT2FIX, is_even(), is_integer(), is_kind_of_BigDecimal(), is_negative(), is_one(), is_positive, is_zero(), NIL_P, NULL, NUM2SSIZET, Real::obj, Real::Prec, rb_eMathDomainError, rb_eTypeError, rb_funcall(), RB_GC_GUARD, rb_obj_classname(), rb_raise(), rb_scan_args(), RB_TYPE_P, RFLOAT_VALUE, rmpd_power_by_big_decimal(), round(), RRATIONAL, RTEST, SIGNED_VALUE, T_BIGNUM, T_DATA, T_FIXNUM, T_FLOAT, T_RATIONAL, ToValue(), TYPE, VpBaseFig, VpCreateRbObject(), VpGetSign, VpIsDef, VpIsInf, VpIsNaN, VpIsZero, VpPower(), VpSetInf, VpSetNaN, VpSetNegInf, VpSetPosInf, and zero().
Referenced by BigDecimal_power_op(), and Init_bigdecimal().
| static VALUE BigDecimal_power_op | ( | VALUE | self, |
| VALUE | exp | ||
| ) | [static] |
Definition at line 2309 of file bigdecimal.c.
References BigDecimal_power().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_prec | ( | VALUE | self | ) | [static] |
Definition at line 313 of file bigdecimal.c.
References ENTER, GetVpValue(), GUARD_OBJ, INT2NUM(), Real::MaxPrec, Real::Prec, rb_assoc_new(), and VpBaseFig.
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_remainder | ( | VALUE | self, |
| VALUE | r | ||
| ) | [static] |
Definition at line 1358 of file bigdecimal.c.
References BigDecimal_divremain(), and ToValue().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_round | ( | int | argc, |
| VALUE * | argv, | ||
| VALUE | self | ||
| ) | [static] |
Definition at line 1570 of file bigdecimal.c.
References BigDecimal_to_i(), check_rounding_mode(), Check_Type, ENTER, FIX2INT, GetVpValue(), GUARD_OBJ, Real::Prec, rb_scan_args(), T_FIXNUM, ToValue(), VpActiveRound(), VpBaseFig, VpCreateRbObject(), VpGetRoundMode(), and VpSetPrecLimit().
Referenced by BigDecimal_power(), BigMath_s_exp(), and Init_bigdecimal().
| static VALUE BigDecimal_save_exception_mode | ( | VALUE | self | ) | [static] |
Definition at line 2448 of file bigdecimal.c.
References Qnil, rb_jump_tag(), rb_protect(), rb_yield(), VpGetException(), and VpSetException().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_save_limit | ( | VALUE | self | ) | [static] |
Definition at line 2476 of file bigdecimal.c.
References Qnil, rb_jump_tag(), rb_protect(), rb_yield(), VpGetPrecLimit(), and VpSetPrecLimit().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_save_rounding_mode | ( | VALUE | self | ) | [static] |
Definition at line 2462 of file bigdecimal.c.
References Qnil, rb_jump_tag(), rb_protect(), rb_yield(), VpGetRoundMode(), and VpSetRoundMode().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_sign | ( | VALUE | self | ) | [static] |
Definition at line 2438 of file bigdecimal.c.
References GetVpValue(), INT2FIX, and Real::sign.
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_split | ( | VALUE | self | ) | [static] |
Definition at line 1887 of file bigdecimal.c.
References ENTER, GetVpValue(), GUARD_OBJ, INT2FIX, INT2NUM(), len, memmove(), rb_ary_new2(), rb_ary_push(), rb_str_new(), rb_str_resize(), RSTRING_PTR, strlen(), VpExponent10(), VpNumOfChars(), and VpSzMantissa().
Referenced by BigDecimal_to_i(), BigDecimal_to_r(), and Init_bigdecimal().
| static VALUE BigDecimal_sqrt | ( | VALUE | self, |
| VALUE | nFig | ||
| ) | [static] |
Definition at line 1515 of file bigdecimal.c.
References ENTER, GetPositiveInt(), GetVpValue(), GUARD_OBJ, Real::Prec, ToValue(), VpBaseFig, VpCreateRbObject(), VpDblFig, and VpSqrt().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_sub | ( | VALUE | self, |
| VALUE | r | ||
| ) | [static] |
Definition at line 867 of file bigdecimal.c.
References DBL_DIG, DoSomeOne, ENTER, GetAddSubPrec(), GetVpValue(), GetVpValueWithPrec(), GUARD_OBJ, Real::obj, Real::Prec, RB_TYPE_P, SAVE, T_FLOAT, T_RATIONAL, ToValue(), VpAddSub(), VpBaseFig, VpCreateRbObject(), VpGetSign, VpIsNaN, and VpSetInf.
Referenced by BigDecimal_sub2(), BigMath_s_log(), and Init_bigdecimal().
| static VALUE BigDecimal_sub2 | ( | VALUE | self, |
| VALUE | b, | ||
| VALUE | n | ||
| ) | [static] |
Definition at line 1453 of file bigdecimal.c.
References BigDecimal_sub(), cv, ENTER, GetPositiveInt(), GetVpValue(), GUARD_OBJ, SIGNED_VALUE, ToValue(), VpGetRoundMode(), VpLeftRound(), and VpSetPrecLimit().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_to_f | ( | VALUE | self | ) | [static] |
Definition at line 683 of file bigdecimal.c.
References BASE_FIG, buf, DBL_MAX_10_EXP, DBL_MIN_10_EXP, ENTER, errno, GetVpValue(), GUARD_OBJ, rb_float_new(), rb_str_new(), RSTRING_PTR, SIGNED_VALUE, strtod, VP_EXCEPTION_OVERFLOW, VP_EXCEPTION_UNDERFLOW, VpException(), VpGetDoubleNegInf(), VpGetDoublePosInf(), VpNumOfChars(), VpToString(), and VpVtoD().
Referenced by BigDecimal_coerce(), and Init_bigdecimal().
| static VALUE BigDecimal_to_i | ( | VALUE | self | ) | [static] |
Definition at line 638 of file bigdecimal.c.
References BDIGIT_DBL_SIGNED, BigDecimal_check_num(), BigDecimal_split(), ENTER, Real::frac, GetVpValue(), GUARD_OBJ, INT2FIX, LONG2NUM, RARRAY_PTR, rb_eFloatDomainError, rb_funcall(), rb_intern, rb_raise(), RB_TYPE_P, RSTRING_LEN, T_FLOAT, VpBaseFig, VpExponent10(), and VpGetSign.
Referenced by BigDecimal_ceil(), BigDecimal_div2(), BigDecimal_floor(), BigDecimal_power(), BigDecimal_round(), BigDecimal_truncate(), and Init_bigdecimal().
| static VALUE BigDecimal_to_r | ( | VALUE | self | ) | [static] |
Definition at line 728 of file bigdecimal.c.
References BigDecimal_check_num(), BigDecimal_split(), GetVpValue(), INT2FIX, RARRAY_PTR, rb_funcall(), rb_intern, rb_Rational(), rb_Rational1, RSTRING_LEN, VpExponent10(), and VpGetSign.
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_to_s | ( | int | argc, |
| VALUE * | argv, | ||
| VALUE | self | ||
| ) | [static] |
Definition at line 1796 of file bigdecimal.c.
References ENTER, GetPositiveInt(), GetVpValue(), GUARD_OBJ, ISDIGIT, ISSPACE, rb_scan_args(), rb_str_new(), rb_str_resize(), RB_TYPE_P, RSTRING_PTR, SafeStringValue, strlen(), T_STRING, VpNumOfChars(), VpToFString(), and VpToString().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_truncate | ( | int | argc, |
| VALUE * | argv, | ||
| VALUE | self | ||
| ) | [static] |
Definition at line 1628 of file bigdecimal.c.
References BigDecimal_to_i(), Check_Type, ENTER, FIX2INT, GetVpValue(), GUARD_OBJ, Real::Prec, rb_scan_args(), T_FIXNUM, ToValue(), VP_ROUND_DOWN, VpActiveRound(), VpBaseFig, VpCreateRbObject(), and VpSetPrecLimit().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_uplus | ( | VALUE | self | ) | [static] |
Definition at line 798 of file bigdecimal.c.
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_version | ( | VALUE | self | ) | [static] |
Definition at line 126 of file bigdecimal.c.
References rb_str_new2().
Referenced by Init_bigdecimal().
| static VALUE BigDecimal_zero | ( | VALUE | self | ) | [static] |
Definition at line 999 of file bigdecimal.c.
References GetVpValue(), Qfalse, Qtrue, and VpIsZero.
Referenced by Init_bigdecimal().
| static VALUE BigDecimalCmp | ( | VALUE | self, |
| VALUE | r, | ||
| char | op | ||
| ) | [static] |
Definition at line 906 of file bigdecimal.c.
References DBL_DIG, ENTER, GetVpValue(), GetVpValueWithPrec(), GUARD_OBJ, INT2FIX, is_kind_of_BigDecimal(), NULL, Real::Prec, Qfalse, Qnil, Qtrue, rb_bug(), rb_intern, rb_num_coerce_cmp(), rb_num_coerce_relop(), RTEST, SAVE, SIGNED_VALUE, T_BIGNUM, T_DATA, T_FIXNUM, T_FLOAT, T_RATIONAL, TYPE, VpBaseFig, and VpComp().
Referenced by BigDecimal_comp(), BigDecimal_eq(), BigDecimal_ge(), BigDecimal_gt(), BigDecimal_le(), and BigDecimal_lt().
| static VALUE BigMath_s_exp | ( | VALUE | klass, |
| VALUE | x, | ||
| VALUE | vprec | ||
| ) | [static] |
Definition at line 2497 of file bigdecimal.c.
References argv, BigDecimal_add(), BigDecimal_div2(), BigDecimal_mult(), BigDecimal_mult2(), BigDecimal_round(), cannot_be_coerced_into_BigDecimal(), DATA_PTR, DBL_DIG, GetVpValue(), GetVpValueWithPrec(), INT2NUM(), is_kind_of_BigDecimal(), isinf(), isnan, NULL, NUM2SSIZET, Real::obj, one(), rb_eArgError, RB_GC_GUARD, rb_raise(), RFLOAT_VALUE, rmpd_double_figures(), SIGNED_VALUE, SSIZET2NUM, T_BIGNUM, T_DATA, T_FIXNUM, T_FLOAT, T_RATIONAL, ToValue(), TYPE, vabs, VP_SIGN_POSITIVE_INFINITE, VpCreateRbObject(), VpExponent10(), VpGetSign, VpIsNaN, VpIsNegInf, VpIsPosInf, VpIsZero, VpSetInf, VpSetNaN, and VpSetSign.
Referenced by Init_bigdecimal().
| static VALUE BigMath_s_log | ( | VALUE | klass, |
| VALUE | x, | ||
| VALUE | vprec | ||
| ) | [static] |
Definition at line 2629 of file bigdecimal.c.
References argv, BigDecimal_add(), BigDecimal_div2(), BigDecimal_mult(), BigDecimal_mult2(), BigDecimal_sub(), buf, cannot_be_coerced_into_BigDecimal(), DATA_PTR, DBL_DIG, FIX2LONG, GetVpValue(), GetVpValueWithPrec(), INT2FIX, is_integer(), is_kind_of_BigDecimal(), isinf(), isnan, NULL, NUM2SSIZET, Real::obj, one(), rb_eArgError, rb_eMathDomainError, RB_GC_GUARD, rb_raise(), RBIGNUM_NEGATIVE_P, RBIGNUM_ZERO_P, RFLOAT_VALUE, rmpd_double_figures(), RRATIONAL_NEGATIVE_P, RRATIONAL_ZERO_P, SIGNED_VALUE, snprintf, SSIZET2NUM, T_BIGNUM, T_COMPLEX, T_DATA, T_FIXNUM, T_FLOAT, T_RATIONAL, ToValue(), TYPE, vabs, VP_SIGN_POSITIVE_INFINITE, VpCreateRbObject(), VpExponent10(), VpGetSign, VpIsNaN, VpIsNegInf, VpIsPosInf, VpIsZero, VpSetInf, VpSetNaN, and zero().
Referenced by Init_bigdecimal().
Definition at line 85 of file bigdecimal.c.
References BDIGIT, RBIGNUM_DIGITS, and RBIGNUM_LEN.
| static void cannot_be_coerced_into_BigDecimal | ( | VALUE | exc_class, |
| VALUE | v | ||
| ) | [static] |
Definition at line 189 of file bigdecimal.c.
References rb_class_name(), rb_exc_new3(), rb_exc_raise(), rb_inspect(), rb_obj_class(), rb_special_const_p(), rb_str_cat2(), and rb_str_dup().
Referenced by BigMath_s_exp(), BigMath_s_log(), and GetVpValueWithPrec().
| static unsigned short check_rounding_mode | ( | VALUE const | v | ) | [static] |
Definition at line 390 of file bigdecimal.c.
References Check_Type, FIX2UINT, id, id_banker, id_ceil, id_ceiling, id_default, id_down, id_floor, id_half_down, id_half_even, id_half_up, id_truncate, id_up, rb_eArgError, rb_raise(), SYM2ID, T_FIXNUM, T_SYMBOL, TYPE, VP_ROUND_CEIL, VP_ROUND_DOWN, VP_ROUND_FLOOR, VP_ROUND_HALF_DOWN, VP_ROUND_HALF_EVEN, VP_ROUND_HALF_UP, VP_ROUND_UP, and VpIsRoundMode().
Referenced by BigDecimal_mode(), and BigDecimal_round().
| static size_t GetAddSubPrec | ( | Real * | a, |
| Real * | b | ||
| ) | [static] |
Definition at line 519 of file bigdecimal.c.
References Real::exponent, Real::Prec, SIGNED_VALUE, VP_EXCEPTION_INFINITY, VpException(), and VpIsDef.
Referenced by BigDecimal_add(), BigDecimal_DoDivmod(), and BigDecimal_sub().
| static SIGNED_VALUE GetPositiveInt | ( | VALUE | v | ) | [static] |
Definition at line 540 of file bigdecimal.c.
References Check_Type, FIX2INT, rb_eArgError, rb_raise(), SIGNED_VALUE, and T_FIXNUM.
Referenced by BigDecimal_add2(), BigDecimal_div2(), BigDecimal_mult2(), BigDecimal_new(), BigDecimal_sqrt(), BigDecimal_sub2(), and BigDecimal_to_s().
| static Real* GetVpValue | ( | VALUE | v, |
| int | must | ||
| ) | [static] |
Definition at line 285 of file bigdecimal.c.
References GetVpValueWithPrec().
Referenced by BigDecimal_abs(), BigDecimal_add(), BigDecimal_add2(), BigDecimal_ceil(), BigDecimal_coerce(), BigDecimal_div2(), BigDecimal_divide(), BigDecimal_divremain(), BigDecimal_DoDivmod(), BigDecimal_dump(), BigDecimal_exponent(), BigDecimal_fix(), BigDecimal_floor(), BigDecimal_frac(), BigDecimal_hash(), BigDecimal_inspect(), BigDecimal_IsFinite(), BigDecimal_IsInfinite(), BigDecimal_IsNaN(), BigDecimal_mult(), BigDecimal_mult2(), BigDecimal_neg(), BigDecimal_new(), BigDecimal_nonzero(), BigDecimal_power(), BigDecimal_prec(), BigDecimal_round(), BigDecimal_sign(), BigDecimal_split(), BigDecimal_sqrt(), BigDecimal_sub(), BigDecimal_sub2(), BigDecimal_to_f(), BigDecimal_to_i(), BigDecimal_to_r(), BigDecimal_to_s(), BigDecimal_truncate(), BigDecimal_zero(), BigDecimalCmp(), BigMath_s_exp(), and BigMath_s_log().
| static Real* GetVpValueWithPrec | ( | VALUE | v, |
| long | prec, | ||
| int | must | ||
| ) | [static] |
Definition at line 208 of file bigdecimal.c.
References args, BigDecimal_div2(), cannot_be_coerced_into_BigDecimal(), DATA_PTR, DBL_DIG, FIX2LONG, id_to_r, is_kind_of_BigDecimal(), LONG2NUM, NULL, Qundef, rb_big2str(), rb_eArgError, rb_eTypeError, rb_funcall(), rb_obj_classname(), rb_raise(), RRATIONAL, RSTRING_PTR, SafeStringValue, strlen(), T_BIGNUM, T_DATA, T_FIXNUM, T_FLOAT, T_RATIONAL, T_STRING, ToValue(), TYPE, VpBaseFig, and VpCreateRbObject().
Referenced by BigDecimal_add(), BigDecimal_coerce(), BigDecimal_divide(), BigDecimal_divremain(), BigDecimal_DoDivmod(), BigDecimal_mult(), BigDecimal_new(), BigDecimal_power(), BigDecimal_sub(), BigDecimalCmp(), BigMath_s_exp(), BigMath_s_log(), and GetVpValue().
| void Init_bigdecimal | ( | void | ) |
Definition at line 2883 of file bigdecimal.c.
References BigDecimal_abs(), BigDecimal_add(), BigDecimal_add2(), BigDecimal_ceil(), BigDecimal_coerce(), BigDecimal_comp(), BigDecimal_div(), BigDecimal_div2(), BigDecimal_divmod(), BigDecimal_double_fig(), BigDecimal_dump(), BigDecimal_eq(), BigDecimal_exponent(), BigDecimal_fix(), BigDecimal_floor(), BigDecimal_frac(), BigDecimal_ge(), BigDecimal_global_new(), BigDecimal_gt(), BigDecimal_hash(), BigDecimal_inspect(), BigDecimal_IsFinite(), BigDecimal_IsInfinite(), BigDecimal_IsNaN(), BigDecimal_le(), BigDecimal_limit(), BigDecimal_load(), BigDecimal_lt(), BigDecimal_mod(), BigDecimal_mode(), BigDecimal_mult(), BigDecimal_mult2(), BigDecimal_neg(), BigDecimal_new(), BigDecimal_nonzero(), BigDecimal_power(), BigDecimal_power_op(), BigDecimal_prec(), BigDecimal_remainder(), BigDecimal_round(), BigDecimal_save_exception_mode(), BigDecimal_save_limit(), BigDecimal_save_rounding_mode(), BigDecimal_sign(), BigDecimal_split(), BigDecimal_sqrt(), BigDecimal_sub(), BigDecimal_sub2(), BigDecimal_to_f(), BigDecimal_to_i(), BigDecimal_to_r(), BigDecimal_to_s(), BigDecimal_truncate(), BigDecimal_uplus(), BigDecimal_version(), BigDecimal_zero(), BigMath_s_exp(), BigMath_s_log(), id_banker, id_BigDecimal_exception_mode, id_BigDecimal_precision_limit, id_BigDecimal_rounding_mode, id_ceil, id_ceiling, id_default, id_down, id_eq, id_floor, id_half_down, id_half_even, id_half_up, id_to_r, id_truncate, id_up, INT2FIX, rb_cBigDecimal, rb_cNumeric, rb_define_class(), rb_define_const(), rb_define_global_function(), rb_define_method(), rb_define_module(), rb_define_singleton_method(), rb_intern_const, rb_mBigMath, rb_str_new2(), SIGNED_VALUE, VP_EXCEPTION_ALL, VP_EXCEPTION_INFINITY, VP_EXCEPTION_NaN, VP_EXCEPTION_OVERFLOW, VP_EXCEPTION_UNDERFLOW, VP_EXCEPTION_ZERODIVIDE, VP_ROUND_CEIL, VP_ROUND_DOWN, VP_ROUND_FLOOR, VP_ROUND_HALF_DOWN, VP_ROUND_HALF_EVEN, VP_ROUND_HALF_UP, VP_ROUND_MODE, VP_ROUND_UP, VP_SIGN_NaN, VP_SIGN_NEGATIVE_FINITE, VP_SIGN_NEGATIVE_INFINITE, VP_SIGN_NEGATIVE_ZERO, VP_SIGN_POSITIVE_FINITE, VP_SIGN_POSITIVE_INFINITE, VP_SIGN_POSITIVE_ZERO, VpBaseVal, and VpInit().
Definition at line 2042 of file bigdecimal.c.
References FIX2LONG, RBIGNUM_DIGITS, T_BIGNUM, T_FIXNUM, and TYPE.
Referenced by BigDecimal_power().
| static int is_integer | ( | VALUE | x | ) | [inline, static] |
Definition at line 1971 of file bigdecimal.c.
References RB_TYPE_P, T_BIGNUM, and T_FIXNUM.
Referenced by BigDecimal_power(), and BigMath_s_log().
| static int is_kind_of_BigDecimal | ( | VALUE const | v | ) | [inline, static] |
Definition at line 168 of file bigdecimal.c.
References rb_typeddata_is_kind_of().
Referenced by BigDecimal_new(), BigDecimal_power(), BigDecimalCmp(), BigMath_s_exp(), BigMath_s_log(), and GetVpValueWithPrec().
| static int is_negative | ( | VALUE | x | ) | [inline, static] |
Definition at line 1977 of file bigdecimal.c.
References FIX2LONG, FIXNUM_P, INT2FIX, rb_funcall(), RB_TYPE_P, RBIGNUM_NEGATIVE_P, RFLOAT_VALUE, RTEST, T_BIGNUM, and T_FLOAT.
Referenced by BigDecimal_power().
Definition at line 2017 of file bigdecimal.c.
References FIX2LONG, FIXNUM_P, id_eq, INT2FIX, Qfalse, rb_funcall(), RRATIONAL, RTEST, T_BIGNUM, T_FIXNUM, T_RATIONAL, and TYPE.
Referenced by BigDecimal_power().
Definition at line 1994 of file bigdecimal.c.
References FIX2LONG, FIXNUM_P, id_eq, INT2FIX, Qfalse, rb_funcall(), RRATIONAL, RTEST, T_BIGNUM, T_FIXNUM, T_RATIONAL, and TYPE.
Referenced by BigDecimal_power().
| NORETURN | ( | static void | cannot_be_coerced_into_BigDecimalVALUE, VALUE | ) |
| static double One | ( | void | ) | [static] |
Definition at line 3311 of file bigdecimal.c.
References gOne_ABCED9B4_CE73__00400511F31D.
Referenced by VpGetDoubleNegInf(), VpGetDoubleNegZero(), and VpGetDoublePosInf().
| static VALUE rmpd_power_by_big_decimal | ( | Real const * | x, |
| Real const * | exp, | ||
| ssize_t const | n | ||
| ) | [static] |
Definition at line 2059 of file bigdecimal.c.
References BigDecimal_mult2(), BigMath_exp, BigMath_log, Real::obj, SSIZET2NUM, ToValue(), VpCreateRbObject(), and VpIsZero.
Referenced by BigDecimal_power().
Definition at line 174 of file bigdecimal.c.
References Real::obj, VP_EXCEPTION_INFINITY, VP_EXCEPTION_NaN, VpException(), VpIsNaN, VpIsNegInf, and VpIsPosInf.
Referenced by BigDecimal_abs(), BigDecimal_add(), BigDecimal_add2(), BigDecimal_ceil(), BigDecimal_div(), BigDecimal_div2(), BigDecimal_divmod(), BigDecimal_fix(), BigDecimal_floor(), BigDecimal_frac(), BigDecimal_load(), BigDecimal_mod(), BigDecimal_mult(), BigDecimal_mult2(), BigDecimal_neg(), BigDecimal_new(), BigDecimal_power(), BigDecimal_remainder(), BigDecimal_round(), BigDecimal_sqrt(), BigDecimal_sub(), BigDecimal_sub2(), BigDecimal_truncate(), BigMath_s_exp(), BigMath_s_log(), GetVpValueWithPrec(), and rmpd_power_by_big_decimal().
| VP_EXPORT int VpActiveRound | ( | Real * | y, |
| Real * | x, | ||
| unsigned short | f, | ||
| ssize_t | nf | ||
| ) |
Definition at line 5683 of file bigdecimal.c.
References VpAsgn(), and VpMidRound().
Referenced by BigDecimal_ceil(), BigDecimal_divremain(), BigDecimal_DoDivmod(), BigDecimal_fix(), BigDecimal_floor(), BigDecimal_round(), and BigDecimal_truncate().
Definition at line 3957 of file bigdecimal.c.
References BASE, BDIGIT, bp, Real::frac, VpAsgn(), and VpSetPTR().
Referenced by VpAddSub().
Definition at line 3829 of file bigdecimal.c.
References BASE_FIG, BDIGIT, Real::exponent, Real::frac, Min, Real::Prec, 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 3634 of file bigdecimal.c.
References BASE_FIG, BDIGIT, buf, ISDIGIT, ISSPACE, Max, Real::MaxPrec, ne, NULL, rb_str_resize(), rb_str_tmp_new(), RSTRING_PTR, StrCmp, strlen(), SZ_INF, SZ_NaN, SZ_NINF, SZ_PINF, VpCtoV(), VpGetPrecLimit(), VpMemAlloc(), VpSetNaN, VpSetNegInf, VpSetPosInf, and VpSetZero.
Referenced by VpCreateRbObject(), VpInit(), VpMult(), VpNewRbClass(), VpPower(), and VpSqrt().
Definition at line 3787 of file bigdecimal.c.
References BASE_FIG, BDIGIT, Real::exponent, Real::frac, Real::MaxPrec, Real::Prec, VpGetSign, VpInternalRound(), VpIsInf, VpIsNaN, VpIsZero, VpLimitRound(), VpSetInf, VpSetNaN, VpSetSign, and VpSetZero.
Referenced by BigDecimal_abs(), BigDecimal_neg(), VpActiveRound(), VpAddAbs(), VpAddSub(), VpDivd(), VpFrac(), VpMult(), VpPower(), VpSqrt(), and VpSubAbs().
Definition at line 4632 of file bigdecimal.c.
References Real::exponent, Real::frac, Real::Prec, Real::sign, VpGetSign, VpIsDef, VpIsNaN, and VpIsZero.
Referenced by BigDecimalCmp().
| VP_EXPORT Real* VpCreateRbObject | ( | size_t | mx, |
| const char * | str | ||
| ) |
Definition at line 560 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_divide(), 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 5053 of file bigdecimal.c.
References BASE_FIG, BDIGIT, Real::exponent, Real::frac, Real::MaxPrec, ne, Real::Prec, rb_warn(), SIGNED_VALUE, VP_EXCEPTION_INFINITY, VpException(), VpNmlz(), VpSetInf, VpSetSign, VpSetZero, and zero().
Referenced by VpAlloc().
Definition at line 4383 of file bigdecimal.c.
References AddExponent(), BASE, BASE_FIG, BDIGIT, BDIGIT_DBL, Real::exponent, Real::frac, Real::MaxPrec, Min, Real::Prec, 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_divide(), BigDecimal_divremain(), BigDecimal_DoDivmod(), VpPower(), and VpSqrt().
Definition at line 5268 of file bigdecimal.c.
References BASE, BDIGIT, Real::exponent, Real::frac, isinf(), isnan, Real::MaxPrec, ne, Real::Prec, SIGNED_VALUE, VpInternalRound(), VpSetNaN, VpSetNegInf, VpSetPosInf, VpSetSign, and VpSetZero.
Referenced by VpSqrt().
Definition at line 568 of file bigdecimal.c.
References assert, BDIGIT, Real::exponent, Real::flag, Real::frac, Real::MaxPrec, MEMCPY, NULL, Real::obj, Real::Prec, rb_obj_class(), Real::sign, TypedData_Wrap_Struct, and VpMemAlloc().
Referenced by BigDecimal_new().
| VP_EXPORT int VpException | ( | unsigned short | f, |
| const char * | str, | ||
| int | always | ||
| ) |
Definition at line 3372 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(), and VpSqrt().
| VP_EXPORT ssize_t VpExponent10 | ( | Real * | a | ) |
Definition at line 4846 of file bigdecimal.c.
References BASE1, BASE_FIG, Real::exponent, Real::frac, and VpHasVal.
Referenced by BigDecimal_exponent(), BigDecimal_split(), BigDecimal_to_i(), BigDecimal_to_r(), BigMath_s_exp(), and BigMath_s_log().
| static void VpFormatSt | ( | char * | psz, |
| size_t | fFmt | ||
| ) | [static] |
Definition at line 4821 of file bigdecimal.c.
References ISSPACE, memmove(), and strlen().
Referenced by VpToFString(), and VpToString().
Definition at line 5777 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 3150 of file bigdecimal.c.
References getchar, NULL, and xfree().
Referenced by BigDecimal_delete(), VpMult(), VpPower(), and VpSqrt().
| VP_EXPORT double VpGetDoubleNaN | ( | void | ) |
Definition at line 3331 of file bigdecimal.c.
References Zero().
| VP_EXPORT double VpGetDoubleNegInf | ( | void | ) |
Definition at line 3347 of file bigdecimal.c.
Referenced by BigDecimal_to_f(), VpGetDoubleNegZero(), VpInit(), and VpVtoD().
| VP_EXPORT double VpGetDoubleNegZero | ( | void | ) |
Definition at line 3355 of file bigdecimal.c.
References One(), and VpGetDoubleNegInf().
| VP_EXPORT double VpGetDoublePosInf | ( | void | ) |
Definition at line 3339 of file bigdecimal.c.
Referenced by BigDecimal_to_f(), VpInit(), and VpVtoD().
| static unsigned short VpGetException | ( | void | ) | [static] |
Definition at line 3180 of file bigdecimal.c.
References FIX2UINT, id_BigDecimal_exception_mode, NIL_P, rb_thread_current(), rb_thread_local_aref(), RMPD_EXCEPTION_MODE_DEFAULT, and rmpd_set_thread_local_exception_mode.
Referenced by BigDecimal_mode(), BigDecimal_save_exception_mode(), and VpException().
| VP_EXPORT size_t VpGetPrecLimit | ( | void | ) |
Definition at line 3215 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(), and VpSetPrecLimit().
| VP_EXPORT unsigned short VpGetRoundMode | ( | void | ) |
Definition at line 3250 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_round(), BigDecimal_save_rounding_mode(), BigDecimal_sub2(), VpInternalRound(), VpLimitRound(), and VpSetRoundMode().
Definition at line 3553 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().
| static void VpInternalRound | ( | Real * | c, |
| size_t | ixDigit, | ||
| BDIGIT | vPrev, | ||
| BDIGIT | v | ||
| ) | [static] |
Definition at line 5704 of file bigdecimal.c.
References BASE1, VP_ROUND_CEIL, VP_ROUND_DOWN, VP_ROUND_FLOOR, VP_ROUND_HALF_DOWN, VP_ROUND_HALF_EVEN, VP_ROUND_HALF_UP, VP_ROUND_UP, VpGetRoundMode(), VpGetSign, VpLimitRound(), VpNmlz(), and VpRdup().
Referenced by BigDecimal_div(), VpAddSub(), VpAsgn(), and VpDtoV().
Definition at line 3412 of file bigdecimal.c.
References VP_EXCEPTION_INFINITY, VP_EXCEPTION_NaN, VpException(), VpGetSign, VpIsInf, VpIsNaN, VpIsZero, VpSetInf, VpSetNaN, and VpSetZero.
Referenced by VpAddSub(), VpDivd(), and VpMult().
| VP_EXPORT int VpIsRoundMode | ( | unsigned short | n | ) |
Definition at line 3266 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().
| VP_EXPORT int VpLeftRound | ( | Real * | y, |
| unsigned short | f, | ||
| ssize_t | nf | ||
| ) |
Definition at line 5668 of file bigdecimal.c.
References BASE_FIG, BDIGIT, Real::frac, VpExponent, VpHasVal, and VpMidRound().
Referenced by BigDecimal_add2(), BigDecimal_div2(), BigDecimal_mult2(), BigDecimal_sub2(), and VpLimitRound().
| static int VpLimitRound | ( | Real * | c, |
| size_t | ixDigit | ||
| ) | [static] |
Definition at line 5691 of file bigdecimal.c.
References BASE_FIG, Real::Prec, VpGetPrecLimit(), VpGetRoundMode(), VpLeftRound(), and VpNmlz().
Referenced by VpAsgn(), VpInternalRound(), and VpMult().
| VP_EXPORT void* VpMemAlloc | ( | size_t | mb | ) |
Definition at line 3136 of file bigdecimal.c.
References VP_EXCEPTION_MEMORY, VpException(), and xmalloc.
| VP_EXPORT int VpMidRound | ( | Real * | y, |
| unsigned short | f, | ||
| ssize_t | nf | ||
| ) |
Definition at line 5508 of file bigdecimal.c.
References BASE, BASE_FIG, BDIGIT, div, Real::exponent, Real::frac, Real::Prec, SIGNED_VALUE, VP_ROUND_CEIL, VP_ROUND_DOWN, VP_ROUND_FLOOR, VP_ROUND_HALF_DOWN, VP_ROUND_HALF_EVEN, VP_ROUND_HALF_UP, VP_ROUND_UP, VpGetSign, VpNmlz(), VpRdup(), VpSetOne, VpSetSign, and VpSetZero.
Referenced by VpActiveRound(), and VpLeftRound().
Definition at line 4255 of file bigdecimal.c.
References AddExponent(), BASE, BASE_FIG, BDIGIT, BDIGIT_DBL, Real::exponent, Real::frac, Real::MaxPrec, NULL, Real::Prec, VpAlloc(), VpAsgn(), VpFree(), VpGetSign, VpIsDefOP(), VpIsOne, VpIsZero, VpLimitRound(), VpNmlz(), VpSetSign, and VpSetZero.
Referenced by BigDecimal_divremain(), BigDecimal_DoDivmod(), BigDecimal_mult(), VpPower(), and VpSqrt().
| VP_EXPORT Real* VpNewRbClass | ( | size_t | mx, |
| const char * | str, | ||
| VALUE | klass | ||
| ) |
Definition at line 552 of file bigdecimal.c.
References Real::obj, TypedData_Wrap_Struct, and VpAlloc().
Referenced by BigDecimal_load(), and BigDecimal_new().
Definition at line 4594 of file bigdecimal.c.
References AddExponent(), BDIGIT, Real::frac, memmove(), Real::Prec, SIGNED_VALUE, VpGetSign, VpIsDef, VpIsZero, and VpSetZero.
Referenced by VpCtoV(), VpDivd(), VpFrac(), VpInternalRound(), VpLimitRound(), VpMidRound(), VpMult(), and VpRdup().
| VP_EXPORT size_t VpNumOfChars | ( | Real * | vp, |
| const char * | pszFmt | ||
| ) |
Definition at line 3509 of file bigdecimal.c.
References BASE_FIG, 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 3584 of file bigdecimal.c.
References VpConstOne.
Referenced by BigDecimal_DoDivmod().
| VP_EXPORT int VpPower | ( | Real * | y, |
| Real * | x, | ||
| SIGNED_VALUE | n | ||
| ) |
Definition at line 5825 of file bigdecimal.c.
References BASE_FIG, Real::exponent, Real::frac, Real::MaxPrec, NULL, Real::Prec, SIGNED_VALUE, VpAlloc(), VpAsgn(), VpDivd(), VpFree(), VpGetSign, VpIsInf, VpIsNaN, VpIsPosInf, VpIsZero, VpMult(), VpSetInf, VpSetNaN, VpSetOne, VpSetSign, and VpSetZero.
Referenced by BigDecimal_power().
Definition at line 5752 of file bigdecimal.c.
References AddExponent(), BASE, BDIGIT, Real::frac, Real::Prec, and VpNmlz().
Referenced by VpInternalRound(), and VpMidRound().
| static void VpSetException | ( | unsigned short | f | ) | [static] |
Definition at line 3196 of file bigdecimal.c.
References rmpd_set_thread_local_exception_mode.
Referenced by BigDecimal_mode(), and BigDecimal_save_exception_mode().
| VP_EXPORT size_t VpSetPrecLimit | ( | size_t | n | ) |
Definition at line 3231 of file bigdecimal.c.
References rmpd_set_thread_local_precision_limit, 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().
| static size_t VpSetPTR | ( | Real * | a, |
| Real * | b, | ||
| Real * | c, | ||
| size_t * | a_pos, | ||
| size_t * | b_pos, | ||
| size_t * | c_pos, | ||
| BDIGIT * | av, | ||
| BDIGIT * | bv | ||
| ) | [static] |
Definition at line 4160 of file bigdecimal.c.
References AddExponent(), Real::exponent, Real::frac, Max, Real::MaxPrec, and Real::Prec.
Referenced by VpAddAbs(), and VpSubAbs().
| VP_EXPORT unsigned short VpSetRoundMode | ( | unsigned short | n | ) |
Definition at line 3284 of file bigdecimal.c.
References rmpd_set_thread_local_rounding_mode, VpGetRoundMode(), and VpIsRoundMode().
Referenced by BigDecimal_mode(), and BigDecimal_save_rounding_mode().
Definition at line 5398 of file bigdecimal.c.
References BASE, BASE_FIG, DBLE_FIG, Real::exponent, if(), maxnr, Real::MaxPrec, Min, NULL, PRIdSIZE, SIGNED_VALUE, 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 4048 of file bigdecimal.c.
References BASE, BDIGIT, bp, Real::frac, VpAsgn(), and VpSetPTR().
Referenced by VpAddSub().
| VP_EXPORT void VpSzMantissa | ( | Real * | a, |
| char * | psz | ||
| ) |
Definition at line 4863 of file bigdecimal.c.
References BASE1, BDIGIT_DBL, Real::frac, Real::Prec, strlen(), SZ_INF, SZ_NaN, SZ_NINF, VpGetSign, VpIsNaN, VpIsNegInf, VpIsPosInf, VpIsPosZero, and VpIsZero.
Referenced by BigDecimal_split().
| VP_EXPORT void VpToFString | ( | Real * | a, |
| char * | psz, | ||
| size_t | fFmt, | ||
| int | fPlus | ||
| ) |
Definition at line 4988 of file bigdecimal.c.
References BASE, BASE1, BASE_FIG, BDIGIT, Real::exponent, Real::frac, Real::Prec, strlen(), VpFormatSt(), VpGetSign, and VpToSpecialString().
Referenced by BigDecimal_to_s().
| VP_EXPORT int VpToSpecialString | ( | Real * | a, |
| char * | psz, | ||
| int | fPlus | ||
| ) |
Definition at line 4909 of file bigdecimal.c.
References SZ_INF, SZ_NaN, SZ_NINF, VpIsNaN, VpIsNegInf, VpIsPosInf, VpIsPosZero, and VpIsZero.
Referenced by VpToFString(), and VpToString().
| VP_EXPORT void VpToString | ( | Real * | a, |
| char * | psz, | ||
| size_t | fFmt, | ||
| int | fPlus | ||
| ) |
Definition at line 4942 of file bigdecimal.c.
References BASE1, BASE_FIG, BDIGIT, Real::exponent, Real::frac, Real::Prec, PRIdSIZE, shift(), strlen(), VpFormatSt(), VpGetSign, and VpToSpecialString().
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 5204 of file bigdecimal.c.
References BASE, BASE_FIG, DBLE_FIG, div, Real::exponent, 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().
| static double Zero | ( | void | ) | [static] |
Definition at line 3305 of file bigdecimal.c.
References gZero_ABCED9B1_CE73__00400511F31D.
Referenced by VpGetDoubleNaN(), VpGetDoubleNegInf(), and VpGetDoublePosInf().
const rb_data_type_t BigDecimal_data_type [static] |
{
"BigDecimal",
{0, BigDecimal_delete, BigDecimal_memsize,},
}
Definition at line 162 of file bigdecimal.c.
| volatile const double gOne_ABCED9B4_CE73__00400511F31D = 1.0 |
Definition at line 3303 of file bigdecimal.c.
Referenced by One().
| volatile const double gZero_ABCED9B1_CE73__00400511F31D = 0.0 |
Definition at line 3302 of file bigdecimal.c.
Referenced by Zero().
Definition at line 55 of file bigdecimal.c.
Referenced by check_rounding_mode(), and Init_bigdecimal().
ID id_BigDecimal_exception_mode [static] |
Definition at line 44 of file bigdecimal.c.
Referenced by Init_bigdecimal(), and VpGetException().
ID id_BigDecimal_precision_limit [static] |
Definition at line 46 of file bigdecimal.c.
Referenced by Init_bigdecimal(), and VpGetPrecLimit().
ID id_BigDecimal_rounding_mode [static] |
Definition at line 45 of file bigdecimal.c.
Referenced by Init_bigdecimal(), and VpGetRoundMode().
Definition at line 57 of file bigdecimal.c.
Referenced by check_rounding_mode(), and Init_bigdecimal().
ID id_ceiling [static] |
Definition at line 56 of file bigdecimal.c.
Referenced by check_rounding_mode(), and Init_bigdecimal().
ID id_default [static] |
Definition at line 52 of file bigdecimal.c.
Referenced by check_rounding_mode(), and Init_bigdecimal().
Definition at line 49 of file bigdecimal.c.
Referenced by check_rounding_mode(), and Init_bigdecimal().
Definition at line 60 of file bigdecimal.c.
Referenced by Init_bigdecimal(), is_one(), and is_zero().
Definition at line 58 of file bigdecimal.c.
Referenced by check_rounding_mode(), and Init_bigdecimal().
ID id_half_down [static] |
Definition at line 53 of file bigdecimal.c.
Referenced by check_rounding_mode(), and Init_bigdecimal().
ID id_half_even [static] |
Definition at line 54 of file bigdecimal.c.
Referenced by check_rounding_mode(), and Init_bigdecimal().
ID id_half_up [static] |
Definition at line 51 of file bigdecimal.c.
Referenced by check_rounding_mode(), and Init_bigdecimal().
Definition at line 59 of file bigdecimal.c.
Referenced by GetVpValueWithPrec(), and Init_bigdecimal().
ID id_truncate [static] |
Definition at line 50 of file bigdecimal.c.
Referenced by check_rounding_mode(), and Init_bigdecimal().
Definition at line 48 of file bigdecimal.c.
Referenced by check_rounding_mode(), and Init_bigdecimal().
Definition at line 41 of file bigdecimal.c.
Referenced by BigDecimal_global_new(), Init_bigdecimal(), and VpCreateRbObject().
Definition at line 42 of file bigdecimal.c.
Referenced by Init_bigdecimal().
Real* VpConstOne [static] |
Definition at line 3113 of file bigdecimal.c.
Referenced by VpOne().
Definition at line 3114 of file bigdecimal.c.
1.7.6.1