Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenlib/intern/math_base.c')
-rw-r--r--source/blender/blenlib/intern/math_base.c76
1 files changed, 38 insertions, 38 deletions
diff --git a/source/blender/blenlib/intern/math_base.c b/source/blender/blenlib/intern/math_base.c
index ed75cac2d0c..30267661ae7 100644
--- a/source/blender/blenlib/intern/math_base.c
+++ b/source/blender/blenlib/intern/math_base.c
@@ -30,52 +30,52 @@
int pow_i(int base, int exp)
{
- int result = 1;
- BLI_assert(exp >= 0);
- while (exp) {
- if (exp & 1) {
- result *= base;
- }
- exp >>= 1;
- base *= base;
- }
+ int result = 1;
+ BLI_assert(exp >= 0);
+ while (exp) {
+ if (exp & 1) {
+ result *= base;
+ }
+ exp >>= 1;
+ base *= base;
+ }
- return result;
+ return result;
}
/* from python 3.1 floatobject.c
* ndigits must be between 0 and 21 */
double double_round(double x, int ndigits)
{
- double pow1, pow2, y, z;
- if (ndigits >= 0) {
- pow1 = pow(10.0, (double)ndigits);
- pow2 = 1.0;
- y = (x * pow1) * pow2;
- /* if y overflows, then rounded value is exactly x */
- if (!isfinite(y)) {
- return x;
- }
- }
- else {
- pow1 = pow(10.0, (double)-ndigits);
- pow2 = 1.0; /* unused; silences a gcc compiler warning */
- y = x / pow1;
- }
+ double pow1, pow2, y, z;
+ if (ndigits >= 0) {
+ pow1 = pow(10.0, (double)ndigits);
+ pow2 = 1.0;
+ y = (x * pow1) * pow2;
+ /* if y overflows, then rounded value is exactly x */
+ if (!isfinite(y)) {
+ return x;
+ }
+ }
+ else {
+ pow1 = pow(10.0, (double)-ndigits);
+ pow2 = 1.0; /* unused; silences a gcc compiler warning */
+ y = x / pow1;
+ }
- z = round(y);
- if (fabs(y - z) == 0.5) {
- /* halfway between two integers; use round-half-even */
- z = 2.0 * round(y / 2.0);
- }
+ z = round(y);
+ if (fabs(y - z) == 0.5) {
+ /* halfway between two integers; use round-half-even */
+ z = 2.0 * round(y / 2.0);
+ }
- if (ndigits >= 0) {
- z = (z / pow2) / pow1;
- }
- else {
- z *= pow1;
- }
+ if (ndigits >= 0) {
+ z = (z / pow2) / pow1;
+ }
+ else {
+ z *= pow1;
+ }
- /* if computation resulted in overflow, raise OverflowError */
- return z;
+ /* if computation resulted in overflow, raise OverflowError */
+ return z;
}