Вот реализация fdlibm на C: http://www.netlib.org/fdlibm/e_pow.c
Как бы то ни было, когда версия 8 отказалась от своих таблиц cos/sine, для этого она использовала реализацию fdlibm: https://code.google.com/p/v8/source/detail?r=22918
Из комментариев к фиксации изменений: «Реализовать тригонометрические функции, используя порт fdlibm».
Mozilla, с другой стороны, вызывает математические функции cstdlib, которые будут иметь различную производительность в зависимости от сборки и системы (например, могут или не могут вызывать реализации трансцендентных функций на уровне чипа). В то время как байт-код С#, кажется, делает явные ссылки на функции уровня микросхемы, когда это возможно. Однако «pow» не является одним из них, iirc (похоже, не имеет функции на уровне чипа) и реализован в другом месте.
См. также: https://bugzilla.mozilla.org/show_bug.cgi?id=967709
Для обсуждения кос/синуса в сообществе Mozilla сравнение реализации Mozilla со старой реализацией v8.
См. также: Как Math.Pow() реализован в .NET Framework?
Внутренние функции находятся на уровне микросхемы и фактически реализуются на процессоре. (Нам больше не обязательно нужны таблицы поиска.)
person
Community
schedule
26.11.2014
math.h
, приличный редактор с возможностью тегирования (или аналогичный) приведет вас прямо к объявлению, если вы пометите каталог включаемых файлов для вашей библиотеки времени выполнения C. Почти любой приличный редактор программирования будет иметь эту возможность. - person Michael Burr   schedule 09.11.2009pow()
не включен. Реализация, похоже, находится в библиотекеtran.lib
, исходный код которой не включен. - person Michael Burr   schedule 09.11.2009