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)
 
static VALUE BigDecimal_divide (Real **c, Real **res, Real **div, VALUE self, VALUE r)
 
static VALUE BigDecimal_div (VALUE self, VALUE r)
 
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 void * VpMemAlloc (size_t mb)
 
VP_EXPORT void * VpMemRealloc (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)
 
VP_EXPORT int VpToSpecialString (Real *a, char *psz, int fPlus)
 
VP_EXPORT void VpToString (Real *a, char *psz, size_t fFmt, int fPlus)
 
VP_EXPORT void VpToFString (Real *a, char *psz, size_t fFmt, int fPlus)
 
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)
 
VP_EXPORT int VpMidRound (Real *y, unsigned short f, ssize_t nf)
 
VP_EXPORT int VpLeftRound (Real *y, unsigned short f, ssize_t nf)
 
VP_EXPORT int VpActiveRound (Real *y, Real *x, unsigned short f, ssize_t nf)
 
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 RealVpConstOne
 
static RealVpPt5
 
volatile const double gZero_ABCED9B1_CE73__00400511F31D = 0.0
 
volatile const double gOne_ABCED9B4_CE73__00400511F31D = 1.0
 

Macro Definition Documentation

◆ BASE

#define BASE   RMPD_BASE

◆ BASE1

#define BASE1   (BASE/10)

◆ BASE_FIG

#define BASE_FIG   RMPD_COMPONENT_FIGURES

◆ BigMath_exp

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

Definition at line 2060 of file bigdecimal.c.

Referenced by rmpd_power_by_big_decimal().

◆ BigMath_log

#define BigMath_log (   x,
 
)    BigMath_s_log(rb_mBigMath, (x), (n))

Definition at line 2061 of file bigdecimal.c.

Referenced by rmpd_power_by_big_decimal().

◆ DBLE_FIG

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

Definition at line 78 of file bigdecimal.c.

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

◆ DoSomeOne

#define DoSomeOne (   x,
  y,
  f 
)    rb_num_coerce_bin(x,y,f)

◆ ENTER

#define ENTER (   n)    volatile VALUE RB_UNUSED_VAR(vStack[n]);int iStack=0

◆ GUARD_OBJ

#define GUARD_OBJ (   p,
 
)    {p=y;SAVE(p);}

◆ HALF_BASE

#define HALF_BASE   (BASE/2)

Definition at line 74 of file bigdecimal.c.

Referenced by VpInit().

◆ is_positive

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

Definition at line 2084 of file bigdecimal.c.

Referenced by BigDecimal_power().

◆ maxnr

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

Definition at line 3315 of file bigdecimal.c.

Referenced by VpSqrt().

◆ MemCmp

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

Definition at line 3319 of file bigdecimal.c.

◆ MUL_OVERFLOW_SIGNED_INTEGER_P

#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

Definition at line 34 of file bigdecimal.c.

Referenced by timetick2integer().

◆ MUL_OVERFLOW_SIGNED_VALUE_P

#define MUL_OVERFLOW_SIGNED_VALUE_P (   a,
 
)    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().

◆ NDEBUG

#define NDEBUG

Definition at line 16 of file bigdecimal.c.

◆ PUSH

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

◆ RBIGNUM_ZERO_P

#define RBIGNUM_ZERO_P (   x)    rb_bigzero_p(x)

Definition at line 82 of file bigdecimal.c.

Referenced by BigMath_s_log().

◆ RMPD_PRECISION_LIMIT_DEFAULT

#define RMPD_PRECISION_LIMIT_DEFAULT   ((size_t)0)

Definition at line 3421 of file bigdecimal.c.

Referenced by VpGetPrecLimit().

◆ rmpd_set_thread_local_exception_mode

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

Definition at line 3382 of file bigdecimal.c.

Referenced by VpGetException(), and VpSetException().

◆ rmpd_set_thread_local_precision_limit

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

Definition at line 3415 of file bigdecimal.c.

Referenced by VpGetPrecLimit(), and VpSetPrecLimit().

◆ rmpd_set_thread_local_rounding_mode

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

Definition at line 3452 of file bigdecimal.c.

Referenced by VpGetRoundMode(), and VpSetRoundMode().

◆ RRATIONAL_NEGATIVE_P

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

◆ RRATIONAL_ZERO_P

#define RRATIONAL_ZERO_P (   x)
Value:
(FIXNUM_P(RRATIONAL(x)->num) && \
FIX2LONG(RRATIONAL(x)->num) == 0)
#define FIXNUM_P(f)
Definition: ruby.h:347
#define RRATIONAL(obj)
Definition: ruby.h:1130

Definition at line 86 of file bigdecimal.c.

Referenced by BigMath_s_log().

◆ SAVE

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

◆ SIGNED_VALUE_MAX

#define SIGNED_VALUE_MAX   INTPTR_MAX

Definition at line 40 of file bigdecimal.c.

Referenced by VpCtoV().

◆ SIGNED_VALUE_MIN

#define SIGNED_VALUE_MIN   INTPTR_MIN

Definition at line 41 of file bigdecimal.c.

◆ StrCmp

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

Definition at line 3320 of file bigdecimal.c.

Referenced by VpAlloc().

◆ VpAllocReal

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

Definition at line 579 of file bigdecimal.c.

Referenced by VpAlloc().

◆ VpReallocReal

#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

◆ AddExponent()

static int AddExponent ( Real a,
SIGNED_VALUE  n 
)
static

◆ BigDecimal_abs()

static VALUE BigDecimal_abs ( VALUE  self)
static

◆ BigDecimal_add()

static VALUE BigDecimal_add ( VALUE  self,
VALUE  r 
)
static

◆ BigDecimal_add2()

static VALUE BigDecimal_add2 ( VALUE  self,
VALUE  b,
VALUE  n 
)
static

◆ BigDecimal_ceil()

static VALUE BigDecimal_ceil ( int  argc,
VALUE argv,
VALUE  self 
)
static

◆ BigDecimal_check_num()

static void BigDecimal_check_num ( Real p)
static

◆ BigDecimal_coerce()

static VALUE BigDecimal_coerce ( VALUE  self,
VALUE  other 
)
static

◆ BigDecimal_comp()

static VALUE BigDecimal_comp ( VALUE  self,
VALUE  r 
)
static

Definition at line 1058 of file bigdecimal.c.

References BigDecimalCmp().

Referenced by Init_bigdecimal().

◆ BigDecimal_delete()

static void BigDecimal_delete ( void *  pv)
static

Definition at line 131 of file bigdecimal.c.

References VpFree().

◆ BigDecimal_div()

static VALUE BigDecimal_div ( VALUE  self,
VALUE  r 
)
static

◆ BigDecimal_div2()

static VALUE BigDecimal_div2 ( VALUE  self,
VALUE  b,
VALUE  n 
)
inlinestatic

◆ BigDecimal_div3()

static VALUE BigDecimal_div3 ( int  argc,
VALUE argv,
VALUE  self 
)
static

Definition at line 1506 of file bigdecimal.c.

References argc, argv, BigDecimal_div2(), and rb_scan_args().

Referenced by Init_bigdecimal().

◆ BigDecimal_divide()

static VALUE BigDecimal_divide ( Real **  c,
Real **  res,
Real **  div,
VALUE  self,
VALUE  r 
)
static

◆ BigDecimal_divmod()

static VALUE BigDecimal_divmod ( VALUE  self,
VALUE  r 
)
static

Definition at line 1451 of file bigdecimal.c.

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

Referenced by Init_bigdecimal().

◆ BigDecimal_divremain()

static VALUE BigDecimal_divremain ( VALUE  self,
VALUE  r,
Real **  dv,
Real **  rv 
)
static

◆ BigDecimal_DoDivmod()

static VALUE BigDecimal_DoDivmod ( VALUE  self,
VALUE  r,
Real **  div,
Real **  mod 
)
static

◆ BigDecimal_double_fig()

static VALUE BigDecimal_double_fig ( VALUE  self)
static

Definition at line 289 of file bigdecimal.c.

References INT2FIX, and VpDblFig.

Referenced by Init_bigdecimal().

◆ BigDecimal_dump()

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

◆ BigDecimal_eq()

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

◆ BigDecimal_exponent()

static VALUE BigDecimal_exponent ( VALUE  self)
static

Definition at line 2017 of file bigdecimal.c.

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

Referenced by Init_bigdecimal().

◆ BigDecimal_fix()

static VALUE BigDecimal_fix ( VALUE  self)
static

◆ BigDecimal_floor()

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

◆ BigDecimal_frac()

static VALUE BigDecimal_frac ( VALUE  self)
static

Definition at line 1750 of file bigdecimal.c.

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

Referenced by Init_bigdecimal().

◆ BigDecimal_ge()

static VALUE BigDecimal_ge ( VALUE  self,
VALUE  r 
)
static

Definition at line 1126 of file bigdecimal.c.

References BigDecimalCmp().

Referenced by Init_bigdecimal().

◆ BigDecimal_global_new()

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

◆ BigDecimal_gt()

static VALUE BigDecimal_gt ( VALUE  self,
VALUE  r 
)
static

Definition at line 1113 of file bigdecimal.c.

References BigDecimalCmp().

Referenced by Init_bigdecimal().

◆ BigDecimal_hash()

static VALUE BigDecimal_hash ( VALUE  self)
static

◆ BigDecimal_initialize()

static VALUE BigDecimal_initialize ( int  argc,
VALUE argv,
VALUE  self 
)
static

◆ BigDecimal_initialize_copy()

static VALUE BigDecimal_initialize_copy ( VALUE  self,
VALUE  other 
)
static

Definition at line 2474 of file bigdecimal.c.

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

Referenced by Init_bigdecimal().

◆ BigDecimal_inspect()

static VALUE BigDecimal_inspect ( VALUE  self)
static

◆ BigDecimal_IsFinite()

static VALUE BigDecimal_IsFinite ( VALUE  self)
static

Definition at line 621 of file bigdecimal.c.

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

Referenced by Init_bigdecimal().

◆ BigDecimal_IsInfinite()

static VALUE BigDecimal_IsInfinite ( VALUE  self)
static

Definition at line 611 of file bigdecimal.c.

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

Referenced by Init_bigdecimal().

◆ BigDecimal_IsNaN()

static VALUE BigDecimal_IsNaN ( VALUE  self)
static

Definition at line 600 of file bigdecimal.c.

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

Referenced by Init_bigdecimal().

◆ BigDecimal_le()

static VALUE BigDecimal_le ( VALUE  self,
VALUE  r 
)
static

Definition at line 1100 of file bigdecimal.c.

References BigDecimalCmp().

Referenced by Init_bigdecimal().

◆ BigDecimal_limit()

static VALUE BigDecimal_limit ( int  argc,
VALUE argv,
VALUE  self 
)
static

◆ BigDecimal_load()

static VALUE BigDecimal_load ( VALUE  self,
VALUE  str 
)
static

◆ BigDecimal_lt()

static VALUE BigDecimal_lt ( VALUE  self,
VALUE  r 
)
static

Definition at line 1087 of file bigdecimal.c.

References BigDecimalCmp().

Referenced by Init_bigdecimal().

◆ BigDecimal_memsize()

static size_t BigDecimal_memsize ( const void *  ptr)
static

Definition at line 137 of file bigdecimal.c.

References BDIGIT, and Real::MaxPrec.

◆ BigDecimal_mod()

static VALUE BigDecimal_mod ( VALUE  self,
VALUE  r 
)
static

Definition at line 1359 of file bigdecimal.c.

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

Referenced by Init_bigdecimal().

◆ BigDecimal_mode()

static VALUE BigDecimal_mode ( int  argc,
VALUE argv,
VALUE  self 
)
static

◆ BigDecimal_mult()

static VALUE BigDecimal_mult ( VALUE  self,
VALUE  r 
)
static

◆ BigDecimal_mult2()

static VALUE BigDecimal_mult2 ( VALUE  self,
VALUE  b,
VALUE  n 
)
static

◆ BigDecimal_neg()

static VALUE BigDecimal_neg ( VALUE  self)
static

Definition at line 1141 of file bigdecimal.c.

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

Referenced by Init_bigdecimal().

◆ BigDecimal_new()

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

◆ BigDecimal_nonzero()

static VALUE BigDecimal_nonzero ( VALUE  self)
static

Definition at line 1048 of file bigdecimal.c.

References GetVpValue(), Qnil, and VpIsZero.

Referenced by Init_bigdecimal().

◆ BigDecimal_power()

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

◆ BigDecimal_power_op()

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

◆ BigDecimal_prec()

static VALUE BigDecimal_prec ( VALUE  self)
static

Definition at line 304 of file bigdecimal.c.

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

Referenced by Init_bigdecimal().

◆ BigDecimal_remainder()

static VALUE BigDecimal_remainder ( VALUE  self,
VALUE  r 
)
static

Definition at line 1422 of file bigdecimal.c.

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

Referenced by Init_bigdecimal().

◆ BigDecimal_round()

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

◆ BigDecimal_s_allocate()

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

◆ BigDecimal_save_exception_mode()

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(), VpGetException(), and VpSetException().

Referenced by Init_bigdecimal().

◆ BigDecimal_save_limit()

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(), VpGetPrecLimit(), and VpSetPrecLimit().

Referenced by Init_bigdecimal().

◆ BigDecimal_save_rounding_mode()

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(), VpGetRoundMode(), and VpSetRoundMode().

Referenced by Init_bigdecimal().

◆ BigDecimal_sign()

static VALUE BigDecimal_sign ( VALUE  self)
static

Definition at line 2594 of file bigdecimal.c.

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

Referenced by Init_bigdecimal().

◆ BigDecimal_split()

static VALUE BigDecimal_split ( VALUE  self)
static

◆ BigDecimal_sqrt()

static VALUE BigDecimal_sqrt ( VALUE  self,
VALUE  nFig 
)
static

◆ BigDecimal_sub()

static VALUE BigDecimal_sub ( VALUE  self,
VALUE  r 
)
static

◆ BigDecimal_sub2()

static VALUE BigDecimal_sub2 ( VALUE  self,
VALUE  b,
VALUE  n 
)
static

◆ BigDecimal_to_f()

static VALUE BigDecimal_to_f ( VALUE  self)
static

◆ BigDecimal_to_i()

static VALUE BigDecimal_to_i ( VALUE  self)
static

◆ BigDecimal_to_r()

static VALUE BigDecimal_to_r ( VALUE  self)
static

◆ BigDecimal_to_s()

static VALUE BigDecimal_to_s ( int  argc,
VALUE argv,
VALUE  self 
)
static

◆ BigDecimal_truncate()

static VALUE BigDecimal_truncate ( int  argc,
VALUE argv,
VALUE  self 
)
static

◆ BigDecimal_uplus()

static VALUE BigDecimal_uplus ( VALUE  self)
static

Definition at line 823 of file bigdecimal.c.

Referenced by Init_bigdecimal().

◆ BigDecimal_version()

static VALUE BigDecimal_version ( VALUE  self)
static

Definition at line 103 of file bigdecimal.c.

References rb_str_new2.

Referenced by Init_bigdecimal().

◆ BigDecimal_zero()

static VALUE BigDecimal_zero ( VALUE  self)
static

Definition at line 1040 of file bigdecimal.c.

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

Referenced by Init_bigdecimal().

◆ BigDecimalCmp()

static VALUE BigDecimalCmp ( VALUE  self,
VALUE  r,
char  op 
)
static

◆ BigMath_s_exp()

static VALUE BigMath_s_exp ( VALUE  klass,
VALUE  x,
VALUE  vprec 
)
static

◆ BigMath_s_log()

static VALUE BigMath_s_log ( VALUE  klass,
VALUE  x,
VALUE  vprec 
)
static

◆ cannot_be_coerced_into_BigDecimal()

static void cannot_be_coerced_into_BigDecimal ( VALUE  exc_class,
VALUE  v 
)
static

◆ check_rounding_mode()

static unsigned short check_rounding_mode ( VALUE const  v)
static

◆ GetAddSubPrec()

static size_t GetAddSubPrec ( Real a,
Real b 
)
static

◆ GetPositiveInt()

static SIGNED_VALUE GetPositiveInt ( VALUE  v)
static

◆ GetVpValue()

static Real* GetVpValue ( VALUE  v,
int  must 
)
static

◆ GetVpValueWithPrec()

static Real* GetVpValueWithPrec ( VALUE  v,
long  prec,
int  must 
)
static

◆ Init_bigdecimal()

void Init_bigdecimal ( void  )

Definition at line 3080 of file bigdecimal.c.

References BigDecimal_abs(), BigDecimal_add(), BigDecimal_add2(), BigDecimal_ceil(), BigDecimal_coerce(), BigDecimal_comp(), BigDecimal_div(), 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().

◆ is_even()

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

◆ is_integer()

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

◆ is_kind_of_BigDecimal()

static int is_kind_of_BigDecimal ( VALUE const  v)
inlinestatic

◆ is_negative()

static int is_negative ( VALUE  x)
inlinestatic

◆ is_one()

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

◆ is_zero()

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

◆ NORETURN()

NORETURN ( static void   cannot_be_coerced_into_BigDecimalVALUE, VALUE)

◆ One()

static double One ( void  )
static

◆ rmpd_power_by_big_decimal()

static VALUE rmpd_power_by_big_decimal ( Real const x,
Real const exp,
ssize_t const  n 
)
static

◆ ToValue()

static VALUE ToValue ( Real p)
static

◆ VpActiveRound()

VP_EXPORT int VpActiveRound ( Real y,
Real x,
unsigned short  f,
ssize_t  nf 
)

◆ VpAddAbs()

static BDIGIT VpAddAbs ( Real a,
Real b,
Real c 
)
static

Definition at line 4172 of file bigdecimal.c.

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

Referenced by VpAddSub().

◆ VpAddSub()

VP_EXPORT size_t VpAddSub ( Real c,
Real a,
Real b,
int  operation 
)

◆ VpAlloc()

VP_EXPORT Real* VpAlloc ( size_t  mx,
const char *  szVal 
)

◆ VpAsgn()

VP_EXPORT size_t VpAsgn ( Real c,
Real a,
int  isw 
)

◆ VpComp()

VP_EXPORT int VpComp ( Real a,
Real b 
)

Definition at line 4875 of file bigdecimal.c.

References Real::exponent, Real::frac, Real::Prec, Real::sign, val, VpGetSign, VpIsDef, VpIsNaN, and VpIsZero.

Referenced by BigDecimalCmp().

◆ VpCopy()

static Real * VpCopy ( Real pv,
Real const *const  x 
)
static

◆ VpCreateRbObject()

VP_EXPORT Real* VpCreateRbObject ( size_t  mx,
const char *  str 
)

◆ VpCtoV()

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 
)

◆ VpDivd()

VP_EXPORT size_t VpDivd ( Real c,
Real r,
Real a,
Real b 
)

◆ VpDtoV()

VP_EXPORT void VpDtoV ( Real m,
double  d 
)

◆ VpException()

VP_EXPORT int VpException ( unsigned short  f,
const char *  str,
int  always 
)

◆ VpExponent10()

VP_EXPORT ssize_t VpExponent10 ( Real a)

◆ VpFormatSt()

static void VpFormatSt ( char *  psz,
size_t  fFmt 
)
static

Definition at line 5081 of file bigdecimal.c.

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

Referenced by VpToFString(), and VpToString().

◆ VpFrac()

VP_EXPORT void VpFrac ( Real y,
Real x 
)

◆ VpFree()

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

◆ VpGetDoubleNaN()

VP_EXPORT double VpGetDoubleNaN ( void  )

Definition at line 3541 of file bigdecimal.c.

References Zero().

Referenced by VpInit(), and VpVtoD().

◆ VpGetDoubleNegInf()

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

◆ VpGetDoubleNegZero()

VP_EXPORT double VpGetDoubleNegZero ( void  )

Definition at line 3565 of file bigdecimal.c.

References One(), and VpGetDoubleNegInf().

Referenced by VpInit(), and VpVtoD().

◆ VpGetDoublePosInf()

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

◆ VpGetException()

static unsigned short VpGetException ( void  )
static

◆ VpGetPrecLimit()

VP_EXPORT size_t VpGetPrecLimit ( void  )

◆ VpGetRoundMode()

VP_EXPORT unsigned short VpGetRoundMode ( void  )

◆ VpInit()

VP_EXPORT size_t VpInit ( BDIGIT  BaseVal)

◆ VpInternalRound()

static void VpInternalRound ( Real c,
size_t  ixDigit,
BDIGIT  vPrev,
BDIGIT  v 
)
static

◆ VpIsDefOP()

static int VpIsDefOP ( Real c,
Real a,
Real b,
int  sw 
)
static

◆ VpIsRoundMode()

VP_EXPORT int VpIsRoundMode ( unsigned short  n)

◆ VpLeftRound()

VP_EXPORT int VpLeftRound ( Real y,
unsigned short  f,
ssize_t  nf 
)

◆ VpLimitRound()

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

◆ VpMemAlloc()

VP_EXPORT void* VpMemAlloc ( size_t  mb)

Definition at line 3336 of file bigdecimal.c.

References VP_EXCEPTION_MEMORY, VpException(), and xmalloc.

◆ VpMemRealloc()

VP_EXPORT void* VpMemRealloc ( void *  ptr,
size_t  mb 
)

Definition at line 3350 of file bigdecimal.c.

References VP_EXCEPTION_MEMORY, VpException(), and xrealloc.

◆ VpMidRound()

VP_EXPORT int VpMidRound ( Real y,
unsigned short  f,
ssize_t  nf 
)

◆ VpMult()

VP_EXPORT size_t VpMult ( Real c,
Real a,
Real b 
)

◆ VpNewRbClass()

VP_EXPORT Real* VpNewRbClass ( size_t  mx,
const char *  str,
VALUE  klass 
)

Definition at line 564 of file bigdecimal.c.

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

Referenced by BigDecimal_load(), and BigDecimal_s_allocate().

◆ VpNmlz()

static int VpNmlz ( Real a)
static

◆ VpNumOfChars()

VP_EXPORT size_t VpNumOfChars ( Real vp,
const char *  pszFmt 
)

◆ VpOne()

VP_EXPORT Real* VpOne ( void  )

Definition at line 3780 of file bigdecimal.c.

References VpConstOne.

Referenced by BigDecimal_DoDivmod().

◆ VpPower()

VP_EXPORT int VpPower ( Real y,
Real x,
SIGNED_VALUE  n 
)

◆ VpRdup()

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 VpInternalRound(), and VpMidRound().

◆ VpSetException()

static void VpSetException ( unsigned short  f)
static

Definition at line 3406 of file bigdecimal.c.

References f, and rmpd_set_thread_local_exception_mode.

Referenced by BigDecimal_mode(), and BigDecimal_save_exception_mode().

◆ VpSetPrecLimit()

VP_EXPORT size_t VpSetPrecLimit ( size_t  n)

◆ VpSetPTR()

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

◆ VpSetRoundMode()

VP_EXPORT unsigned short VpSetRoundMode ( unsigned short  n)

◆ VpSqrt()

VP_EXPORT int VpSqrt ( Real y,
Real x 
)

◆ VpSubAbs()

static BDIGIT VpSubAbs ( Real a,
Real b,
Real c 
)
static

Definition at line 4267 of file bigdecimal.c.

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

Referenced by VpAddSub().

◆ VpSzMantissa()

VP_EXPORT void VpSzMantissa ( Real a,
char *  psz 
)

◆ VpToFString()

VP_EXPORT void VpToFString ( Real a,
char *  psz,
size_t  fFmt,
int  fPlus 
)

◆ VpToSpecialString()

VP_EXPORT int VpToSpecialString ( Real a,
char *  psz,
int  fPlus 
)

Definition at line 5170 of file bigdecimal.c.

References SZ_INF, SZ_NaN, SZ_NINF, VpIsNaN, VpIsNegInf, VpIsPosInf, VpIsPosZero, and VpIsZero.

Referenced by VpToFString(), and VpToString().

◆ VpToString()

VP_EXPORT void VpToString ( Real a,
char *  psz,
size_t  fFmt,
int  fPlus 
)

◆ VpVtoD()

VP_EXPORT int VpVtoD ( double *  d,
SIGNED_VALUE e,
Real m 
)

◆ Zero()

static double Zero ( void  )
static

Variable Documentation

◆ BigDecimal_data_type

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

Definition at line 143 of file bigdecimal.c.

Referenced by BigDecimal_global_new(), BigDecimal_initialize(), BigDecimal_initialize_copy(), is_kind_of_BigDecimal(), VpCreateRbObject(), and VpNewRbClass().

◆ gOne_ABCED9B4_CE73__00400511F31D

volatile const double gOne_ABCED9B4_CE73__00400511F31D = 1.0

Definition at line 3513 of file bigdecimal.c.

Referenced by One().

◆ gZero_ABCED9B1_CE73__00400511F31D

volatile const double gZero_ABCED9B1_CE73__00400511F31D = 0.0

Definition at line 3512 of file bigdecimal.c.

Referenced by Zero().

◆ id_banker

ID id_banker
static

Definition at line 58 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

◆ id_BigDecimal_exception_mode

ID id_BigDecimal_exception_mode
static

Definition at line 47 of file bigdecimal.c.

Referenced by Init_bigdecimal(), and VpGetException().

◆ id_BigDecimal_precision_limit

ID id_BigDecimal_precision_limit
static

Definition at line 49 of file bigdecimal.c.

Referenced by Init_bigdecimal(), and VpGetPrecLimit().

◆ id_BigDecimal_rounding_mode

ID id_BigDecimal_rounding_mode
static

Definition at line 48 of file bigdecimal.c.

Referenced by Init_bigdecimal(), and VpGetRoundMode().

◆ id_ceil

ID id_ceil
static

Definition at line 60 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

◆ id_ceiling

ID id_ceiling
static

Definition at line 59 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

◆ id_default

ID id_default
static

Definition at line 55 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

◆ id_down

ID id_down
static

Definition at line 52 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

◆ id_eq

ID id_eq
static

Definition at line 63 of file bigdecimal.c.

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

◆ id_floor

ID id_floor
static

Definition at line 61 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

◆ id_half_down

ID id_half_down
static

Definition at line 56 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

◆ id_half_even

ID id_half_even
static

Definition at line 57 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

◆ id_half_up

ID id_half_up
static

Definition at line 54 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

◆ id_to_r

ID id_to_r
static

Definition at line 62 of file bigdecimal.c.

Referenced by GetVpValueWithPrec(), and Init_bigdecimal().

◆ id_truncate

ID id_truncate
static

Definition at line 53 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

◆ id_up

ID id_up
static

Definition at line 51 of file bigdecimal.c.

Referenced by check_rounding_mode(), and Init_bigdecimal().

◆ rb_cBigDecimal

VALUE rb_cBigDecimal

Definition at line 44 of file bigdecimal.c.

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

◆ rb_mBigMath

VALUE rb_mBigMath

Definition at line 45 of file bigdecimal.c.

Referenced by Init_bigdecimal().

◆ VpConstOne

Real* VpConstOne
static

Definition at line 3313 of file bigdecimal.c.

Referenced by VpInit(), VpOne(), and VpPower().

◆ VpPt5

Real* VpPt5
static

Definition at line 3314 of file bigdecimal.c.

Referenced by VpInit(), and VpSqrt().