Use log2(b) instead of (log(b) / M_LN2)

Co-Authored-By: Nobuyoshi Nakada <nobu@ruby-lang.org>
This commit is contained in:
Yusuke Endoh 2023-09-13 19:21:52 +09:00
Родитель 411572661a
Коммит a0e6687305
1 изменённых файлов: 2 добавлений и 1 удалений

3
math.c
Просмотреть файл

@ -538,6 +538,7 @@ math_log_split(VALUE x, size_t *numbits)
# define log_intermediate log2
#else
# define log_intermediate log10
double log2(double x);
#endif
VALUE
@ -561,7 +562,7 @@ rb_math_log(int argc, const VALUE *argv)
return DBL2NUM(-0.0);
}
d = log_intermediate(d) / log_intermediate(b);
d += (numbits - numbits_2) * M_LN2 / log(b);
d += (numbits - numbits_2) / log2(b);
}
else {
/* check for pole error */