X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fexpressions%2Fhelpers.c;h=5aad13eb160b5f3f160481fcdaefa30a92b05354;hb=9743aa05898c191b3c2d3fead5ae0315beb44bb3;hp=720d910f686dd6993c9df4d3d19fc9762af9548e;hpb=37ff86424a5aa6c4c22a0fd4d8c59d7ce28bc2bf;p=pspp diff --git a/src/language/expressions/helpers.c b/src/language/expressions/helpers.c index 720d910f68..5aad13eb16 100644 --- a/src/language/expressions/helpers.c +++ b/src/language/expressions/helpers.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2008, 2010, 2011 Free Software Foundation, Inc. + Copyright (C) 2008, 2010, 2011, 2015 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -661,3 +661,17 @@ npdf_beta (double x, double a, double b, double lambda) return sum; } } + +double +round_nearest (double x, double mult, double fuzzbits) +{ + double adjustment; + + if (fuzzbits <= 0) + fuzzbits = settings_get_fuzzbits (); + adjustment = .5 + exp2 (fuzzbits - DBL_MANT_DIG); + + x /= mult; + x = x >= 0. ? floor (x + adjustment) : -floor (-x + adjustment); + return x * mult; +}