Всё оказалось просто. Вот исходники глючащей функции: git.musl-libc.org/cgit/musl/tree/src/math/log10l.c
Суть в ифдефах:
И такого добра там навалом.
UPD: правильные реализации можно найти в OpenLibm, к примеру: github.com/JuliaMath/openlibm/blob/master/ld128/e_log10l.c
Суть в ифдефах:
В нашем случае срабатывает именно последний вариант, когда в мантиссе 113 бит и максимальная экспонента равна 16384.#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
long double log10l(long double x)
{
return log10(x);
}
#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
...собственно реализация функции...
#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384
// TODO: broken implementation to make things compile
long double log10l(long double x)
{
return log10(x);
}
#endif
И такого добра там навалом.
То есть никто не тестировал эту библиотеку на компиляторе со 128-битным long double. Тут чинить и чинить.$ git clone https://git.musl-libc.org/git/musl
$ cd musl/src/math
$ grep TODO:\ broken *.c
acoshl.c:// TODO: broken implementation to make things compile
asinhl.c:// TODO: broken implementation to make things compile
coshl.c:// TODO: broken implementation to make things compile
erfl.c:// TODO: broken implementation to make things compile
expl.c:// TODO: broken implementation to make things compile
expm1l.c:// TODO: broken implementation to make things compile
lgammal.c:// TODO: broken implementation to make things compile
log10l.c:// TODO: broken implementation to make things compile
log1pl.c:// TODO: broken implementation to make things compile
log2l.c:// TODO: broken implementation to make things compile
logl.c:// TODO: broken implementation to make things compile
powl.c:// TODO: broken implementation to make things compile
sinhl.c:// TODO: broken implementation to make things compile
tanhl.c:// TODO: broken implementation to make things compile
tgammal.c:// TODO: broken implementation to make things compile
UPD: правильные реализации можно найти в OpenLibm, к примеру: github.com/JuliaMath/openlibm/blob/master/ld128/e_log10l.c

no subject
Date: 2024-12-12 23:02 (UTC)no subject
Date: 2024-12-13 13:24 (UTC)no subject
Date: 2024-12-13 00:35 (UTC)no subject
Date: 2024-12-13 01:37 (UTC)http://nsz.repo.hu/git/?p=libc-test
https://wiki.musl-libc.org/writing-tests
no subject
Date: 2024-12-19 08:29 (UTC)https://github.com/bminor/glibc/blob/master/math/auto-libm-test-out-log10 и всё такое.
no subject
Date: 2024-12-13 01:10 (UTC)no subject
Date: 2024-12-13 02:24 (UTC)no subject
Date: 2024-12-13 08:12 (UTC)