mirror of
https://github.com/ruby/ruby.git
synced 2025-09-15 16:44:01 +02:00
parent
e1424c3501
commit
97d4e72e0b
1 changed files with 13 additions and 13 deletions
|
@ -77,7 +77,7 @@ static ID id_half;
|
||||||
#define BASE1 (BASE/10)
|
#define BASE1 (BASE/10)
|
||||||
|
|
||||||
#ifndef DBLE_FIG
|
#ifndef DBLE_FIG
|
||||||
#define DBLE_FIG (DBL_DIG+1) /* figure of double */
|
#define DBLE_FIG rmpd_double_figures() /* figure of double */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef RRATIONAL_ZERO_P
|
#ifndef RRATIONAL_ZERO_P
|
||||||
|
@ -252,7 +252,7 @@ again:
|
||||||
switch(TYPE(v)) {
|
switch(TYPE(v)) {
|
||||||
case T_FLOAT:
|
case T_FLOAT:
|
||||||
if (prec < 0) goto unable_to_coerce_without_prec;
|
if (prec < 0) goto unable_to_coerce_without_prec;
|
||||||
if (prec > DBL_DIG+1) goto SomeOneMayDoIt;
|
if (prec > (long)DBLE_FIG) goto SomeOneMayDoIt;
|
||||||
d = RFLOAT_VALUE(v);
|
d = RFLOAT_VALUE(v);
|
||||||
if (!isfinite(d)) {
|
if (!isfinite(d)) {
|
||||||
pv = VpCreateRbObject(1, NULL);
|
pv = VpCreateRbObject(1, NULL);
|
||||||
|
@ -899,7 +899,7 @@ BigDecimal_coerce(VALUE self, VALUE other)
|
||||||
Real *b;
|
Real *b;
|
||||||
|
|
||||||
if (RB_TYPE_P(other, T_FLOAT)) {
|
if (RB_TYPE_P(other, T_FLOAT)) {
|
||||||
GUARD_OBJ(b, GetVpValueWithPrec(other, DBL_DIG+1, 1));
|
GUARD_OBJ(b, GetVpValueWithPrec(other, DBLE_FIG, 1));
|
||||||
obj = rb_assoc_new(ToValue(b), self);
|
obj = rb_assoc_new(ToValue(b), self);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -957,7 +957,7 @@ BigDecimal_add(VALUE self, VALUE r)
|
||||||
|
|
||||||
GUARD_OBJ(a, GetVpValue(self, 1));
|
GUARD_OBJ(a, GetVpValue(self, 1));
|
||||||
if (RB_TYPE_P(r, T_FLOAT)) {
|
if (RB_TYPE_P(r, T_FLOAT)) {
|
||||||
b = GetVpValueWithPrec(r, DBL_DIG+1, 1);
|
b = GetVpValueWithPrec(r, DBLE_FIG, 1);
|
||||||
}
|
}
|
||||||
else if (RB_TYPE_P(r, T_RATIONAL)) {
|
else if (RB_TYPE_P(r, T_RATIONAL)) {
|
||||||
b = GetVpValueWithPrec(r, a->Prec*VpBaseFig(), 1);
|
b = GetVpValueWithPrec(r, a->Prec*VpBaseFig(), 1);
|
||||||
|
@ -1015,7 +1015,7 @@ BigDecimal_sub(VALUE self, VALUE r)
|
||||||
|
|
||||||
GUARD_OBJ(a, GetVpValue(self,1));
|
GUARD_OBJ(a, GetVpValue(self,1));
|
||||||
if (RB_TYPE_P(r, T_FLOAT)) {
|
if (RB_TYPE_P(r, T_FLOAT)) {
|
||||||
b = GetVpValueWithPrec(r, DBL_DIG+1, 1);
|
b = GetVpValueWithPrec(r, DBLE_FIG, 1);
|
||||||
}
|
}
|
||||||
else if (RB_TYPE_P(r, T_RATIONAL)) {
|
else if (RB_TYPE_P(r, T_RATIONAL)) {
|
||||||
b = GetVpValueWithPrec(r, a->Prec*VpBaseFig(), 1);
|
b = GetVpValueWithPrec(r, a->Prec*VpBaseFig(), 1);
|
||||||
|
@ -1065,7 +1065,7 @@ BigDecimalCmp(VALUE self, VALUE r,char op)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case T_FLOAT:
|
case T_FLOAT:
|
||||||
GUARD_OBJ(b, GetVpValueWithPrec(r, DBL_DIG+1, 0));
|
GUARD_OBJ(b, GetVpValueWithPrec(r, DBLE_FIG, 0));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case T_RATIONAL:
|
case T_RATIONAL:
|
||||||
|
@ -1306,7 +1306,7 @@ BigDecimal_divide(Real **c, Real **res, Real **div, VALUE self, VALUE r)
|
||||||
|
|
||||||
GUARD_OBJ(a, GetVpValue(self, 1));
|
GUARD_OBJ(a, GetVpValue(self, 1));
|
||||||
if (RB_TYPE_P(r, T_FLOAT)) {
|
if (RB_TYPE_P(r, T_FLOAT)) {
|
||||||
b = GetVpValueWithPrec(r, DBL_DIG+1, 1);
|
b = GetVpValueWithPrec(r, DBLE_FIG, 1);
|
||||||
}
|
}
|
||||||
else if (RB_TYPE_P(r, T_RATIONAL)) {
|
else if (RB_TYPE_P(r, T_RATIONAL)) {
|
||||||
b = GetVpValueWithPrec(r, a->Prec*VpBaseFig(), 1);
|
b = GetVpValueWithPrec(r, a->Prec*VpBaseFig(), 1);
|
||||||
|
@ -1372,7 +1372,7 @@ BigDecimal_DoDivmod(VALUE self, VALUE r, Real **div, Real **mod)
|
||||||
|
|
||||||
GUARD_OBJ(a, GetVpValue(self, 1));
|
GUARD_OBJ(a, GetVpValue(self, 1));
|
||||||
if (RB_TYPE_P(r, T_FLOAT)) {
|
if (RB_TYPE_P(r, T_FLOAT)) {
|
||||||
b = GetVpValueWithPrec(r, DBL_DIG+1, 1);
|
b = GetVpValueWithPrec(r, DBLE_FIG, 1);
|
||||||
}
|
}
|
||||||
else if (RB_TYPE_P(r, T_RATIONAL)) {
|
else if (RB_TYPE_P(r, T_RATIONAL)) {
|
||||||
b = GetVpValueWithPrec(r, a->Prec*VpBaseFig(), 1);
|
b = GetVpValueWithPrec(r, a->Prec*VpBaseFig(), 1);
|
||||||
|
@ -1473,7 +1473,7 @@ BigDecimal_divremain(VALUE self, VALUE r, Real **dv, Real **rv)
|
||||||
|
|
||||||
GUARD_OBJ(a, GetVpValue(self, 1));
|
GUARD_OBJ(a, GetVpValue(self, 1));
|
||||||
if (RB_TYPE_P(r, T_FLOAT)) {
|
if (RB_TYPE_P(r, T_FLOAT)) {
|
||||||
b = GetVpValueWithPrec(r, DBL_DIG+1, 1);
|
b = GetVpValueWithPrec(r, DBLE_FIG, 1);
|
||||||
}
|
}
|
||||||
else if (RB_TYPE_P(r, T_RATIONAL)) {
|
else if (RB_TYPE_P(r, T_RATIONAL)) {
|
||||||
b = GetVpValueWithPrec(r, a->Prec*VpBaseFig(), 1);
|
b = GetVpValueWithPrec(r, a->Prec*VpBaseFig(), 1);
|
||||||
|
@ -2685,7 +2685,7 @@ VpNewVarArg(int argc, VALUE *argv)
|
||||||
VpDtoV(pv, d);
|
VpDtoV(pv, d);
|
||||||
return pv;
|
return pv;
|
||||||
}
|
}
|
||||||
if (mf > DBL_DIG+1) {
|
if (mf > DBLE_FIG) {
|
||||||
if (!exc) {
|
if (!exc) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -2980,7 +2980,7 @@ BigMath_s_exp(VALUE klass, VALUE x, VALUE vprec)
|
||||||
infinite = isinf(flo);
|
infinite = isinf(flo);
|
||||||
nan = isnan(flo);
|
nan = isnan(flo);
|
||||||
if (!infinite && !nan) {
|
if (!infinite && !nan) {
|
||||||
vx = GetVpValueWithPrec(x, DBL_DIG+1, 0);
|
vx = GetVpValueWithPrec(x, DBLE_FIG, 0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -3133,7 +3133,7 @@ get_vp_value:
|
||||||
infinite = isinf(flo);
|
infinite = isinf(flo);
|
||||||
nan = isnan(flo);
|
nan = isnan(flo);
|
||||||
if (!zero && !negative && !infinite && !nan) {
|
if (!zero && !negative && !infinite && !nan) {
|
||||||
vx = GetVpValueWithPrec(x, DBL_DIG+1, 1);
|
vx = GetVpValueWithPrec(x, DBLE_FIG, 1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -4023,7 +4023,7 @@ VpNumOfChars(Real *vp,const char *pszFmt)
|
||||||
* by one BDIGIT word in the computer used.
|
* by one BDIGIT word in the computer used.
|
||||||
*
|
*
|
||||||
* [Returns]
|
* [Returns]
|
||||||
* 1+DBL_DIG ... OK
|
* DBLE_FIG ... OK
|
||||||
*/
|
*/
|
||||||
VP_EXPORT size_t
|
VP_EXPORT size_t
|
||||||
VpInit(BDIGIT BaseVal)
|
VpInit(BDIGIT BaseVal)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue