Какая функция 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 указывает, что функция добавлена для поддержки поддержки с плавающей запятой. Вот ссылка на исходный код для этого файла, если вы заинтересованы.