Специальные математические функции (начиная с C++17)
Библиотека специальных математических функций изначально была частью библиотеки TR1 ISO/IEC TR 19768:2007, затем была опубликована как независимый стандарт ISO, ISO/IEC 29124:2010, и, наконец, объединена с ISO C++ начиная с C++17.
Смотрите Специальные математические функции для версии ISO/IEC 29124:2010 этой библиотеки.
Содержание |
[править] Функции
Определены в заголовочном файле
<cmath> | |
(C++17)(C++17)(C++17) |
ассоциированные полиномы Лагерра (функция) |
(C++17)(C++17)(C++17) |
ассоциированные полиномы Лежандра (функция) |
(C++17)(C++17)(C++17) |
бета-функция (функция) |
(C++17)(C++17)(C++17) |
(полный) эллиптический интеграл первого рода (функция) |
(C++17)(C++17)(C++17) |
(полный) эллиптический интеграл второго рода (функция) |
(C++17)(C++17)(C++17) |
(полный) эллиптический интеграл третьего рода (функция) |
(C++17)(C++17)(C++17) |
регулярные модифицированные цилиндрические функции Бесселя (функция) |
(C++17)(C++17)(C++17) |
цилиндрические функции Бесселя (первого рода) (функция) |
(C++17)(C++17)(C++17) |
нерегулярные модифицированные цилиндрические функции Бесселя (функция) |
(C++17)(C++17)(C++17) |
цилиндрические функции Неймана (функция) |
(C++17)(C++17)(C++17) |
(неполный) эллиптический интеграл первого рода (функция) |
(C++17)(C++17)(C++17) |
(неполный) эллиптический интеграл второго рода (функция) |
(C++17)(C++17)(C++17) |
(неполный) эллиптический интеграл третьего рода (функция) |
(C++17)(C++17)(C++17) |
экспоненциальный интеграл (функция) |
(C++17)(C++17)(C++17) |
полиномы Эрмита (функция) |
(C++17)(C++17)(C++17) |
полиномы Лежандра (функция) |
(C++17)(C++17)(C++17) |
полиномы Лагерра (функция) |
(C++17)(C++17)(C++17) |
дзета-функция Римана (функция) |
(C++17)(C++17)(C++17) |
сферические функции Бесселя (первого рода) (функция) |
(C++17)(C++17)(C++17) |
сферические связанные функции Лежандра (функция) |
(C++17)(C++17)(C++17) |
сферические функции Неймана (функция) |
[править] Примечание
Для специальных математических функций без суффикса "f
" или "l
" в окончательном проекте ISO/IEC 29124:2010 присутствуют перегрузки float и long double (N3060), но отсутствуют в опубликованном стандарте C++17/20 (смотрите LWG проблема 3234). Эти перегрузки не предоставлялись MSVC STL до VS 2022 17.3.
Эти функции не связаны со специальными функциями-элементами типов классов.
Макрос Тестирования функциональности | Значение | Стандарт | Функциональность |
---|---|---|---|
__cpp_lib_math_special_functions |
201603L | (C++17) | Специальные математические функции |
[править] Отчёты о дефектах
Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:
Номер | Применён | Поведение в стандарте | Корректное поведение |
---|---|---|---|
LWG 3234 | C++17 | отсутствовали дополнительные перегрузки для специальных математических функций |
эти перегрузки необходимы |
[править] Ссылки
- C++23 стандарт (ISO/IEC 14882:2023):
- 28.7.6 Специальные математические функции [sf.cmath]
- C++20 стандарт (ISO/IEC 14882:2020):
- 26.8.6 Специальные математические функции [sf.cmath]
- C++17 стандарт (ISO/IEC 14882:2017):
- 29.9.5 Специальные математические функции [sf.cmath]