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)
float 타입의 quiet NaN으로 평가됨
(매크로 상수)
일반 수학 함수들이 사용하는 오류 처리 메커니즘을 정의함
(매크로 상수)
분류
(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)
주어진 숫자에 1을 더한 값의 자연 로그 (밑 e ) ( 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)
가장 가까운 정수, 중간 값에서는 0에서 멀어지는 방향으로 반올림
(함수)
(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의 정수 거듭제곱을 곱함 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)
주어진 숫자가 정규(normal) 숫자인지 검사합니다
(함수)
(C++11)
주어진 숫자가 음수인지 검사합니다
(function)
(C++11)
첫 번째 부동 소수점 인수가 두 번째 인수보다 큰지 확인합니다
(함수)
첫 번째 부동 소수점 인수가 두 번째 인수보다 크거나 같은지 검사합니다
(함수)
(C++11)
첫 번째 부동 소수점 인수가 두 번째 인수보다 작은지 확인합니다
(함수)
첫 번째 부동 소수점 인수가 두 번째 인수보다 작거나 같은지 확인합니다
(함수)
첫 번째 부동 소수점 인수가 두 번째 인수보다 작거나 큰지 확인합니다
(함수)
두 부동소수점 값이 비순서 상태인지 검사합니다
(함수)
수학 특수 함수
연관 라게르 다항식
(함수)
연관 르장드르 다항식
(함수)
(C++17) (C++17) (C++17)
베타 함수
(함수)
제1종 (완전) 타원 적분
(함수)
제2종 (완전) 타원 적분
(함수)
제3종 완전 타원 적분
(함수)
정규 수정 원통 베셀 함수
(함수)
원통 베셀 함수 (제1종)
(함수)
불규칙 변형 원통 베셀 함수
(함수)
원통형 노이만 함수
(함수)
(C++17) (C++17) (C++17)
제1종 (불완전) 타원 적분
(함수)
(C++17) (C++17) (C++17)
제2종 (불완전) 타원 적분
(함수)
(C++17) (C++17) (C++17)
(불완전) 제3종 타원 적분
(함수)
(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)
구면 베셀 함수 (제1종)
(함수)
구면 연관 르장드르 함수
(함수)
구면 노이만 함수
(함수)

시놉시스

매개변수로 적어도 하나의 /* floating-point-type */ 타입을 가지는 각 함수에 대해, cv-unqualified 부동소수점 타입별로 오버로드가 제공되며, 함수 시그니처 내에서 /* 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);
  // 3차원 빗변
  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);
  // 수학적 특수 함수
  // associated Laguerre polynomials
  /* 부동 소수점 타입 */ 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);
  // associated Legendre functions
  /* 부동소수점 타입 */ 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);
  // 제1종 완전 타원 적분
  /* 부동소수점 타입 */ comp_ellint_1(/* 부동소수점 타입 */ k);
  float comp_ellint_1f(float k);
  long double comp_ellint_1l(long double k);
  // 제2종 완전 타원 적분
  /* 부동 소수점 타입 */ comp_ellint_2(/* 부동 소수점 타입 */ k);
  float comp_ellint_2f(float k);
  long double comp_ellint_2l(long double k);
  // 제3종 완전 타원 적분
  /* 부동소수점 타입 */ 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);
  // 제1종 원통 베셀 함수
  /* 부동소수점 타입 */ 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);
  // 원통형 노이만 함수;
  // 제2종 원통 베셀 함수
  /* 부동소수점 타입 */ cyl_neumann(/* 부동소수점 타입 */ nu,
                                        /* 부동 소수점 타입 */ x);
  float cyl_neumannf(float nu, float x);
  long double cyl_neumannl(long double nu, long double x);
  // 제1종 불완전 타원 적분
  /* 부동소수점 타입 */ ellint_1(/* 부동소수점 타입 */ k,
                                     /* 부동 소수점 타입 */ phi);
  float ellint_1f(float k, float phi);
  long double ellint_1l(long double k, long double phi);
  // 제2종 불완전 타원 적분
  /* 부동소수점 타입 */ ellint_2(/* 부동소수점 타입 */ k,
                                     /* 부동 소수점 타입 */ phi);
  float ellint_2f(float k, float phi);
  long double ellint_2l(long double k, long double phi);
  // 제3종 불완전 타원 적분
  /* 부동 소수점 타입 */ 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 polynomials
  /* 부동소수점 타입 */ hermite(unsigned n, /* 부동 소수점 타입 */ x);
  float hermitef(unsigned n, float x);
  long double hermitel(unsigned n, long double x);
  // Laguerre 다항식
  /* 부동소수점 타입 */ 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);
  // 제1종 구면 베셀 함수
  /* 부동 소수점 타입 */ 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);
  // 구면 노이만 함수;
  // 제2종 구면 베셀 함수
  /* 부동소수점 타입 */ sph_neumann(unsigned n, /* 부동소수점 타입 */ x);
  float sph_neumannf(unsigned n, float x);
  long double sph_neumannl(unsigned n, long double x);
}