Какая функция rem_pio2f() используется в GCC?

Изучение скомпилированного кода sinf() в нашей реализации GCC я вижу, что он вызывает встроенную функцию ___ieee754_rem_pio2f, Я попытался найти подсказку о том, что это за функция, но все, что я нашел, это посты, относящиеся к ошибке с rem_pio2f (нет __ieee754) функция, без объяснения причин.

Кто-нибудь может пролить свет на эту функцию?

(звучит как "остаток от PI-over-2-float, или что-то в этом роде - но зачем нужна функция для константы?)

РЕДАКТИРОВАТЬ: Спасибо @Thiruvalluvar за предоставление исходного кода:

/* __ieee754_rem_pio2f(x,y)
*
* return the remainder of x rem pi/2 in y[0]+y[1]
* use __kernel_rem_pio2f()
*/

1 ответ

Решение

sinf берет поплавок и возвращает поплавок. Поддержка арифметики с плавающей точкой была добавлена ​​в C99. В более ранних стандартах C не было sinf, а был только sin (то есть для double). Ieee_754 указывает, что функция добавлена ​​для поддержки поддержки с плавающей запятой. Вот ссылка на исходный код для этого файла, если вы заинтересованы.

Другие вопросы по тегам