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 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 13:17 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi
Оппа, вот это да.