Namespaces
Variants

Standard library header <cmath>

From cppreference.net
Standard library headers

Этот заголовочный файл изначально находился в стандартной библиотеке C как <math.h> .

Этот заголовок является частью numeric библиотеки.

Содержание

Типы

float_t
(C++11)
наиболее эффективный тип с плавающей точкой, как минимум такой же ширины, как float
(typedef)
double_t
(C++11)
наиболее эффективный тип с плавающей точкой, как минимум такой же ширины, как double
(typedef)

Макросы

указывает значение переполнения для float , double и long double соответственно
(макрос-константа)
(C++11)
вычисляется в положительную бесконечность или значение, гарантированно вызывающее переполнение float
(макроконстанта)
(C++11)
возвращает тихий NaN типа float
(макроконстанта)
определяет механизм обработки ошибок, используемый общими математическими функциями
(макроконстанта)
Классификация
(C++11) (C++11) (C++11) (C++11) (C++11)
указывает категорию чисел с плавающей запятой
(макроконстанта)

Функции

Основные операции
абсолютное значение числа с плавающей точкой ( |x| )
(функция)
(C++11) (C++11)
остаток от операции деления чисел с плавающей запятой
(функция)
(C++11) (C++11) (C++11)
знаковый остаток от операции деления
(функция)
(C++11) (C++11) (C++11)
знаковый остаток, а также три последних бита операции деления
(функция)
(C++11) (C++11) (C++11)
операция умножения-сложения с объединением
(функция)
(C++11) (C++11) (C++11)
большее из двух значений с плавающей точкой
(функция)
(C++11) (C++11) (C++11)
меньшее из двух значений с плавающей точкой
(функция)
(C++11) (C++11) (C++11)
положительная разность двух значений с плавающей точкой ( max(0, x-y) )
(функция)
(C++11) (C++11) (C++11)
не-число (NaN)
(функция)
Линейная интерполяция
(C++20)
функция линейной интерполяции
(функция)
Экспоненциальные функции
(C++11) (C++11)
возвращает e в указанной степени ( e x )
(функция)
(C++11) (C++11) (C++11)
возвращает 2 в заданной степени ( 2 x )
(функция)
(C++11) (C++11) (C++11)
возвращает число e , возведённое в заданную степень, минус 1 ( e x -1 )
(функция)
(C++11) (C++11)
вычисляет натуральный (по основанию e ) логарифм ( ln(x) )
(функция)
(C++11) (C++11)
вычисляет десятичный логарифм (основание 10 ) ( log 10 (x) )
(функция)
(C++11) (C++11) (C++11)
логарифм по основанию 2 от заданного числа ( log 2 (x) )
(функция)
(C++11) (C++11) (C++11)
натуральный логарифм (по основанию e ) от 1 плюс заданное число ( ln(1+x) )
(функция)
Степенные функции
(C++11) (C++11)
возводит число в заданную степень ( x y )
(функция)
(C++11) (C++11)
вычисляет квадратный корень ( x )
(функция)
(C++11) (C++11) (C++11)
вычисляет кубический корень ( 3 x )
(функция)
(C++11) (C++11) (C++11)
вычисляет гипотенузу x 2
+y 2
и x 2
+y 2
+z 2
(начиная с C++17)

(функция)
Тригонометрические функции
(C++11) (C++11)
вычисляет синус ( sin(x) )
(функция)
(C++11) (C++11)
вычисляет косинус ( cos(x) )
(функция)
(C++11) (C++11)
вычисляет тангенс ( tan(x) )
(функция)
(C++11) (C++11)
вычисляет арксинус ( arcsin(x) )
(функция)
(C++11) (C++11)
вычисляет арккосинус ( arccos(x) )
(функция)
(C++11) (C++11)
вычисляет арктангенс ( arctan(x) )
(функция)
(C++11) (C++11)
арктангенс, использующий знаки для определения квадрантов
(функция)
Гиперболические функции
(C++11) (C++11)
вычисляет гиперболический синус ( sinh(x) )
(функция)
(C++11) (C++11)
вычисляет гиперболический косинус ( cosh(x) )
(функция)
(C++11) (C++11)
вычисляет гиперболический тангенс ( tanh(x) )
(функция)
(C++11) (C++11) (C++11)
вычисляет обратный гиперболический синус ( arsinh(x) )
(функция)
(C++11) (C++11) (C++11)
вычисляет обратный гиперболический косинус ( arcosh(x) )
(функция)
(C++11) (C++11) (C++11)
вычисляет обратный гиперболический тангенс ( artanh(x) )
(функция)
Функции ошибок и гамма-функции
(C++11) (C++11) (C++11)
функция ошибок
(функция)
(C++11) (C++11) (C++11)
дополнительная функция ошибок
(функция)
(C++11) (C++11) (C++11)
гамма-функция
(функция)
(C++11) (C++11) (C++11)
натуральный логарифм гамма-функции
(функция)
Операции с плавающей запятой для округления до ближайшего целого
(C++11) (C++11)
ближайшее целое число, не меньшее заданного значения
(функция)
(C++11) (C++11)
ближайшее целое число, не превышающее заданное значение
(функция)
(C++11) (C++11) (C++11)
ближайшее целое число, не превышающее по модулю заданное значение
(функция)
(C++11) (C++11) (C++11) (C++11) (C++11) (C++11) (C++11) (C++11) (C++11)
ближайшее целое число, округление от нуля в пограничных случаях
(функция)
(C++11) (C++11) (C++11)
ближайшее целое число с использованием текущего режима округления
(функция)
(C++11) (C++11) (C++11) (C++11) (C++11) (C++11) (C++11) (C++11) (C++11)
ближайшее целое число с использованием текущего режима округления с
исключением, если результат отличается
(функция)
Функции манипуляции с плавающей запятой
(C++11) (C++11)
разлагает число на мантиссу и показатель степени по основанию 2
(функция)
(C++11) (C++11)
умножает число на 2 в целочисленной степени
(функция)
(C++11) (C++11)
разлагает число на целую и дробную части
(функция)
(C++11) (C++11) (C++11) (C++11) (C++11) (C++11)
умножает число на FLT_RADIX возведённое в степень
(функция)
(C++11) (C++11) (C++11)
извлекает экспоненту числа
(функция)
(C++11) (C++11) (C++11)
извлекает экспоненту числа
(функция)
(C++11) (C++11) (C++11) (C++11) (C++11) (C++11)
следующее представимое значение с плавающей точкой в направлении заданного значения
(функция)
(C++11) (C++11) (C++11)
копирует знак значения с плавающей точкой
(функция)
Классификация и сравнение
(C++11)
категоризирует заданное значение с плавающей точкой
(функция)
(C++11)
проверяет, имеет ли данное число конечное значение
(функция)
(C++11)
проверяет, является ли данное число бесконечным
(функция)
(C++11)
проверяет, является ли данное число NaN
(функция)
(C++11)
проверяет, является ли данное число нормальным
(функция)
(C++11)
проверяет, является ли данное число отрицательным
(функция)
(C++11)
проверяет, является ли первый аргумент с плавающей запятой больше второго
(функция)
проверяет, является ли первый аргумент с плавающей запятой больше или равным второму
(функция)
(C++11)
проверяет, является ли первый аргумент с плавающей точкой меньше второго
(функция)
проверяет, является ли первый аргумент с плавающей точкой меньше или равным второму
(функция)
проверяет, является ли первый аргумент с плавающей точкой меньше или больше второго
(функция)
проверяет, являются ли два значения с плавающей запятой неупорядоченными
(функция)
Математические специальные функции
ассоциированные полиномы Лагерра
(функция)
присоединённые полиномы Лежандра
(функция)
(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)
сферические функции Бесселя (первого рода)
(функция)
сферические присоединённые функции Лежандра
(функция)
сферические функции Неймана
(функция)

Синопсис

Для каждой функции, имеющей хотя бы один параметр типа /* floating-point-type */ , предоставляется перегрузка для каждого cv-неквалифицированного типа с плавающей точкой, где все использования /* floating-point-type */ в сигнатуре функции заменяются на этот тип с плавающей точкой.

Для каждой функции, имеющей хотя бы один параметр типа /* floating-point-type */ кроме std::abs , предоставляются дополнительные перегрузки, гарантирующие, что если каждый аргумент, соответствующий параметру /* floating-point-type */ , имеет арифметический тип, то каждый такой аргумент неявно преобразуется к типу с плавающей точкой, имеющему наибольший ранг преобразования с плавающей точкой и наибольший подранг преобразования с плавающей точкой среди типов всех таких аргументов, при этом аргументы целочисленного типа считаются имеющими тот же ранг преобразования с плавающей точкой, что и double . Если не существует такого типа с плавающей точкой с наибольшим рангом и подрангом, то разрешение перегрузки не приводит к пригодному кандидату из предоставленных перегрузок.

namespace std {
  using float_t = /* см. описание */;
  using double_t = /* см. описание */;
}
#define HUGE_VAL /* см. описание */
#define HUGE_VALF /* см. описание */
#define HUGE_VALL /* см. описание */
#define INFINITY /* см. описание */
#define NAN /* см. описание */
#define FP_INFINITE /* см. описание */
#define FP_NAN /* см. описание */
#define FP_NORMAL /* см. описание */
#define FP_SUBNORMAL /* см. описание */
#define FP_ZERO /* см. описание */
#define FP_FAST_FMA /* см. описание */
#define FP_FAST_FMAF /* см. описание */
#define FP_FAST_FMAL /* см. описание */
#define FP_ILOGB0 /* см. описание */
#define FP_ILOGBNAN /* см. описание */
#define MATH_ERRNO /* см. описание */
#define MATH_ERREXCEPT /* см. описание */
#define math_errhandling /* см. описание */
namespace std {
  /* тип с плавающей точкой */ acos(/* тип с плавающей точкой */ x);
  float acosf(float x);
  long double acosl(long double x);
  /* тип с плавающей точкой */ asin(/* тип с плавающей точкой */ x);
  float asinf(float x);
  long double asinl(long double x);
  /* тип с плавающей точкой */ atan(/* тип с плавающей точкой */ x);
  float atanf(float x);
  long double atanl(long double x);
  /* тип с плавающей точкой */ atan2(/* тип с плавающей точкой */ y,
                                  /* тип с плавающей точкой */ x);
  float atan2f(float y, float x);
  long double atan2l(long double y, long double x);
  /* тип с плавающей точкой */ cos(/* тип с плавающей запятой */e x);
  float cosf(float x);
  long double cosl(long double x);
  /* тип с плавающей точкой */ sin(/* тип с плавающей точкой */ x);
  float sinf(float x);
  long double sinl(long double x);
  /* тип с плавающей запятой */ tan(/* тип с плавающей точкой */ x);
  float tanf(float x);
  long double tanl(long double x);
  /* тип с плавающей запятой */ acosh(/* тип с плавающей точкой */ x);
  float acoshf(float x);
  long double acoshl(long double x);
  /* тип с плавающей точкой */ asinh(/* тип с плавающей точкой */ x);
  float asinhf(float x);
  long double asinhl(long double x);
  /* тип с плавающей точкой */ atanh(/* тип с плавающей запятой */ x);
  float atanhf(float x);
  long double atanhl(long double x);
  /* тип с плавающей точкой */ cosh(/* тип с плавающей точкой */ x);
  float coshf(float x);
  long double coshl(long double x);
  /* тип с плавающей запятой */ sinh(/* тип с плавающей запятой */ x);
  float sinhf(float x);
  long double sinhl(long double x);
  /* тип с плавающей точкой */ tanh(/* тип с плавающей запятой */ x);
  float tanhf(float x);
  long double tanhl(long double x);
  /* тип с плавающей точкой */ exp(/* тип с плавающей запятой */ x);
  float expf(float x);
  long double expl(long double x);
  /* тип с плавающей точкой */ exp2(/* тип с плавающей точкой */ x);
  float exp2f(float x);
  long double exp2l(long double x);
  /* тип с плавающей точкой */ expm1(/* тип с плавающей точкой */ x);
  float expm1f(float x);
  long double expm1l(long double x);
  constexpr /* тип с плавающей точкой */ frexp(/* тип с плавающей точкой */ value, int* exp);
  constexpr float frexpf(float value, int* exp);
  constexpr long double frexpl(long double value, int* exp);
  constexpr int ilogb(/* тип с плавающей точкой */ x);
  constexpr int ilogbf(float x);
  constexpr int ilogbl(long double x);
  constexpr /* тип с плавающей точкой */ ldexp(/* тип с плавающей точкой */ x, int exp);
  constexpr float ldexpf(float x, int exp);
  constexpr long double ldexpl(long double x, int exp);
  /* тип с плавающей точкой */ log(/* тип с плавающей точкой */ x);
  float logf(float x);
  long double logl(long double x);
  /* тип с плавающей точкой */ log10(/* тип с плавающей точкой */ x);
  float log10f(float x);
  long double log10l(long double x);
  /* тип с плавающей точкой */ log1p(/* тип с плавающей точкой */ x);
  float log1pf(float x);
  long double log1pl(long double x);
  /* тип с плавающей точкой */ log2(/* тип с плавающей точкой */ x);
  float log2f(float x);
  long double log2l(long double x);
  constexpr /* тип с плавающей точкой */ logb(/* тип с плавающей точкой */ x);
  constexpr float logbf(float x);
  constexpr long double logbl(long double x);
  constexpr /* тип с плавающей точкой */ modf(/* тип с плавающей точкой */ value,
                                           /* тип с плавающей точкой */* iptr);
  constexpr float modff(float value, float* iptr);
  constexpr long double modfl(long double value, long double* iptr);
  constexpr /* тип с плавающей точкой */ scalbn(/* тип с плавающей точкой */ x, int n);
  constexpr float scalbnf(float x, int n);
  constexpr long double scalbnl(long double x, int n);
  constexpr /* тип с плавающей запятой */ scalbln(/* тип с плавающей точкой */ x, long int n);
  constexpr float scalblnf(float x, long int n);
  constexpr long double scalblnl(long double x, long int n);
  /* тип с плавающей точкой */ cbrt(/* тип с плавающей точкой */ x);
  float cbrtf(float x);
  long double cbrtl(long double x);
  // абсолютные значения
  constexpr int abs(int j);                     // freestanding
  constexpr long int abs(long int j);           // freestanding
  constexpr long long int abs(long long int j); // freestanding
  constexpr /* тип с плавающей точкой */
    abs(/* тип с плавающей точкой */ j);           // freestanding-deleted
  constexpr /* тип с плавающей точкой */ fabs(/* тип с плавающей запятой */ x);
  constexpr float fabsf(float x);
  constexpr long double fabsl(long double x);
  /* тип с плавающей точкой */ hypot(/* тип с плавающей точкой */ x,
                                  /* тип с плавающей точкой */ y);
  float hypotf(float x, float y);
  long double hypotl(long double x, long double y);
  // трёхмерная гипотенуза
  float hypot(/* тип с плавающей запятой */ x,
              /* тип с плавающей точкой */ y,
              /* тип с плавающей точкой */ z);
  /* тип с плавающей точкой */ pow(/* тип с плавающей точкой */ x,
                                /* тип с плавающей точкой */ y);
  float powf(float x, float y);
  long double powl(long double x, long double y);
  /* тип с плавающей точкой */ sqrt(/* тип с плавающей точкой */ x);
  float sqrtf(float x);
  long double sqrtl(long double x);
  /* тип с плавающей точкой */ erf(/* тип с плавающей точкой */ x);
  float erff(float x);
  long double erfl(long double x);
  /* тип с плавающей точкой */ erfc(/* тип с плавающей точкой */ x);
  float erfcf(float x);
  long double erfcl(long double x);
  /* тип с плавающей точкой */ lgamma(/* тип с плавающей запятой */ x);
  float lgammaf(float x);
  long double lgammal(long double x);
  /* тип с плавающей точкой */ tgamma(/* тип с плавающей точкой */ x);
  float tgammaf(float x);
  long double tgammal(long double x);
  constexpr /* тип с плавающей точкой */ ceil(/* тип с плавающей точкой */ x);
  constexpr float ceilf(float x);
  constexpr long double ceill(long double x);
  constexpr /* тип с плавающей точкой */ floor(/* тип с плавающей запятой */ x);
  constexpr float floorf(float x);
  constexpr long double floorl(long double x);
  /* тип с плавающей точкой */ nearbyint(/* тип с плавающей точкой */ x);
  float nearbyintf(float x);
  long double nearbyintl(long double x);
  /* тип с плавающей точкой */ rint(/* тип с плавающей точкой */ x);
  float rintf(float x);
  long double rintl(long double x);
  long int lrint(/* тип с плавающей точкой */ x);
  long int lrintf(float x);
  long int lrintl(long double x);
  long long int llrint(/* тип с плавающей точкой */ x);
  long long int llrintf(float x);
  long long int llrintl(long double x);
  constexpr /* тип с плавающей запятой */ round(/* тип с плавающей точкой */ x);
  constexpr float roundf(float x);
  constexpr long double roundl(long double x);
  constexpr long int lround(/* тип с плавающей точкой */ x);
  constexpr long int lroundf(float x);
  constexpr long int lroundl(long double x);
  constexpr long long int llround(/* тип с плавающей точкой */ x);
  constexpr long long int llroundf(float x);
  constexpr long long int llroundl(long double x);
  constexpr /* тип с плавающей точкой */ trunc(/* тип с плавающей запятой */ x);
  constexpr float truncf(float x);
  constexpr long double truncl(long double x);
  constexpr /* тип с плавающей запятой */ fmod(/* тип с плавающей точкой */ x,
                                           /* тип с плавающей точкой */ y);
  constexpr float fmodf(float x, float y);
  constexpr long double fmodl(long double x, long double y);
  constexpr /* тип с плавающей точкой */ remainder(/* тип с плавающей точкой */ x,
                                                /* тип с плавающей точкой */ y);
  constexpr float remainderf(float x, float y);
  constexpr long double remainderl(long double x, long double y);
  constexpr /* тип с плавающей точкой */ remquo(/* тип с плавающей точкой */ x,
                                             /* тип с плавающей точкой */ y, int* quo);
  constexpr float remquof(float x, float y, int* quo);
  constexpr long double remquol(long double x, long double y, int* quo);
  constexpr /* тип с плавающей точкой */ copysign(/* тип с плавающей точкой */ x,
                                               /* тип с плавающей точкой */ y);
  constexpr float copysignf(float x, float y);
  constexpr long double copysignl(long double x, long double y);
  double nan(const char* tagp);
  float nanf(const char* tagp);
  long double nanl(const char* tagp);
  constexpr /* тип с плавающей точкой */ nextafter(/* тип с плавающей точкой */ x,
                                                /* тип с плавающей запятой */ y);
  constexpr float nextafterf(float x, float y);
  constexpr long double nextafterl(long double x, long double y);
  constexpr /* тип с плавающей точкой */ nexttoward(/* тип с плавающей точкой */ x,
                                                 long double y);
  constexpr float nexttowardf(float x, long double y);
  constexpr long double nexttowardl(long double x, long double y);
  constexpr /* тип с плавающей точкой */ fdim(/* тип с плавающей точкой */ x,
                                           /* тип с плавающей точкой */ y);
  constexpr float fdimf(float x, float y);
  constexpr long double fdiml(long double x, long double y);
  constexpr /* тип с плавающей точкой */ fmax(/* тип с плавающей точкой */ x,
                                           /* тип с плавающей точкой */ y);
  constexpr float fmaxf(float x, float y);
  constexpr long double fmaxl(long double x, long double y);
  constexpr /* тип с плавающей точкой */ fmin(/* тип с плавающей запятой */ x,
                                           /* тип с плавающей точкой */ y);
  constexpr float fminf(float x, float y);
  constexpr long double fminl(long double x, long double y);
  constexpr /* тип с плавающей точкой */ fma(/* тип с плавающей точкой */ x,
                                          /* тип с плавающей запятой */ y,
                                          /* тип с плавающей запятой */ z);
  constexpr float fmaf(float x, float y, float z);
  constexpr long double fmal(long double x, long double y, long double z);
  // линейная интерполяция
  constexpr /* тип с плавающей точкой */ lerp(/* тип с плавающей точкой */ a,
                                           /* тип с плавающей точкой */ b,
                                           /* тип с плавающей точкой */ t) noexcept;
  // функции классификации / сравнения
  constexpr int fpclassify(/* тип с плавающей точкой */ x);
  constexpr bool isfinite(/* тип с плавающей точкой */ x);
  constexpr bool isinf(/* тип с плавающей точкой */ x);
  constexpr bool isnan(/* тип с плавающей запятой */ x);
  constexpr bool isnormal(/* тип с плавающей запятой */ x);
  constexpr bool signbit(/* тип с плавающей запятой */ x);
  constexpr bool isgreater(/* тип с плавающей точкой */ x,
                           /* тип с плавающей точкой */ y);
  constexpr bool isgreaterequal(/* тип с плавающей точкой */ x,
                                /* тип с плавающей точкой */ y);
  constexpr bool isless(/* тип с плавающей точкой */ x,
                        /* тип с плавающей точкой */ y);
  constexpr bool islessequal(/* тип с плавающей точкой */ x,
                             /* тип с плавающей точкой */ y);
  constexpr bool islessgreater(/* тип с плавающей точкой */ x,
                               /* тип с плавающей точкой */ y);
  constexpr bool isunordered(/* тип с плавающей точкой */ x,
                             /* тип с плавающей точкой */ y);
  // математические специальные функции
  // присоединённые полиномы Лагерра
  /* тип с плавающей точкой */ assoc_laguerre(unsigned n, unsigned m,
                                           /* тип с плавающей запятой */ x);
  float assoc_laguerref(unsigned n, unsigned m, float x);
  long double assoc_laguerrel(unsigned n, unsigned m, long double x);
  // присоединённые функции Лежандра
  /* тип с плавающей точкой */ assoc_legendre(unsigned l, unsigned m,
                                           /* тип с плавающей точкой */ x);
  float assoc_legendref(unsigned l, unsigned m, float x);
  long double assoc_legendrel(unsigned l, unsigned m, long double x);
  // бета-функция
  /* тип с плавающей запятой */ beta(/* тип с плавающей точкой */ x,
                                 /* тип с плавающей точкой */ y);
  float betaf(float x, float y);
  long double betal(long double x, long double y);
  // полный эллиптический интеграл первого рода
  /* тип с плавающей запятой */ comp_ellint_1(/* тип с плавающей точкой */ k);
  float comp_ellint_1f(float k);
  long double comp_ellint_1l(long double k);
  // полный эллиптический интеграл второго рода
  /* тип с плавающей точкой */ comp_ellint_2(/* тип с плавающей точкой */ k);
  float comp_ellint_2f(float k);
  long double comp_ellint_2l(long double k);
  // полный эллиптический интеграл третьего рода
  /* тип с плавающей запятой */ comp_ellint_3(/* тип с плавающей запятой */ k,
                                          /* тип с плавающей точкой */ nu);
  float comp_ellint_3f(float k, float nu);
  long double comp_ellint_3l(long double k, long double nu);
  // регулярные модифицированные цилиндрические функции Бесселя
  /* тип с плавающей точкой */ cyl_bessel_i(/* тип с плавающей точкой */ nu,
                                         /* тип с плавающей запятой */ x);
  float cyl_bessel_if(float nu, float x);
  long double cyl_bessel_il(long double nu, long double x);
  // цилиндрические функции Бесселя первого рода
  /* тип с плавающей точкой */ cyl_bessel_j(/* тип с плавающей точкой */ nu,
                                         /* тип с плавающей точкой */ x);
  float cyl_bessel_jf(float nu, float x);
  long double cyl_bessel_jl(long double nu, long double x);
  // нерегулярные модифицированные цилиндрические функции Бесселя
  /* тип с плавающей точкой */ cyl_bessel_k(/* тип с плавающей точкой */ nu,
                                         /* тип с плавающей точкой */ x);
  float cyl_bessel_kf(float nu, float x);
  long double cyl_bessel_kl(long double nu, long double x);
  // цилиндрические функции Неймана;
  // цилиндрические функции Бесселя второго рода
  /* тип с плавающей точкой */ cyl_neumann(/* тип с плавающей точкой */ nu,
                                        /* тип с плавающей точкой */ x);
  float cyl_neumannf(float nu, float x);
  long double cyl_neumannl(long double nu, long double x);
  // неполный эллиптический интеграл первого рода
  /* тип с плавающей точкой */ ellint_1(/* тип с плавающей точкой */ k,
                                     /* тип с плавающей точкой */ phi);
  float ellint_1f(float k, float phi);
  long double ellint_1l(long double k, long double phi);
  // неполный эллиптический интеграл второго рода
  /* тип с плавающей точкой */ ellint_2(/* тип с плавающей точкой */ k,
                                     /* тип с плавающей запятой */ phi);
  float ellint_2f(float k, float phi);
  long double ellint_2l(long double k, long double phi);
  // неполный эллиптический интеграл третьего рода
  /* тип с плавающей точкой */ ellint_3(/* тип с плавающей точкой */ k,
                                     /* тип с плавающей точкой */ nu,
                                     /* тип с плавающей точкой */ phi);
  float ellint_3f(float k, float nu, float phi);
  long double ellint_3l(long double k, long double nu, long double phi);
  // экспоненциальный интеграл
  /* тип с плавающей точкой */ expint(/* тип с плавающей точкой */ x);
  float expintf(float x);
  long double expintl(long double x);
  // Полиномы Эрмита
  /* тип с плавающей точкой */ hermite(unsigned n, /* тип с плавающей точкой */ x);
  float hermitef(unsigned n, float x);
  long double hermitel(unsigned n, long double x);
  // Полиномы Лагерра
  /* тип с плавающей точкой */ laguerre(unsigned n, /* тип с плавающей точкой */ x);
  float laguerref(unsigned n, float x);
  long double laguerrel(unsigned n, long double x);
  // Полиномы Лежандра
  /* тип с плавающей точкой */ legendre(unsigned l, /* тип с плавающей точкой */ x);
  float legendref(unsigned l, float x);
  long double legendrel(unsigned l, long double x);
  // Дзета-функция Римана
  /* тип с плавающей точкой */ riemann_zeta(/* тип с плавающей точкой */ x);
  float riemann_zetaf(float x);
  long double riemann_zetal(long double x);
  // сферические функции Бесселя первого рода
  /* тип с плавающей точкой */ sph_bessel(unsigned n, /* тип с плавающей точкой */ x);
  float sph_besself(unsigned n, float x);
  long double sph_bessell(unsigned n, long double x);
  // сферические присоединённые функции Лежандра
  /* тип с плавающей точкой */ sph_legendre(unsigned l, unsigned m,
                                         /* тип с плавающей запятой */ theta);
  float sph_legendref(unsigned l, unsigned m, float theta);
  long double  sph_legendrel(unsigned l, unsigned m, long double theta);
  // сферические функции Неймана;
  // сферические функции Бесселя второго рода
  /* тип с плавающей точкой */ sph_neumann(unsigned n, /* тип с плавающей точкой */ x);
  float sph_neumannf(unsigned n, float x);
  long double sph_neumannl(unsigned n, long double x);
}