diff options
author | Sergey Vojtovich <svoj@mariadb.org> | 2018-05-25 22:25:45 +0400 |
---|---|---|
committer | Sergey Vojtovich <svoj@mariadb.org> | 2018-05-26 13:27:50 +0400 |
commit | 3e63fa6eb39977c38c6ec6d1259554133a8d6390 (patch) | |
tree | 0ab7fb4caeaf6750cb811ed9b533c9b23a17efc0 /include | |
parent | 7ffd7fe9627d1f750a3712aebb4503e5ae8aea8e (diff) | |
download | mariadb-git-3e63fa6eb39977c38c6ec6d1259554133a8d6390.tar.gz |
Cleanup rint() portability checks
Diffstat (limited to 'include')
-rw-r--r-- | include/my_global.h | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/include/my_global.h b/include/my_global.h index 65e10373d3b..05c6d02f390 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -1179,41 +1179,6 @@ typedef struct { const char *dli_fname, dli_fbase; } Dl_info; #endif #endif /* !defined(__func__) */ -#ifndef HAVE_RINT -/** - All integers up to this number can be represented exactly as double precision - values (DBL_MANT_DIG == 53 for IEEE 754 hardware). -*/ -#define MAX_EXACT_INTEGER ((1LL << DBL_MANT_DIG) - 1) - -/** - rint(3) implementation for platforms that do not have it. - Always rounds to the nearest integer with ties being rounded to the nearest - even integer to mimic glibc's rint() behavior in the "round-to-nearest" - FPU mode. Hardware-specific optimizations are possible (frndint on x86). - Unlike this implementation, hardware will also honor the FPU rounding mode. -*/ - -static inline double rint(double x) -{ - double f, i; - f = modf(x, &i); - /* - All doubles with absolute values > MAX_EXACT_INTEGER are even anyway, - no need to check it. - */ - if (x > 0.0) - i += (double) ((f > 0.5) || (f == 0.5 && - i <= (double) MAX_EXACT_INTEGER && - (longlong) i % 2)); - else - i -= (double) ((f < -0.5) || (f == -0.5 && - i >= (double) -MAX_EXACT_INTEGER && - (longlong) i % 2)); - return i; -} -#endif /* HAVE_RINT */ - /* MYSQL_PLUGIN_IMPORT macro is used to export mysqld data (i.e variables) for usage in storage engine loadable plugins. |