Многое посмотрев на математический код, я бы посоветовал не смотреть на glibc - за кодом часто довольно трудно следовать, и он во многом зависит от магии glibc.Математическая библиотека во FreeBSD гораздо удобнее читать, хотя иногда и медленнее (но ненамного).
Для сложных функций основная трудность заключается в граничных случаях - правильный nan / inf /Обработка уже сложна для реальных функций, но это сложный кошмар для сложных функций.Стандарт C99 определяет множество угловых корпусов, некоторые функции имеют 10-20 угловых корпусов.Вы можете посмотреть в приложении G обновленного стандартного документа C99 , чтобы получить представление.Также есть проблема с long double, потому что ее формат не стандартизирован - по моему опыту, вы должны ожидать довольно много ошибок с long double.Надеемся, что грядущая пересмотренная версия IEEE754 с расширенной точностью улучшит ситуацию.