glibc и математические функции.
От: alpha21264 СССР  
Дата: 23.10.15 09:35
Оценка:
Разбираюсь тут с библиотекой glibc. Вот этой:
https://www.gnu.org/software/libc/download.html
Работа связана с тем, что нужно водрузить эту библиотеку на отечественный процессор.
Обнаружилась странная вещь.
В библиотеке есть математические функции — синусы и логарифмы и прочее.
Для i386 и тому подобного эти функции реализованы на ассемблере (что нормально).
Для других архитектур есть некая замена, написанная на С.
Функции разные для разных аргументов. Для коротких (32-битных) float и для длинных (64-битных) double.
Так вот... для 32-битных float функции реализованы на многочленах, использующих float (и это нормально).
Исходники лежат здесь: (корень)/sysdeps/ieee754/flt-32
А для 64-битных double... на целых числах!!!
Исходники лежат здесь: (корень)/sysdeps/ieee754/dbl-64
Соответсвенно скорость падает в СТО раз.

Это вообще нормально, или я что-то пропустил?

Течёт вода Кубань-реки куда велят большевики.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.