X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fexpressions%2Fhelpers.c;h=c69e440e4bde0f9c8747296884c0cf83e9ce2b45;hb=b8a262a5ea1c5011eeb42d72365620f53ee1a7bc;hp=57e17713b994f9036c97ddda0d829035fb726605;hpb=adccf1932c84ccb435f14f60fdb4aaaf9fdc1e30;p=pspp diff --git a/src/language/expressions/helpers.c b/src/language/expressions/helpers.c index 57e17713b9..c69e440e4b 100644 --- a/src/language/expressions/helpers.c +++ b/src/language/expressions/helpers.c @@ -664,20 +664,30 @@ npdf_beta (double x, double a, double b, double lambda) } } -double -round_nearest (double x, double mult, double fuzzbits) +static double +round__ (double x, double mult, double fuzzbits, double adjustment) { - double adjustment; - if (fuzzbits <= 0) fuzzbits = settings_get_fuzzbits (); - adjustment = .5 + exp2 (fuzzbits - DBL_MANT_DIG); + adjustment += exp2 (fuzzbits - DBL_MANT_DIG); x /= mult; x = x >= 0. ? floor (x + adjustment) : -floor (-x + adjustment); return x * mult; } +double +round_nearest (double x, double mult, double fuzzbits) +{ + return round__ (x, mult, fuzzbits, .5); +} + +double +round_zero (double x, double mult, double fuzzbits) +{ + return round__ (x, mult, fuzzbits, 0); +} + struct substring replace_string (struct expression *e, struct substring haystack,