vak: (Default)
[personal profile] vak
Обнаружил ошибку в математической библиотеке под Chimera Linux на процессоре arm64.
  • log10l(1e444L) выдаёт inf, а должно быть 444
  • log10l(1e555L) выдаёт inf, а должно быть 555
  • log10l(1e-666L) выдаёт -inf, а должно быть -666
  • log10l(1e-777L) выдаёт -inf, а должно быть -777
  • log10l(-1e-999L) выдаёт -inf, а должно быть nan
На интеловском процессоре под той же Chimera Linux работает правильно.

Date: 2024-12-12 03:17 (UTC)
archaicos: Шарж (Default)
From: [personal profile] archaicos
А на 10 и 0.1 работает?

А, это ещё и long double... Может быть и ABI проблема.
Edited Date: 2024-12-12 03:18 (UTC)

Date: 2024-12-12 03:54 (UTC)
archaicos: Шарж (Default)
From: [personal profile] archaicos
А прочие функции с long double? Типа fabsl(), hypotl(), sqrtl(), truncl(), fmodl()?

Date: 2024-12-12 05:20 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
Это вроде особенность "Apple Silion":
The long double type is a double precision
https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms

С этими ARM каждый как хочет так и коверкает архитектуру
Edited Date: 2024-12-12 05:22 (UTC)

Date: 2024-12-12 09:11 (UTC)
From: [personal profile] chabapok
у arm64 sizeof(long double) что выдает? 8, 10 или 16?

Date: 2024-12-12 09:32 (UTC)
From: [personal profile] chabapok
глюк же в макоси? или под линуксом на arm64 этот баг тоже имеет место?

Я не спец по ieee754, но помоему 64 бита это ничто для такого числа.

Date: 2024-12-12 10:09 (UTC)
From: [personal profile] chabapok
может старая и/или битая/неверно_собранная libm

ubuntu18.04 - нормально считает.

Date: 2024-12-12 13:17 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi
Оппа, вот это да.