Ruby  2.1.10p492(2016-04-01revision54464)
Macros | Functions | Variables
bigdecimal.c File Reference
#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.

Macros

#define NDEBUG
 
#define MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, min, max)
 
#define SIGNED_VALUE_MAX   INTPTR_MAX
 
#define SIGNED_VALUE_MIN   INTPTR_MIN
 
#define MUL_OVERFLOW_SIGNED_VALUE_P(a, b)   MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, SIGNED_VALUE_MIN, SIGNED_VALUE_MAX)
 
#define ENTER(n)   volatile VALUE RB_UNUSED_VAR(vStack[n]);int iStack=0
 
#define PUSH(x)   vStack[iStack++] = (VALUE)(x);
 
#define SAVE(p)   PUSH(p->obj);
 
#define GUARD_OBJ(p, y)   {p=y;SAVE(p);}
 
#define BASE_FIG   RMPD_COMPONENT_FIGURES
 
#define BASE   RMPD_BASE
 
#define HALF_BASE   (BASE/2)
 
#define BASE1   (BASE/10)
 
#define DBLE_FIG   (DBL_DIG+1) /* figure of double */
 
#define RBIGNUM_ZERO_P(x)   rb_bigzero_p(x)
 
#define RRATIONAL_ZERO_P(x)
 
#define RRATIONAL_NEGATIVE_P(x)   RTEST(rb_funcall((x), '<', 1, INT2FIX(0)))
 
#define DoSomeOne(x, y, f)   rb_num_coerce_bin(x,y,f)
 
#define VpAllocReal(prec)   (Real *)VpMemAlloc(offsetof(Real, frac) + (prec) * sizeof(BDIGIT))
 
#define VpReallocReal(ptr, prec)   (Real *)VpMemRealloc((ptr), offsetof(Real, frac) + (prec) * sizeof(BDIGIT))
 
#define BigMath_exp(x, n)   BigMath_s_exp(rb_mBigMath, (x), (n))
 
#define BigMath_log(x, n)   BigMath_s_log(rb_mBigMath, (x), (n))
 
#define is_positive(x)   (!is_negative(x))
 
#define maxnr   100UL /* Maximum iterations for calculating sqrt. */
 
#define MemCmp(x, y, z)   memcmp(x,y,z)
 
#define StrCmp(x, y)   strcmp(x,y)
 
#define rmpd_set_thread_local_exception_mode(mode)
 
#define rmpd_set_thread_local_precision_limit(limit)
 
#define RMPD_PRECISION_LIMIT_DEFAULT   ((size_t)0)
 
#define rmpd_set_thread_local_rounding_mode(mode)
 

Functions

static VALUE BigDecimal_version (VALUE self)
 
static unsigned short VpGetException (void)
 
static void VpSetException (unsigned short f)
 
static void VpInternalRound (Real *c, size_t ixDigit, BDIGIT vPrev, BDIGIT v)
 
static int VpLimitRound (Real *c, size_t ixDigit)
 
static RealVpCopy (Real *pv, Real const *const x)
 
static void BigDecimal_delete (void *pv)
 
static size_t BigDecimal_memsize (const void *ptr)
 
static int is_kind_of_BigDecimal (VALUE const v)
 
static VALUE ToValue (Real *p)
 
 NORETURN (static void cannot_be_coerced_into_BigDecimal(VALUE, VALUE))
 
static void cannot_be_coerced_into_BigDecimal (VALUE exc_class, VALUE v)
 
static VALUE BigDecimal_div2 (VALUE, VALUE, VALUE)
 
static RealGetVpValueWithPrec (VALUE v, long prec, int must)
 
static RealGetVpValue (VALUE v, int must)
 
static VALUE BigDecimal_double_fig (VALUE self)
 
static VALUE BigDecimal_prec (VALUE self)
 
static VALUE BigDecimal_hash (VALUE self)
 
static VALUE BigDecimal_dump (int argc, VALUE *argv, VALUE self)
 
static VALUE BigDecimal_load (VALUE self, VALUE str)
 
static unsigned short check_rounding_mode (VALUE const v)
 
static VALUE BigDecimal_mode (int argc, VALUE *argv, VALUE self)
 
static size_t GetAddSubPrec (Real *a, Real *b)
 
static SIGNED_VALUE GetPositiveInt (VALUE v)
 
VP_EXPORT RealVpNewRbClass (size_t mx, const char *str, VALUE klass)
 
VP_EXPORT RealVpCreateRbObject (size_t mx, const char *str)
 
static VALUE BigDecimal_IsNaN (VALUE self)
 
static VALUE BigDecimal_IsInfinite (VALUE self)
 
static VALUE BigDecimal_IsFinite (VALUE self)
 
static void BigDecimal_check_num (Real *p)
 
static VALUE BigDecimal_split (VALUE self)
 
static VALUE BigDecimal_to_i (VALUE self)
 
static VALUE BigDecimal_to_f (VALUE self)
 
static VALUE BigDecimal_to_r (VALUE self)
 
static VALUE BigDecimal_coerce (VALUE self, VALUE other)
 
static VALUE BigDecimal_uplus (VALUE self)
 
static VALUE BigDecimal_add (VALUE self, VALUE r)
 
static VALUE BigDecimal_sub (VALUE self, VALUE r)
 
static VALUE BigDecimalCmp (VALUE self, VALUE r, char op)
 
static VALUE BigDecimal_zero (VALUE self)
 
static VALUE BigDecimal_nonzero (VALUE self)
 
static VALUE BigDecimal_comp (VALUE self, VALUE r)
 
static VALUE BigDecimal_eq (VALUE self, VALUE r)
 
static VALUE BigDecimal_lt (VALUE self, VALUE r)
 
static VALUE BigDecimal_le (VALUE self, VALUE r)
 
static VALUE BigDecimal_gt (VALUE self, VALUE r)
 
static VALUE BigDecimal_ge (VALUE self, VALUE r)
 
static VALUE BigDecimal_neg (VALUE self)
 
static VALUE BigDecimal_mult (VALUE self, VALUE r)
 
 GUARD_OBJ (a, GetVpValue(self, 1))
 
 if (RB_TYPE_P(r, T_FLOAT))
 
else if (RB_TYPE_P(r, T_RATIONAL))
 
 if (!b) return DoSomeOne(self
 
 SAVE (b)
 
 if (mx< b->Prec+vabs(b->exponent)) mx
 
 GUARD_OBJ ((*c), VpCreateRbObject(mx,"#0"))
 
 GUARD_OBJ ((*res), VpCreateRbObject((mx+1)*2+(VpBaseFig()+1),"#0"))
 
 if (!NIL_P(r)) return r
 
 SAVE (c)
 
 SAVE (res)
 
 SAVE (div)
 
 if (VpHasVal(div))
 
return ToValue (c)
 
static VALUE BigDecimal_DoDivmod (VALUE self, VALUE r, Real **div, Real **mod)
 
static VALUE BigDecimal_mod (VALUE self, VALUE r)
 
static VALUE BigDecimal_divremain (VALUE self, VALUE r, Real **dv, Real **rv)
 
static VALUE BigDecimal_remainder (VALUE self, VALUE r)
 
static VALUE BigDecimal_divmod (VALUE self, VALUE r)
 
static VALUE BigDecimal_div3 (int argc, VALUE *argv, VALUE self)
 
static VALUE BigDecimal_add2 (VALUE self, VALUE b, VALUE n)
 
static VALUE BigDecimal_sub2 (VALUE self, VALUE b, VALUE n)
 
static VALUE BigDecimal_mult2 (VALUE self, VALUE b, VALUE n)
 
static VALUE BigDecimal_abs (VALUE self)
 
static VALUE BigDecimal_sqrt (VALUE self, VALUE nFig)
 
static VALUE BigDecimal_fix (VALUE self)
 
static VALUE BigDecimal_round (int argc, VALUE *argv, VALUE self)
 
static VALUE BigDecimal_truncate (int argc, VALUE *argv, VALUE self)
 
static VALUE BigDecimal_frac (VALUE self)
 
static VALUE BigDecimal_floor (int argc, VALUE *argv, VALUE self)
 
static VALUE BigDecimal_ceil (int argc, VALUE *argv, VALUE self)
 
static VALUE BigDecimal_to_s (int argc, VALUE *argv, VALUE self)
 
static VALUE BigDecimal_exponent (VALUE self)
 
static VALUE BigDecimal_inspect (VALUE self)
 
static VALUE BigMath_s_exp (VALUE, VALUE, VALUE)
 
static VALUE BigMath_s_log (VALUE, VALUE, VALUE)
 
static int is_integer (VALUE x)
 
static int is_negative (VALUE x)
 
static int is_zero (VALUE x)
 
static int is_one (VALUE x)
 
static int is_even (VALUE x)
 
static VALUE rmpd_power_by_big_decimal (Real const *x, Real const *exp, ssize_t const n)
 
static VALUE BigDecimal_power (int argc, VALUE *argv, VALUE self)
 
static VALUE BigDecimal_power_op (VALUE self, VALUE exp)
 
static VALUE BigDecimal_s_allocate (VALUE klass)
 
static RealBigDecimal_new (int argc, VALUE *argv)
 
static VALUE BigDecimal_initialize (int argc, VALUE *argv, VALUE self)
 
static VALUE BigDecimal_initialize_copy (VALUE self, VALUE other)
 
static VALUE BigDecimal_global_new (int argc, VALUE *argv, VALUE self)
 
static VALUE BigDecimal_limit (int argc, VALUE *argv, VALUE self)
 
static VALUE BigDecimal_sign (VALUE self)
 
static VALUE BigDecimal_save_exception_mode (VALUE self)
 
static VALUE BigDecimal_save_rounding_mode (VALUE self)
 
static VALUE BigDecimal_save_limit (VALUE self)
 
void Init_bigdecimal (void)
 
static int VpIsDefOP (Real *c, Real *a, Real *b, int sw)
 
static int AddExponent (Real *a, SIGNED_VALUE n)
 
static BDIGIT VpAddAbs (Real *a, Real *b, Real *c)
 
static BDIGIT VpSubAbs (Real *a, Real *b, Real *c)
 
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 int VpNmlz (Real *a)
 
static void VpFormatSt (char *psz, size_t fFmt)
 
static int VpRdup (Real *m, size_t ind_m)
 
VP_EXPORT voidVpMemAlloc (size_t mb)
 
VP_EXPORT voidVpMemRealloc (void *ptr, size_t mb)
 
VP_EXPORT void VpFree (Real *pv)
 
VP_EXPORT size_t VpGetPrecLimit (void)
 
VP_EXPORT size_t VpSetPrecLimit (size_t n)
 
VP_EXPORT unsigned short VpGetRoundMode (void)
 
VP_EXPORT int VpIsRoundMode (unsigned short n)
 
VP_EXPORT unsigned short VpSetRoundMode (unsigned short n)
 
static double Zero (void)
 
static double One (void)
 
VP_EXPORT double VpGetDoubleNaN (void)
 
VP_EXPORT double VpGetDoublePosInf (void)
 
VP_EXPORT double VpGetDoubleNegInf (void)
 
VP_EXPORT double VpGetDoubleNegZero (void)
 
VP_EXPORT int VpException (unsigned short f, const char *str, int always)
 
VP_EXPORT size_t VpNumOfChars (Real *vp, const char *pszFmt)
 
VP_EXPORT size_t VpInit (BDIGIT BaseVal)
 
VP_EXPORT RealVpOne (void)
 
VP_EXPORT RealVpAlloc (size_t mx, const char *szVal)
 
VP_EXPORT size_t VpAsgn (Real *c, Real *a, int isw)
 
VP_EXPORT size_t VpAddSub (Real *c, Real *a, Real *b, int operation)
 
VP_EXPORT size_t VpMult (Real *c, Real *a, Real *b)
 
VP_EXPORT size_t VpDivd (Real *c, Real *r, Real *a, Real *b)
 
VP_EXPORT int VpComp (Real *a, Real *b)
 
VP_EXPORT ssize_t VpExponent10 (Real *a)
 
VP_EXPORT void VpSzMantissa (Real *a, char *psz)
 
 if (VpToSpecialString(a, psz, fPlus))
 
 while (a->frac[0]/shift==0)
 
 while (psz[-1]== '0')
 
 sprintf (psz,"E%"PRIdSIZE, ex)
 
 if (fFmt)
 
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)
 
VP_EXPORT int VpVtoD (double *d, SIGNED_VALUE *e, Real *m)
 
VP_EXPORT void VpDtoV (Real *m, double d)
 
VP_EXPORT int VpSqrt (Real *y, Real *x)
 
 if (nf< 0)
 
 if ((size_t) ix >=y->Prec) return 0
 
 for (v/=shifter=1)
 
 memset (y->frac+ix+1, 0,(y->Prec-(ix+1))*sizeof(BDIGIT))
 
 switch (f)
 
 for (i=0;i<=n;++i)
 
 VpNmlz (y)
 
 if (exptoadd > 0)
 
 if (!VpHasVal(y)) return 0
 
 while ((v/=10)!=0)
 
VP_EXPORT void VpFrac (Real *y, Real *x)
 
VP_EXPORT int VpPower (Real *y, Real *x, SIGNED_VALUE n)
 

Variables

VALUE rb_cBigDecimal
 
VALUE rb_mBigMath
 
static ID id_BigDecimal_exception_mode
 
static ID id_BigDecimal_rounding_mode
 
static ID id_BigDecimal_precision_limit
 
static ID id_up
 
static ID id_down
 
static ID id_truncate
 
static ID id_half_up
 
static ID id_default
 
static ID id_half_down
 
static ID id_half_even
 
static ID id_banker
 
static ID id_ceiling
 
static ID id_ceil
 
static ID id_floor
 
static ID id_to_r
 
static ID id_eq
 
static const rb_data_type_t BigDecimal_data_type
 
static VALUE
 
Reala = NULL
 
Realb = in[1]
 
size_t mx = a->Prec + vabs(a->exponent)
 
 else
 
 r = BigDecimal_divide(&c, &res, &div, self, r)
 
div = b
 
VpDivdc =NULL
 
return Qnil
 
Realres =NULL
 
static RealVpConstOne
 
static RealVpPt5
 
volatile const double gZero_ABCED9B1_CE73__00400511F31D = 0.0
 
volatile const double gOne_ABCED9B4_CE73__00400511F31D = 1.0
 
VP_EXPORT int
 
VP_EXPORT void
 
BDIGIT shift = BASE1
 
BDIGIT m
 
BDIGIT e
 
BDIGIT nn
 
char * pszSav = psz
 
ssize_t ex = a->exponent * (ssize_t)BASE_FIG
 
ssize_t n = (ssize_t)BASE_FIG - ioffset - 1
 
ssize_t i
 
ssize_t ix = nf / (ssize_t)BASE_FIG
 
ssize_t ioffset = nf - ix*(ssize_t)BASE_FIG
 
ssize_t exptoadd =0
 
BDIGIT v = y->frac[ix]
 
BDIGIT shifter
 
 nf = y->exponent * (ssize_t)BASE_FIG
 
 return
 

Macro Definition Documentation

#define BASE   RMPD_BASE

Definition at line 72 of file bigdecimal.c.

Referenced by for(), if(), VpAddAbs(), VpDivd(), VpDtoV(), VpInit(), VpMult(), VpRdup(), VpSqrt(), VpSubAbs(), and VpVtoD().

#define BASE1   (BASE/10)

Definition at line 75 of file bigdecimal.c.

Referenced by if(), VpExponent10(), VpInit(), VpInternalRound(), and VpSzMantissa().

#define BASE_FIG   RMPD_COMPONENT_FIGURES
#define BigMath_exp (   x,
  n 
)    BigMath_s_exp(rb_mBigMath, (x), (n))

Definition at line 2060 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 2061 of file bigdecimal.c.

Referenced by rmpd_power_by_big_decimal().

#define DBLE_FIG   (DBL_DIG+1) /* figure of double */

Definition at line 78 of file bigdecimal.c.

Referenced by VpInit(), VpSqrt(), and VpVtoD().

#define DoSomeOne (   x,
  y,
  f 
)    rb_num_coerce_bin(x,y,f)
#define ENTER (   n)    volatile VALUE RB_UNUSED_VAR(vStack[n]);int iStack=0
#define GUARD_OBJ (   p,
 
)    {p=y;SAVE(p);}
#define HALF_BASE   (BASE/2)

Definition at line 74 of file bigdecimal.c.

Referenced by VpInit().

#define is_positive (   x)    (!is_negative(x))

Definition at line 2084 of file bigdecimal.c.

Referenced by BigDecimal_power().

#define maxnr   100UL /* Maximum iterations for calculating sqrt. */

Definition at line 3315 of file bigdecimal.c.

Referenced by VpSqrt().

#define MemCmp (   x,
  y,
 
)    memcmp(x,y,z)

Definition at line 3319 of file bigdecimal.c.

#define MUL_OVERFLOW_SIGNED_INTEGER_P (   a,
  b,
  min,
  max 
)
Value:
( \
(a) == 0 ? 0 : \
(a) == -1 ? (b) < -(max) : \
(a) > 0 ? \
((b) > 0 ? (max) / (a) < (b) : (min) / (a) > (b)) : \
((b) > 0 ? (min) / (a) < (b) : (max) / (a) > (b)))
static int max(int a, int b)
Definition: strftime.c:141
Real * a
Definition: bigdecimal.c:1198
static int min(int a, int b)
Definition: strftime.c:131
Real * b
Definition: bigdecimal.c:1198

Definition at line 34 of file bigdecimal.c.

Referenced by timetick2integer().

#define MUL_OVERFLOW_SIGNED_VALUE_P (   a,
  b 
)    MUL_OVERFLOW_SIGNED_INTEGER_P(a, b, SIGNED_VALUE_MIN, SIGNED_VALUE_MAX)

Definition at line 42 of file bigdecimal.c.

Referenced by AddExponent(), and VpCtoV().

#define NDEBUG

Definition at line 16 of file bigdecimal.c.

#define PUSH (   x)    vStack[iStack++] = (VALUE)(x);
#define RBIGNUM_ZERO_P (   x)    rb_bigzero_p(x)

Definition at line 82 of file bigdecimal.c.

Referenced by BigMath_s_log().

#define RMPD_PRECISION_LIMIT_DEFAULT   ((size_t)0)

Definition at line 3421 of file bigdecimal.c.

Referenced by VpGetPrecLimit().

#define rmpd_set_thread_local_exception_mode (   mode)
Value:
INT2FIX((int)(mode)) \
)
#define INT2FIX(i)
static ID id_BigDecimal_exception_mode
Definition: bigdecimal.c:47
VALUE rb_thread_current(void)
Definition: thread.c:2405
VALUE mode
Definition: tcltklib.c:1668
VALUE rb_thread_local_aset(VALUE, ID, VALUE)
Definition: thread.c:2858

Definition at line 3382 of file bigdecimal.c.

Referenced by VpGetException(), and VpSetException().

#define rmpd_set_thread_local_precision_limit (   limit)
Value:
SIZET2NUM(limit) \
)
#define SIZET2NUM(v)
VALUE rb_thread_current(void)
Definition: thread.c:2405
static ID id_BigDecimal_precision_limit
Definition: bigdecimal.c:49
VALUE rb_thread_local_aset(VALUE, ID, VALUE)
Definition: thread.c:2858

Definition at line 3415 of file bigdecimal.c.

Referenced by VpGetPrecLimit(), and VpSetPrecLimit().

#define rmpd_set_thread_local_rounding_mode (   mode)
Value:
INT2FIX((int)(mode)) \
)
static ID id_BigDecimal_rounding_mode
Definition: bigdecimal.c:48
#define INT2FIX(i)
VALUE rb_thread_current(void)
Definition: thread.c:2405
VALUE mode
Definition: tcltklib.c:1668
VALUE rb_thread_local_aset(VALUE, ID, VALUE)
Definition: thread.c:2858

Definition at line 3452 of file bigdecimal.c.

Referenced by VpGetRoundMode(), and VpSetRoundMode().

#define RRATIONAL_NEGATIVE_P (   x)    RTEST(rb_funcall((x), '<', 1, INT2FIX(0)))

Definition at line 91 of file bigdecimal.c.

Referenced by BigMath_s_log().

#define RRATIONAL_ZERO_P (   x)
Value:
(FIXNUM_P(RRATIONAL(x)->num) && \
FIX2LONG(RRATIONAL(x)->num) == 0)
#define FIXNUM_P(f)
#define FIX2LONG(x)
#define RRATIONAL(obj)

Definition at line 86 of file bigdecimal.c.

Referenced by BigMath_s_log().

#define SAVE (   p)    PUSH(p->obj);
#define SIGNED_VALUE_MAX   INTPTR_MAX

Definition at line 40 of file bigdecimal.c.

Referenced by VpCtoV().

#define SIGNED_VALUE_MIN   INTPTR_MIN

Definition at line 41 of file bigdecimal.c.

#define StrCmp (   x,
 
)    strcmp(x,y)

Definition at line 3320 of file bigdecimal.c.

Referenced by VpAlloc().

#define VpAllocReal (   prec)    (Real *)VpMemAlloc(offsetof(Real, frac) + (prec) * sizeof(BDIGIT))

Definition at line 579 of file bigdecimal.c.

Referenced by VpAlloc().

#define VpReallocReal (   ptr,
  prec 
)    (Real *)VpMemRealloc((ptr), offsetof(Real, frac) + (prec) * sizeof(BDIGIT))

Definition at line 580 of file bigdecimal.c.

Referenced by VpCopy().

Function Documentation

static int AddExponent ( Real a,
SIGNED_VALUE  n 
)
static
static VALUE BigDecimal_abs ( VALUE  self)
static
static VALUE BigDecimal_add ( VALUE  self,
VALUE  r 
)
static
static VALUE BigDecimal_add2 ( VALUE  self,
VALUE  b,
VALUE  n 
)
static
static VALUE BigDecimal_ceil ( int  argc,
VALUE argv,
VALUE  self 
)
static
static void BigDecimal_check_num ( Real p)
static
static VALUE BigDecimal_coerce ( VALUE  self,
VALUE  other 
)
static
static VALUE BigDecimal_comp ( VALUE  self,
VALUE  r 
)
static

Definition at line 1058 of file bigdecimal.c.

References BigDecimalCmp().

Referenced by Init_bigdecimal().

static void BigDecimal_delete ( void pv)
static

Definition at line 131 of file bigdecimal.c.

References VpFree().

static VALUE BigDecimal_div2 ( VALUE  self,
VALUE  b,
VALUE  n 
)
inlinestatic
static VALUE BigDecimal_div3 ( int  argc,
VALUE argv,
VALUE  self 
)
static

Definition at line 1506 of file bigdecimal.c.

References b, BigDecimal_div2(), n, and rb_scan_args().

Referenced by Init_bigdecimal().

static VALUE BigDecimal_divmod ( VALUE  self,
VALUE  r 
)
static

Definition at line 1451 of file bigdecimal.c.

References BigDecimal_DoDivmod(), DoSomeOne, ENTER, mod, NULL, rb_assoc_new(), rb_intern, SAVE, and ToValue().

Referenced by Init_bigdecimal().

static VALUE BigDecimal_divremain ( VALUE  self,
VALUE  r,
Real **  dv,
Real **  rv 
)
static
static VALUE BigDecimal_DoDivmod ( VALUE  self,
VALUE  r,
Real **  div,
Real **  mod 
)
static
static VALUE BigDecimal_double_fig ( VALUE  self)
static

Definition at line 289 of file bigdecimal.c.

References INT2FIX, and VpDblFig.

Referenced by Init_bigdecimal().

static VALUE BigDecimal_dump ( int  argc,
VALUE argv,
VALUE  self 
)
static
static VALUE BigDecimal_eq ( VALUE  self,
VALUE  r 
)
static

Definition at line 1074 of file bigdecimal.c.

References BigDecimalCmp().

Referenced by BigDecimal_power(), and Init_bigdecimal().

static VALUE BigDecimal_exponent ( VALUE  self)
static

Definition at line 2017 of file bigdecimal.c.

References e, GetVpValue(), INT2NUM, and VpExponent10().

Referenced by Init_bigdecimal().

static VALUE BigDecimal_fix ( VALUE  self)
static
static VALUE BigDecimal_floor ( int  argc,
VALUE argv,
VALUE  self 
)
static
static VALUE BigDecimal_frac ( VALUE  self)
static

Definition at line 1750 of file bigdecimal.c.

References a, c, ENTER, GetVpValue(), GUARD_OBJ, mx, Real::Prec, ToValue(), VpBaseFig, VpCreateRbObject(), and VpFrac().

Referenced by Init_bigdecimal().

static VALUE BigDecimal_ge ( VALUE  self,
VALUE  r 
)
static

Definition at line 1126 of file bigdecimal.c.

References BigDecimalCmp().

Referenced by Init_bigdecimal().

static VALUE BigDecimal_global_new ( int  argc,
VALUE argv,
VALUE  self 
)
static
static VALUE BigDecimal_gt ( VALUE  self,
VALUE  r 
)
static

Definition at line 1113 of file bigdecimal.c.

References BigDecimalCmp().

Referenced by Init_bigdecimal().

static VALUE BigDecimal_hash ( VALUE  self)
static
static VALUE BigDecimal_initialize ( int  argc,
VALUE argv,
VALUE  self 
)
static
static VALUE BigDecimal_initialize_copy ( VALUE  self,
VALUE  other 
)
static

Definition at line 2474 of file bigdecimal.c.

References DATA_PTR(), rb_check_typeddata(), and VpCopy().

Referenced by Init_bigdecimal().

static VALUE BigDecimal_inspect ( VALUE  self)
static
static VALUE BigDecimal_IsFinite ( VALUE  self)
static

Definition at line 621 of file bigdecimal.c.

References GetVpValue(), p, Qfalse, Qtrue, VpIsInf, and VpIsNaN.

Referenced by Init_bigdecimal().

static VALUE BigDecimal_IsInfinite ( VALUE  self)
static

Definition at line 611 of file bigdecimal.c.

References GetVpValue(), INT2FIX, p, Qnil, VpIsNegInf, and VpIsPosInf.

Referenced by Init_bigdecimal().

static VALUE BigDecimal_IsNaN ( VALUE  self)
static

Definition at line 600 of file bigdecimal.c.

References GetVpValue(), p, Qfalse, Qtrue, and VpIsNaN.

Referenced by Init_bigdecimal().

static VALUE BigDecimal_le ( VALUE  self,
VALUE  r 
)
static

Definition at line 1100 of file bigdecimal.c.

References BigDecimalCmp().

Referenced by Init_bigdecimal().

static VALUE BigDecimal_limit ( int  argc,
VALUE argv,
VALUE  self 
)
static
static VALUE BigDecimal_load ( VALUE  self,
VALUE  str 
)
static
static VALUE BigDecimal_lt ( VALUE  self,
VALUE  r 
)
static

Definition at line 1087 of file bigdecimal.c.

References BigDecimalCmp().

Referenced by Init_bigdecimal().

static size_t BigDecimal_memsize ( const void ptr)
static

Definition at line 137 of file bigdecimal.c.

References BDIGIT, Real::MaxPrec, and ptr.

static VALUE BigDecimal_mod ( VALUE  self,
VALUE  r 
)
static

Definition at line 1359 of file bigdecimal.c.

References BigDecimal_DoDivmod(), DoSomeOne, ENTER, mod, NULL, SAVE, and ToValue().

Referenced by Init_bigdecimal().

static VALUE BigDecimal_mode ( int  argc,
VALUE argv,
VALUE  self 
)
static
static VALUE BigDecimal_mult ( VALUE  self,
VALUE  r 
)
static
static VALUE BigDecimal_mult2 ( VALUE  self,
VALUE  b,
VALUE  n 
)
static
static VALUE BigDecimal_neg ( VALUE  self)
static

Definition at line 1141 of file bigdecimal.c.

References a, c, ENTER, GetVpValue(), GUARD_OBJ, Real::Prec, ToValue(), VpAsgn(), VpBaseFig, and VpCreateRbObject().

Referenced by Init_bigdecimal().

static Real * BigDecimal_new ( int  argc,
VALUE argv 
)
static
static VALUE BigDecimal_nonzero ( VALUE  self)
static

Definition at line 1048 of file bigdecimal.c.

References a, GetVpValue(), Qnil, and VpIsZero.

Referenced by Init_bigdecimal().

static VALUE BigDecimal_power ( int  argc,
VALUE argv,
VALUE  self 
)
static
static VALUE BigDecimal_power_op ( VALUE  self,
VALUE  exp 
)
static

Definition at line 2418 of file bigdecimal.c.

References BigDecimal_power().

Referenced by Init_bigdecimal().

static VALUE BigDecimal_prec ( VALUE  self)
static

Definition at line 304 of file bigdecimal.c.

References ENTER, GetVpValue(), GUARD_OBJ, INT2NUM, Real::MaxPrec, obj, p, Real::Prec, rb_assoc_new(), and VpBaseFig.

Referenced by Init_bigdecimal().

static VALUE BigDecimal_remainder ( VALUE  self,
VALUE  r 
)
static

Definition at line 1422 of file bigdecimal.c.

References BigDecimal_divremain(), d, f, NIL_P(), and ToValue().

Referenced by Init_bigdecimal().

static VALUE BigDecimal_round ( int  argc,
VALUE argv,
VALUE  self 
)
static
static VALUE BigDecimal_s_allocate ( VALUE  klass)
static

Definition at line 2424 of file bigdecimal.c.

References NULL, Real::obj, and VpNewRbClass().

Referenced by Init_bigdecimal().

static VALUE BigDecimal_save_exception_mode ( VALUE  self)
static

Definition at line 2619 of file bigdecimal.c.

References Qnil, rb_jump_tag(), rb_protect(), rb_yield(), ret, state, VpGetException(), and VpSetException().

Referenced by Init_bigdecimal().

static VALUE BigDecimal_save_limit ( VALUE  self)
static

Definition at line 2669 of file bigdecimal.c.

References Qnil, rb_jump_tag(), rb_protect(), rb_yield(), ret, state, VpGetPrecLimit(), and VpSetPrecLimit().

Referenced by Init_bigdecimal().

static VALUE BigDecimal_save_rounding_mode ( VALUE  self)
static

Definition at line 2644 of file bigdecimal.c.

References Qnil, rb_jump_tag(), rb_protect(), rb_yield(), ret, state, VpGetRoundMode(), and VpSetRoundMode().

Referenced by Init_bigdecimal().

static VALUE BigDecimal_sign ( VALUE  self)
static

Definition at line 2594 of file bigdecimal.c.

References GetVpValue(), INT2FIX, s, and Real::sign.

Referenced by Init_bigdecimal().

static VALUE BigDecimal_split ( VALUE  self)
static
static VALUE BigDecimal_sqrt ( VALUE  self,
VALUE  nFig 
)
static
static VALUE BigDecimal_sub ( VALUE  self,
VALUE  r 
)
static
static VALUE BigDecimal_sub2 ( VALUE  self,
VALUE  b,
VALUE  n 
)
static
static VALUE BigDecimal_to_f ( VALUE  self)
static
static VALUE BigDecimal_to_i ( VALUE  self)
static
static VALUE BigDecimal_to_r ( VALUE  self)
static
static VALUE BigDecimal_to_s ( int  argc,
VALUE argv,
VALUE  self 
)
static
static VALUE BigDecimal_truncate ( int  argc,
VALUE argv,
VALUE  self 
)
static
static VALUE BigDecimal_uplus ( VALUE  self)
static

Definition at line 823 of file bigdecimal.c.

Referenced by Init_bigdecimal().

static VALUE BigDecimal_version ( VALUE  self)
static

Definition at line 103 of file bigdecimal.c.

References rb_str_new2.

Referenced by Init_bigdecimal().

static VALUE BigDecimal_zero ( VALUE  self)
static

Definition at line 1040 of file bigdecimal.c.

References a, GetVpValue(), Qfalse, Qtrue, and VpIsZero.

Referenced by Init_bigdecimal().

static VALUE BigDecimalCmp ( VALUE  self,
VALUE  r,
char  op 
)
static
static VALUE BigMath_s_exp ( VALUE  klass,
VALUE  x,
VALUE  vprec 
)
static
static VALUE BigMath_s_log ( VALUE  klass,
VALUE  x,
VALUE  vprec 
)
static
static void cannot_be_coerced_into_BigDecimal ( VALUE  exc_class,
VALUE  v 
)
static
static unsigned short check_rounding_mode ( VALUE const  v)
static
for ( v /=  shifter = 1)

Definition at line 5816 of file bigdecimal.c.

References BASE, and Real::frac.

for ( i  = 0; i <= n; ++i)

Definition at line 5917 of file bigdecimal.c.

References Real::exponent, Real::frac, ix, s, SIGNED_VALUE, VpGetSign, VpRdup(), VpSetOne, and VpSetSign.

static size_t GetAddSubPrec ( Real a,
Real b 
)
static
static SIGNED_VALUE GetPositiveInt ( VALUE  v)
static
static Real* GetVpValue ( VALUE  v,
int  must 
)
static
static Real* GetVpValueWithPrec ( VALUE  v,
long  prec,
int  must 
)
static
GUARD_OBJ ( a  ,
GetVpValue(self, 1)   
)
GUARD_OBJ ( c,
VpCreateRbObject(mx,"#0")   
)
GUARD_OBJ ( res,
VpCreateRbObject((mx+1)*2+(VpBaseFig()+1),"#0")   
)
if ( RB_TYPE_P(r, T_FLOAT )

Definition at line 1202 of file bigdecimal.c.

References DBL_DIG, and GetVpValueWithPrec().

else if ( RB_TYPE_P(r, T_RATIONAL )

Definition at line 1205 of file bigdecimal.c.

References GetVpValueWithPrec(), Real::Prec, and VpBaseFig.

if ( b)
Initial value:
{
return FAIL_Tk_Init
#define FAIL_Tk_Init
Definition: stubs.h:32

Definition at line 549 of file stubs.c.

if ( mx< b->Prec+  vabsb->exponent)
if ( NIL_Pr)
if ( VpHasVal(div )

Definition at line 1260 of file bigdecimal.c.

References BDIGIT, BDIGIT_DBL, Real::frac, Real::Prec, VpBaseVal, and VpInternalRound().

if ( VpToSpecialString(a, psz, fPlus)  )

Definition at line 5213 of file bigdecimal.c.

References BASE1, Real::frac, i, m, sprintf(), and strlen().

if ( fFmt  )

Definition at line 5249 of file bigdecimal.c.

if ( )

Definition at line 5800 of file bigdecimal.c.

References nf, VP_ROUND_CEIL, VP_ROUND_FLOOR, VpGetSign, and VpSetZero.

if ( (size_t) ix >=y->  Prec)
if ( exptoadd  ,
 
)

Definition at line 5935 of file bigdecimal.c.

References BASE, BASE_FIG, Real::exponent, exptoadd, Real::frac, and SIGNED_VALUE.

if ( VpHasValy)
void Init_bigdecimal ( void  )

Definition at line 3080 of file bigdecimal.c.

References arg, BigDecimal_abs(), BigDecimal_add(), BigDecimal_add2(), BigDecimal_ceil(), BigDecimal_coerce(), BigDecimal_comp(), BigDecimal_div3(), 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_initialize(), BigDecimal_initialize_copy(), 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_nonzero(), BigDecimal_power(), BigDecimal_power_op(), BigDecimal_prec(), BigDecimal_remainder(), BigDecimal_round(), BigDecimal_s_allocate(), 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_alloc_func(), 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().

static int is_even ( VALUE  x)
inlinestatic

Definition at line 2135 of file bigdecimal.c.

References FIX2LONG, rb_big_pack(), T_BIGNUM, T_FIXNUM, and TYPE.

Referenced by BigDecimal_power().

static int is_integer ( VALUE  x)
inlinestatic

Definition at line 2064 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)
inlinestatic
static int is_negative ( VALUE  x)
inlinestatic
static int is_one ( VALUE  x)
inlinestatic

Definition at line 2110 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().

static int is_zero ( VALUE  x)
inlinestatic

Definition at line 2087 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().

memset ( y->frac+ix 1,
,
(y->Prec-(ix+1))*sizeof(BDIGIT  
)

Referenced by alloc_addrinfo(), argf_initialize(), asn1time_to_time(), bary_pack(), bary_unpack_internal(), big2str_karatsuba(), console_emulator_p(), CreateChild(), dh_generate(), dsa_generate(), enc_pred_char(), enc_register_at(), enc_succ_char(), enc_table_expand(), EVP_MD_CTX_cleanup(), EVP_MD_CTX_create(), EVP_MD_CTX_init(), fbuffer_alloc(), fiber_t_alloc(), fill_random_seed(), flo_to_s(), flock_winnt(), fole_each(), gc_setup_mark_bits(), get_version(), getpage(), HMAC_CTX_cleanup(), init_randomseed(), join_argv(), makroom(), ole_create_dcom(), ole_invoke(), ole_invoke2(), ole_propertyput(), ossl_asn1_get_asn1type(), ossl_cipher_init(), ossl_cipher_initialize(), overlapped_socket_io(), PEM_def_callback(), rb_big2str0(), rb_dlcfunc_call(), rb_dlptr_malloc(), rb_econv_convert0(), rb_fiddle_ptr_malloc(), rb_file_expand_path_internal(), rb_iseq_disasm(), rb_objspace_alloc(), rb_str_format(), rb_str_justify(), rb_strftime_with_timespec(), rb_w32_asynchronize(), rb_w32_getsockname(), rbtime2vtdate(), recvmsg(), rgengc_mark_and_rememberset_clear(), RMD160_Finish(), RMD160_Update(), rsa_generate(), sdbm_firstkey(), sdbm_prep(), sendmsg(), setup_overlapped(), socketpair_internal(), sockopt_s_linger(), splpage(), strio_ungetc(), unescape_escaped_nonascii(), VpCtoV(), VpDtoV(), VpMemAlloc(), VpMult(), w_float(), winnt_stat(), yaml_document_delete(), yaml_emitter_delete(), yaml_emitter_dump(), yaml_emitter_initialize(), yaml_event_delete(), yaml_parser_delete(), yaml_parser_initialize(), yaml_parser_load(), yaml_parser_parse(), yaml_parser_scan(), yaml_string_extend(), and yaml_token_delete().

NORETURN ( static void   cannot_be_coerced_into_BigDecimalVALUE, VALUE)
static double One ( void  )
static
static VALUE rmpd_power_by_big_decimal ( Real const x,
Real const exp,
ssize_t const  n 
)
static
SAVE ( b  )
SAVE ( c  )
SAVE ( res  )
SAVE ( div  )
sprintf ( psz  ,
"E%"  PRIdSIZE,
ex   
)
switch ( f  )
static VALUE ToValue ( Real p)
static
return ToValue ( c  )
static BDIGIT VpAddAbs ( Real a,
Real b,
Real c 
)
static

Definition at line 4172 of file bigdecimal.c.

References av, BASE, BDIGIT, bp, cp, Real::frac, VpAsgn(), and VpSetPTR().

Referenced by VpAddSub().

VP_EXPORT size_t VpAddSub ( Real c,
Real a,
Real b,
int  operation 
)
VP_EXPORT Real* VpAlloc ( size_t  mx,
const char *  szVal 
)
VP_EXPORT size_t VpAsgn ( Real c,
Real a,
int  isw 
)
VP_EXPORT int VpComp ( Real a,
Real b 
)

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().

static Real * VpCopy ( Real pv,
Real const *const  x 
)
static
VP_EXPORT Real* VpCreateRbObject ( size_t  mx,
const char *  str 
)
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 
)
VP_EXPORT size_t VpDivd ( Real c,
Real r,
Real a,
Real b 
)
VP_EXPORT void VpDtoV ( Real m,
double  d 
)
VP_EXPORT int VpException ( unsigned short  f,
const char *  str,
int  always 
)
VP_EXPORT ssize_t VpExponent10 ( Real a)
static void VpFormatSt ( char *  psz,
size_t  fFmt 
)
static

Definition at line 5081 of file bigdecimal.c.

References i, ISSPACE, memmove(), nf, and strlen().

VP_EXPORT void VpFrac ( Real y,
Real x 
)
VP_EXPORT void VpFree ( Real pv)

Definition at line 3360 of file bigdecimal.c.

References getchar, NULL, and xfree.

Referenced by BigDecimal_delete(), BigDecimal_initialize(), VpMult(), VpPower(), and VpSqrt().

VP_EXPORT double VpGetDoubleNaN ( void  )

Definition at line 3541 of file bigdecimal.c.

References Zero().

Referenced by VpInit(), and VpVtoD().

VP_EXPORT double VpGetDoubleNegInf ( void  )

Definition at line 3557 of file bigdecimal.c.

References One(), and Zero().

Referenced by BigDecimal_to_f(), VpGetDoubleNegZero(), VpInit(), and VpVtoD().

VP_EXPORT double VpGetDoubleNegZero ( void  )

Definition at line 3565 of file bigdecimal.c.

References One(), and VpGetDoubleNegInf().

Referenced by VpInit(), and VpVtoD().

VP_EXPORT double VpGetDoublePosInf ( void  )

Definition at line 3549 of file bigdecimal.c.

References One(), and Zero().

Referenced by BigDecimal_to_f(), VpInit(), and VpVtoD().

static unsigned short VpGetException ( void  )
static
VP_EXPORT size_t VpGetPrecLimit ( void  )
VP_EXPORT unsigned short VpGetRoundMode ( void  )
VP_EXPORT size_t VpInit ( BDIGIT  BaseVal)
static void VpInternalRound ( Real c,
size_t  ixDigit,
BDIGIT  vPrev,
BDIGIT  v 
)
static
static int VpIsDefOP ( Real c,
Real a,
Real b,
int  sw 
)
static
VP_EXPORT int VpIsRoundMode ( unsigned short  n)
static int VpLimitRound ( Real c,
size_t  ixDigit 
)
static

Definition at line 5973 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 3336 of file bigdecimal.c.

References memset(), p, VP_EXCEPTION_MEMORY, VpException(), and xmalloc.

VP_EXPORT void* VpMemRealloc ( void ptr,
size_t  mb 
)

Definition at line 3350 of file bigdecimal.c.

References p, VP_EXCEPTION_MEMORY, VpException(), and xrealloc.

VP_EXPORT size_t VpMult ( Real c,
Real a,
Real b 
)
VP_EXPORT Real* VpNewRbClass ( size_t  mx,
const char *  str,
VALUE  klass 
)

Definition at line 564 of file bigdecimal.c.

References Real::obj, TypedData_Wrap_Struct, and VpAlloc().

Referenced by BigDecimal_load(), and BigDecimal_s_allocate().

static int VpNmlz ( Real a)
static
VpNmlz ( )
VP_EXPORT size_t VpNumOfChars ( Real vp,
const char *  pszFmt 
)
VP_EXPORT Real* VpOne ( void  )

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 
)
static int VpRdup ( Real m,
size_t  ind_m 
)
static

Definition at line 6034 of file bigdecimal.c.

References AddExponent(), BASE, BDIGIT, Real::frac, Real::Prec, and VpNmlz().

Referenced by for(), and VpInternalRound().

static void VpSetException ( unsigned short  f)
static
VP_EXPORT size_t VpSetPrecLimit ( size_t  n)
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 4383 of file bigdecimal.c.

References AddExponent(), assert, BASE_FIG, Real::exponent, Real::frac, Max, Real::MaxPrec, Real::Prec, and VpGetPrecLimit().

Referenced by VpAddAbs(), and VpSubAbs().

VP_EXPORT unsigned short VpSetRoundMode ( unsigned short  n)
VP_EXPORT int VpSqrt ( Real y,
Real x 
)
static BDIGIT VpSubAbs ( Real a,
Real b,
Real c 
)
static

Definition at line 4267 of file bigdecimal.c.

References av, BASE, BDIGIT, bp, cp, Real::frac, VpAsgn(), and VpSetPTR().

Referenced by VpAddSub().

VP_EXPORT void VpSzMantissa ( Real a,
char *  psz 
)
VP_EXPORT int VpVtoD ( double *  d,
SIGNED_VALUE e,
Real m 
)
while ( a->frac/  shift[0] = = 0)

Definition at line 5241 of file bigdecimal.c.

References ex.

Referenced by addrinfo_mdump(), ruby_vm_run_at_exit_hooks(), and VpComp().

while ( psz  [-1] = = '0')

Definition at line 5245 of file bigdecimal.c.

while ( (v/=10)!  = 0)

Definition at line 5959 of file bigdecimal.c.

static double Zero ( void  )
static

Variable Documentation

* a = NULL

Definition at line 1198 of file bigdecimal.c.

Referenced by addrinfo_ipv4_loopback_p(), addrinfo_ipv4_multicast_p(), addrinfo_ipv4_private_p(), assert_array(), BigDecimal_abs(), BigDecimal_add(), BigDecimal_ceil(), BigDecimal_DoDivmod(), BigDecimal_fix(), BigDecimal_floor(), BigDecimal_frac(), BigDecimal_mult(), BigDecimal_neg(), BigDecimal_nonzero(), BigDecimal_round(), BigDecimal_sqrt(), BigDecimal_sub(), BigDecimal_to_i(), BigDecimal_to_r(), BigDecimal_truncate(), BigDecimal_zero(), BigDecimalCmp(), bmcall(), c_civil_to_jd(), c_jd_to_civil(), c_jd_to_commercial(), calc_wday(), cdhash_hash(), cmp_equal(), d_lite_marshal_dump(), date_s__load(), date_zone_to_diff(), diff(), do_coerce(), f_addsub(), fix_divmod(), fix_minus(), fix_mul(), fix_plus(), fix_pow(), flo_cmp(), flo_divmod(), flo_eq(), flo_eql(), flo_ge(), flo_gt(), flo_le(), flo_lt(), gcd_timetick_int(), genrand_real(), genrand_real2(), int_pair_to_real_inclusive(), intrcmp(), isLegalUTF8(), jisx0301_date(), long_mul(), md5_process(), memcmp(), mmrot3_(), mmswap_(), mult(), multadd(), nucomp_abs(), nucomp_marshal_dump(), nurat_marshal_dump(), nurat_rationalize(), opt_eq_func(), ossl_pkcs7_copy(), ossl_x509_copy(), ossl_x509crl_copy(), ossl_x509req_copy(), p_gamma(), pack_unpack(), q_gamma(), quo(), rb_econv_init_by_convpath_i(), rb_flt_rationalize(), rb_flt_rationalize_with_prec(), rb_iseq_parameters(), rb_obj_write(), rb_obj_written(), rb_Rational(), rb_time_unmagnify(), rb_time_unmagnify_to_float(), ripper_token2eventid(), rsock_addrinfo_new(), rt_complete_frags(), SHA1_Transform(), SHA256_Transform(), SHA512_Transform(), sort_1(), sort_2(), sort_by_cmp(), st_foreach_safe(), strscan_inspect(), strstr(), swap_node(), time_round(), ulp(), unnamed_parameters(), vm_exec_core(), VpAddSub(), VpMult(), wcmp(), wi_mul(), and wquo().

B b = in[1]

Definition at line 1198 of file bigdecimal.c.

Referenced by big2str_karatsuba(), BigDecimal_add(), BigDecimal_coerce(), BigDecimal_div3(), BigDecimal_DoDivmod(), BigDecimal_mult(), BigDecimal_sub(), BigDecimalCmp(), c_civil_to_jd(), c_jd_to_civil(), d2b(), date__strptime_internal(), date_zone_to_diff(), diff(), f_addsub(), f_round_common(), fix_divmod(), fix_minus(), fix_mul(), fix_plus(), fix_pow(), fix_to_s(), flo_cmp(), flo_divmod(), flo_eq(), flo_eql(), flo_ge(), flo_gt(), flo_le(), flo_lt(), gcd_timetick_int(), genrand_real(), genrand_real2(), i2b(), int_pair_to_real_inclusive(), intcmp(), is_internal_cmd(), long_mul(), md5_process(), memcmp(), mmrot3_(), mmswap_(), mult(), multadd(), new_args_tail_gen(), nurat_rationalize(), opt_eq_func(), ossl_bn_is_bit_set(), ossl_pkcs7_copy(), ossl_x509_copy(), ossl_x509crl_copy(), ossl_x509req_copy(), pack_unpack(), parse_comp(), parse_eu_cb(), parse_us_cb(), pow5mult(), quo(), range_each_func(), range_include(), range_max(), range_min(), range_size(), range_step(), range_step_size(), rb_any_cmp(), rb_big_to_s(), rb_file_expand_path_internal(), rb_fix2str(), rb_flt_rationalize(), rb_flt_rationalize_with_prec(), rb_hash_set_default_proc(), rb_obj_write(), rb_range_beg_len(), rb_range_values(), rb_reg_expr_str(), rb_str_to_i(), rb_str_upto(), rb_time_unmagnify(), rb_time_unmagnify_to_float(), read_comp(), read_digits(), ruby_dtoa(), ruby_strtoul(), s2b(), SHA1_Transform(), SHA256_Transform(), SHA512_Transform(), sort_1(), sort_2(), sort_by_cmp(), strscan_inspect(), strstr(), swap_node(), time_round(), unescape_unicode(), valid_range_p(), vm_caller_setup_args(), vm_exec_core(), VpAddSub(), VpMult(), wcmp(), wi_mul(), and wquo().

const rb_data_type_t BigDecimal_data_type
static
Initial value:
= {
"BigDecimal",
}
static void BigDecimal_delete(void *pv)
Definition: bigdecimal.c:131
static size_t BigDecimal_memsize(const void *ptr)
Definition: bigdecimal.c:137
#define RUBY_TYPED_FREE_IMMEDIATELY
#define NULL
Definition: _sdbm.c:102

Definition at line 143 of file bigdecimal.c.

Real * c =NULL

Definition at line 1223 of file bigdecimal.c.

Referenced by add_activated_refinement(), add_char_opt_map_info(), add_ctype_to_cc(), argf_readbyte(), bary_mul_karatsuba(), bary_sparse_p(), bary_sq_fast(), BigDecimal_abs(), BigDecimal_add(), BigDecimal_ceil(), BigDecimal_DoDivmod(), BigDecimal_fix(), BigDecimal_floor(), BigDecimal_frac(), BigDecimal_mult(), BigDecimal_neg(), BigDecimal_round(), BigDecimal_sqrt(), BigDecimal_sub(), BigDecimal_truncate(), bm_init_skip(), broken_getc(), broken_ungetc(), c_jd_to_civil(), cap_ungetc(), class_or_module_required(), cmp_eq(), cmp_ge(), cmp_gt(), cmp_le(), cmp_lt(), conv_backslash_value(), convert_UTF8_to_JSON(), date__strptime_internal(), dbl2big(), diff(), dump_append_string_value(), enc_pred_char(), enc_strlen(), enc_succ_alnum_char(), enc_succ_char(), f_addsub(), f_cmp(), fetch_char_property_to_ctype(), fetch_escaped_value(), fetch_name(), fetch_name_with_level(), fetch_range_quantifier(), fetch_token(), fetch_token_in_cc(), find_dirsep(), fix_minus(), fix_plus(), fmt_setup(), getdbit(), has_extra_methods(), has_magic(), int_chr(), int_downto(), int_upto(), intern_str(), io_bufread(), is_internal_cmd(), is_onechar_cclass(), iso2022jp_check_conv(), load_file_internal(), long_mul(), md5_process(), mime_integrity(), mime_putc(), mime_ungetc(), mime_ungetc_buf(), mimeout_addchar(), mmrot3_(), month_arg(), mult(), nfc_getc(), nfc_ungetc(), nkf_buf_push(), noconvert(), node_new_str_raw_char(), node_str_cat_char(), numchar_getc(), numchar_ungetc(), nurat_rationalize_internal(), onig_reduce_nested_quantifier(), onig_scan_unsigned_number(), onigenc_mbn_mbc_to_code(), onigenc_with_ascii_strncmp(), onigenc_with_ascii_strnicmp(), original_module(), pack_pack(), pack_unpack(), parse_enclose(), parse_posix_bracket(), parser_here_document(), parser_heredoc_identifier(), parser_nextc(), parser_number_literal_suffix(), parser_parse_string(), parser_peek_variable_name(), parser_prepare(), parser_read_escape(), parser_regx_options(), parser_tok_hex(), parser_tokadd_escape(), parser_tokadd_mbchar(), parser_tokadd_string(), parser_yylex(), path_inspect(), proc_options(), quo(), r_byte(), r_le(), r_long(), r_object0(), range_each_func(), range_max(), range_min(), rb_clock_getres(), rb_clock_gettime(), rb_cstr_to_inum(), rb_enc_ascget(), rb_enc_strlen_cr(), rb_gzreader_each_byte(), rb_gzreader_each_char(), rb_gzwriter_putc(), rb_io_each_char(), rb_io_each_codepoint(), rb_io_getbyte(), rb_io_getline_1(), rb_io_putc(), rb_io_readbyte(), rb_io_readchar(), rb_method_name_error(), rb_nkf_putchar(), rb_num_coerce_relop(), rb_obj_inspect(), rb_path_to_class(), rb_reg_expr_str(), rb_reg_quote(), rb_reg_regsub(), rb_str_buf_cat_ascii(), rb_str_capitalize_bang(), rb_str_count(), rb_str_delete_bang(), rb_str_downcase_bang(), rb_str_dump(), rb_str_enumerate_codepoints(), rb_str_format(), rb_str_inspect(), rb_str_ord(), rb_str_reverse_bang(), rb_str_rstrip_bang(), rb_str_split_m(), rb_str_squeeze_bang(), rb_str_upcase_bang(), rb_time_unmagnify(), rb_time_unmagnify_to_float(), rb_tolower(), rb_toupper(), rb_undef(), rb_using_refinement(), rb_w32_cmdvector(), rb_w32_getc(), rb_w32_putc(), reg_fragment_setenc_gen(), rmext(), ruby_strtod(), ruby_strtoul(), s3e(), s_oconv(), scan_unsigned_hexadecimal_number(), scan_unsigned_octal_number(), setdbit(), SHA1_Transform(), SHA256_Transform(), SHA512_Transform(), sign_bits(), sip_hash_init(), status_push_ch(), std_ungetc(), str2big_karatsuba(), str2big_normal(), str2big_poweroftwo(), str2big_scan_digits(), str_end_cmp(), str_end_with_asciichar(), strcasehash(), strio_each_byte(), strio_each_char(), strio_each_codepoint(), strio_getbyte(), strio_putc(), strio_readbyte(), strio_readchar(), swap_node(), tr_find(), tr_setup_table(), tr_trans(), trnext(), unescape_nonascii(), update_char_offset(), url_ungetc(), utf8_to_uv(), VpMult(), wi_mul(), wmap_inspect(), wquo(), x0212_shift(), x0212_unshift(), and z_conv().

BDIGIT div = b
BDIGIT e

Definition at line 5209 of file bigdecimal.c.

Referenced by AddExponent(), addrinfo_mdump(), appendline(), BigDecimal_exponent(), BigDecimal_split(), BigDecimal_to_f(), BigDecimal_to_i(), BigDecimalCmp(), build_exception(), c_jd_to_civil(), coderange_scan(), cond0(), date_strftime_with_tmx(), enc_strlen(), enumerator_block_call(), enumerator_each(), env_assoc(), error_print(), establishShell(), flo_to_s(), float_rationalize(), gengo(), getrusage_time(), gmtime_r(), gzreader_charboundary(), Init_ossl_rsa(), inspect_enumerator(), intern_str(), iseq_data_to_ary(), load_encoding(), loaded_feature_path(), localtime_r(), mk_ary_of_str(), n2i(), name_add(), name_find(), nurat_rationalize(), onigenc_str_bytelen_null(), onigenc_strlen_null(), ossl_get_errors(), ossl_make_error(), parse_jis_cb(), pipe_open(), r_object0(), range_each_func(), range_include(), range_max(), range_min(), range_size(), range_step(), range_step_size(), rb_ary_delete(), rb_ary_delete_same(), rb_ary_index(), rb_ary_rindex(), rb_check_backtrace(), rb_chsize(), rb_cstr_to_dbl(), rb_enc_strlen_cr(), rb_enc_symname_type(), rb_feature_p(), rb_file_expand_path_internal(), rb_file_open_internal(), rb_file_s_extname(), rb_flt_rationalize_with_prec(), rb_hash_s_create(), rb_io_extract_modeenc(), rb_io_getline_1(), rb_io_getline_fast(), rb_range_beg_len(), rb_range_values(), rb_reg_regsub(), rb_reg_s_union(), rb_reg_to_s(), rb_str_chomp_bang(), rb_str_end_with(), rb_str_hash(), rb_str_index(), rb_str_lstrip_bang(), rb_str_reverse(), rb_str_reverse_bang(), rb_str_rstrip_bang(), rb_str_scrub(), rb_str_splice(), rb_str_subpos(), rb_str_succ(), rb_str_upto(), rb_strftime_with_timespec(), rb_threadptr_pending_interrupt_include_p(), rescue_callback(), rmext(), rsa_generate(), rsock_inspect_sockaddr(), rt_complete_frags(), ruby_enc_find_basename(), ruby_enc_find_extname(), ruby_strtod(), search_nonascii(), setup_exception(), SHA1_Transform(), SHA256_Transform(), SHA512_Transform(), st_init_table_with_size(), str_nth(), str_nth_len(), str_null_char(), str_rindex(), str_strlen(), strio_getline(), swallow(), syserr_eqq(), timeofday(), VpComp(), VpCtoV(), VpSqrt(), VpSzMantissa(), w32_aspawn_flags(), w32_spawn(), and w_float().

else
Initial value:
{
b = GetVpValue(r, 0)
static Real * GetVpValue(VALUE v, int must)
Definition: bigdecimal.c:276
r
Definition: bigdecimal.c:1212
Real * b
Definition: bigdecimal.c:1198

Definition at line 1208 of file bigdecimal.c.

ex = a->exponent * (ssize_t)BASE_FIG
exptoadd =0

Definition at line 5794 of file bigdecimal.c.

Referenced by if().

volatile const double gOne_ABCED9B4_CE73__00400511F31D = 1.0

Definition at line 3513 of file bigdecimal.c.

Referenced by One().

volatile const double gZero_ABCED9B1_CE73__00400511F31D = 0.0

Definition at line 3512 of file bigdecimal.c.

Referenced by Zero().

ssize_t i

Definition at line 5794 of file bigdecimal.c.

ID id_banker
static

Definition at line 58 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

ID id_BigDecimal_exception_mode
static

Definition at line 47 of file bigdecimal.c.

Referenced by Init_bigdecimal(), and VpGetException().

ID id_BigDecimal_precision_limit
static

Definition at line 49 of file bigdecimal.c.

Referenced by Init_bigdecimal(), and VpGetPrecLimit().

ID id_BigDecimal_rounding_mode
static

Definition at line 48 of file bigdecimal.c.

Referenced by Init_bigdecimal(), and VpGetRoundMode().

ID id_ceil
static

Definition at line 60 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

ID id_ceiling
static

Definition at line 59 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

ID id_default
static

Definition at line 55 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

ID id_down
static

Definition at line 52 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

ID id_eq
static

Definition at line 63 of file bigdecimal.c.

Referenced by Init_bigdecimal(), is_one(), and is_zero().

ID id_floor
static

Definition at line 61 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

ID id_half_down
static

Definition at line 56 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

ID id_half_even
static

Definition at line 57 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

ID id_half_up
static

Definition at line 54 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

ID id_to_r
static

Definition at line 62 of file bigdecimal.c.

Referenced by GetVpValueWithPrec(), and Init_bigdecimal().

ID id_truncate
static

Definition at line 53 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

ID id_up
static

Definition at line 51 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

VP_EXPORT int
Initial value:
{
if (VpIsNaN(a)) {
return 1;
}
if (VpIsPosInf(a)) {
if (fPlus == 1) {
*psz++ = ' ';
}
else if (fPlus == 2) {
*psz++ = '+';
}
sprintf(psz, SZ_INF);
return 1;
}
if (VpIsNegInf(a)) {
return 1;
}
if (VpIsZero(a)) {
if (VpIsPosZero(a)) {
if (fPlus == 1) sprintf(psz, " 0.0");
else if (fPlus == 2) sprintf(psz, "+0.0");
else sprintf(psz, "0.0");
}
else sprintf(psz, "-0.0");
return 1;
}
return 0
Real * a
Definition: bigdecimal.c:1198
#define VpIsPosInf(a)
Definition: bigdecimal.h:294
#define VpIsPosZero(a)
Definition: bigdecimal.h:282
#define SZ_INF
Definition: bigdecimal.h:106
#define VpIsNaN(a)
Definition: bigdecimal.h:290
#define SZ_NINF
Definition: bigdecimal.h:108
sprintf(psz,"E%"PRIdSIZE, ex)
#define VpIsNegInf(a)
Definition: bigdecimal.h:295
#define VpIsZero(a)
Definition: bigdecimal.h:284
#define SZ_NaN
Definition: bigdecimal.h:105

Definition at line 5172 of file bigdecimal.c.

Referenced by add_compile_string_length(), appendline(), ary2ptr_dispparams(), bary_sq_fast(), big_lshift(), big_rshift(), big_shift2(), bigfixize(), bn_rand_range(), BSD_vfprintf(), bsock_setsockopt(), c_civil_to_jd(), c_jd_to_civil(), c_jd_to_weeknum(), calc_tm_yday(), chkpage(), compile_array_(), compile_data_alloc(), compile_massign(), concat_left_node_opt_info(), constat_parse(), d2b(), d_lite_plus(), d_lite_rshift(), date__strptime_internal(), date_strftime_with_tmx(), date_zone_to_diff(), day_num(), decode_year(), dlhandle_sym(), do_ioctl(), do_select(), double2timeval(), enc_names_i(), enumerator_size(), ffs(), fgdbm_delete_if(), fgdbm_has_key(), fiddle_handle_sym(), fill_cbuf(), fill_random_seed(), finish_writeconv(), fitpair(), flo_to_s(), get_char_length_tree1(), gmtime_with_leapsecond(), heap_page_allocate(), if(), Init_enc_set_filesystem_encoding(), integer_pack_fill_dd(), integer_pack_loop_setup(), integer_unpack_num_bdigits_generic(), integer_unpack_num_bdigits_small(), io_binwrite(), io_encname_bom_p(), io_fillbuf(), io_flush_buffer_sync(), io_ungetbyte(), iseq_compile_each(), iseq_set_arguments(), iseq_set_exception_table(), iseq_set_local_table(), make_compile_option(), marshal_load(), mon_num(), nogvl_copy_stream_write(), obj_ivar_each(), offset_to_sec(), ole_invoke2(), ole_vstr2wc(), onig_bbuf_init(), onig_node_str_cat(), onig_scan_unsigned_number(), onigenc_ascii_apply_all_case_fold(), onigenc_with_ascii_strncmp(), onigenc_with_ascii_strnicmp(), options(), ossl_dsa_to_der(), ossl_rsa_to_der(), overlapped_socket_io(), pack_pack(), pack_unpack(), parser_nextc(), parser_parse_string(), parser_yyerror(), poll_child_status(), process_options(), r_byte1_buffered(), r_bytes1(), r_bytes1_buffered(), random_load(), rb_big_lshift(), rb_big_rshift(), rb_dlcfunc_call(), rb_enc_aliases_enc_i(), rb_enc_mbclen(), rb_f_system(), rb_file_expand_path_internal(), rb_file_load_ok(), rb_fix2str(), rb_float_new_inline(), rb_gdbm_delete(), rb_gdbm_fetch2(), rb_gdbm_nextkey(), rb_get_kwargs(), rb_getaddrinfo(), rb_getnameinfo(), rb_id2str(), rb_id_attrset(), rb_io_getline_fast(), rb_io_ungetc(), rb_iseq_translate_threaded_code(), rb_locale_charmap(), rb_mod_define_method(), rb_num_to_uint(), rb_str_buf_cat_escaped_char(), rb_str_drop_bytes(), rb_str_format(), rb_str_inspect(), rb_strftime_with_timespec(), rb_sysopen_internal(), rb_vmdebug_debug_print_pre(), rb_w32_getppid(), rb_w32_inet_pton(), rb_w32_map_errno(), rb_w32_pipe(), rb_w32_select_with_thread(), rb_w32_strerror(), rb_wait_for_single_fd(), read_buffered_data(), recvmsg(), reduce_nodes_gen(), rsa_generate(), rsock_connect(), rsock_inspect_sockaddr(), rsock_s_accept(), ruby_dtoa(), ruby_each_words(), ruby_scan_hex(), ruby_scan_oct(), ruby_snprintf(), ruby_strtod(), ruby_vsnprintf(), scan_unsigned_hexadecimal_number(), sendmsg(), set_bm_backward_skip(), set_bm_skip(), set_optimize_exact_info(), set_optimize_map_info(), SHA256_Final(), SHA256_Update(), SHA512_Last(), SHA512_Update(), socklist_delete(), socklist_lookup(), st_hash(), str2big_karatsuba(), str_end_cmp(), str_end_hash(), swallow(), switch(), thread_fd_close_i(), time_mdump(), time_mload(), time_timespec(), timelocalw(), to_ascii(), tr_trans(), transcode_restartable0(), type_cclass_hash(), udp_send(), vm_define_method(), vm_throw(), w_float(), w_long(), w_object(), yaml_emitter_write_double_quoted_scalar(), yaml_parser_load_mapping(), yaml_parser_load_scalar(), yaml_parser_load_sequence(), yaml_parser_roll_indent(), yaml_parser_scan_block_scalar_breaks(), zstream_run(), and zstream_run_func().

ioffset = nf - ix*(ssize_t)BASE_FIG

Definition at line 5794 of file bigdecimal.c.

ix = nf / (ssize_t)BASE_FIG

Definition at line 5794 of file bigdecimal.c.

Referenced by BigDecimal_div2(), f_mul(), for(), and safe_mul_p().

BDIGIT m
mx = a->Prec + vabs(a->exponent)
n = (ssize_t)BASE_FIG - ioffset - 1

Definition at line 5794 of file bigdecimal.c.

nf = y->exponent * (ssize_t)BASE_FIG

Definition at line 5798 of file bigdecimal.c.

Referenced by BigDecimal_limit(), BigDecimal_to_i(), if(), ruby_strtod(), VpAlloc(), and VpFormatSt().

BDIGIT nn

Definition at line 5209 of file bigdecimal.c.

Referenced by VpSzMantissa().

char* pszSav = psz

Definition at line 5210 of file bigdecimal.c.

return Qnil

Definition at line 1224 of file bigdecimal.c.

r = BigDecimal_divide(&c, &res, &div, self, r)

Definition at line 1212 of file bigdecimal.c.

Referenced by add_code_range_to_buf0(), add_ctype_to_cc(), add_ctype_to_cc_by_range(), add_multi_byte_cclass(), add_opcode_option(), add_opcode_rel_addr(), addrinfo_list_new(), and_cclass(), and_code_range1(), and_code_range_buf(), backtrace_to_location_ary(), backtrace_to_str_ary(), backward_search_range(), bary_mul_balance_with_mulfunc(), bbuf_clone(), bigdivrem(), bigdivrem_restoring(), bigdivrem_single1(), binomial_coefficient(), BN_nnmod(), bracket(), check_type_tree(), class_instance_method_list(), compile_anchor_node(), compile_call(), compile_cclass_node(), compile_enclose_node(), compile_length_string_node(), compile_length_tree(), compile_option_node(), compile_quantifier_node(), compile_range_repeat_node(), compile_string_node(), compile_tree(), compile_tree_empty_check(), compile_tree_n_times(), convert_type(), disable_noname_group_capture(), do_select(), enc_pred_char(), enc_succ_char(), enum_size(), expand_case_fold_make_rem_string(), expand_case_fold_string(), expand_case_fold_string_alt(), f_divide(), f_imul(), fetch_char_property_to_ctype(), fetch_name(), fetch_name_with_level(), fetch_named_backref_token(), fetch_range_quantifier(), fetch_token(), ffs(), finish_writeconv(), fix_minus(), fix_mul(), fix_plus(), fnmatch_helper(), gc_marks(), get_c_time(), get_char_length_tree1(), get_max_match_length(), get_min_match_length(), i_apply_case_fold(), i_names(), Init_RandomSeed(), int_pair_to_real_inclusive(), int_round_0(), int_sip_post_update(), io_binwrite(), io_fillbuf(), io_flush_buffer_sync(), io_getc(), io_unread(), iseq_set_arguments(), m_ajd(), m_amjd(), make_regexp(), match_at(), mime_begin_strict(), minus_dd(), murmur(), new_args_gen(), new_code_range(), next_state_class(), next_state_val(), node_extended_grapheme_cluster(), nogvl_copy_stream_read_write(), noname_disable_map(), not_code_range_buf(), nucomp_expt(), numbered_ref_check(), onig_compile(), onig_match(), onig_names_free(), onig_new(), onig_new_with_source(), onig_new_without_alloc(), onig_parse_make_tree(), onig_region_copy(), onig_region_new(), onig_region_resize_clear(), onig_region_set(), onig_search_gpos(), onigenc_apply_all_case_fold_with_map(), onigenc_ascii_apply_all_case_fold(), onigenc_property_list_add_property(), onigenc_property_list_init(), opobj_inspect(), optimize_node_left(), or_cclass(), or_code_range_buf(), overlapped_socket_io(), parse_branch(), parse_char_class(), parse_char_property(), parse_enclose(), parse_exp(), parse_posix_bracket(), parse_regexp(), parse_subexp(), quantifiers_memory_node_info(), r_le(), r_lt(), r_object0(), rand_int(), rand_range(), rand_start(), range_values(), rb_ary_permutation(), rb_ary_repeated_permutation(), rb_big_divrem_normal(), rb_enc_codepoint_len(), rb_f_rand(), rb_f_srand(), rb_io_each_codepoint(), rb_io_s_pipe(), rb_iseq_parameters(), rb_random_bytes(), rb_random_ulong_limited(), rb_reg_prepare_re(), rb_reset_random_seed(), rb_str_casecmp(), rb_str_strip_bang(), rb_thread_call_with_gvl(), rb_thread_s_handle_interrupt(), rb_w32_accept(), rb_w32_bind(), rb_w32_connect(), rb_w32_gethostbyaddr(), rb_w32_gethostbyname(), rb_w32_gethostname(), rb_w32_getpeername(), rb_w32_getprotobyname(), rb_w32_getprotobynumber(), rb_w32_getservbyname(), rb_w32_getservbyport(), rb_w32_getsockname(), rb_w32_getsockopt(), rb_w32_ioctlsocket(), rb_w32_listen(), rb_w32_select_with_thread(), rb_w32_setsockopt(), rb_w32_shutdown(), rb_w32_wrap_io_handle(), rb_wait_for_single_fd(), renumber_by_map(), ruby_qsort(), select_single(), set_optimize_exact_info(), set_optimize_info_from_tree(), set_rawmode(), set_ttymode(), setup_look_behind(), setup_subexp_call(), setup_tree(), sock_s_getnameinfo(), socketpair_internal(), split_second(), strcat_capa(), strcat_capa_from_static(), strdup_with_null(), subexp_inf_recursive_check(), subexp_inf_recursive_check_trav(), subexp_recursive_check(), subexp_recursive_check_trav(), time_usec(), tr_trans(), update_string_node_case_fold(), valid_civil_p(), valid_commercial_p(), valid_ordinal_p(), valid_weeknum_p(), vm_backtrace_to_ary(), vm_yield_setup_block_args(), vm_yield_setup_block_args_complex(), wadd(), wdiv(), wdivmod(), wmod(), wsplit_p(), wsub(), X509_CRL_sort(), and yield_indexed_values().

VALUE rb_cBigDecimal

Definition at line 44 of file bigdecimal.c.

Referenced by BigDecimal_global_new(), Init_bigdecimal(), and VpCreateRbObject().

VALUE rb_mBigMath

Definition at line 45 of file bigdecimal.c.

Referenced by Init_bigdecimal().

Real * res =NULL
return
shift = BASE1
BDIGIT shifter

Definition at line 5795 of file bigdecimal.c.

v = y->frac[ix]

Definition at line 5795 of file bigdecimal.c.

VALUE
static
Initial value:
{
ENTER(5)
#define ENTER(n)
Definition: bigdecimal.c:66

Definition at line 1196 of file bigdecimal.c.

VP_EXPORT void
Real* VpConstOne
static

Definition at line 3313 of file bigdecimal.c.

Referenced by VpOne().

Real* VpPt5
static

Definition at line 3314 of file bigdecimal.c.