Специальные математические функции (начиная с 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 и longdouble (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]