C 수식 함수는 기초 수식 함수들을 구현하는 C 프로그래밍 언어표준 라이브러리 안의 함수들의 모임이다.[1][2]

함수 개요 편집

math.h는 여러 수학 함수들을 포함하는 C 언어표준 라이브러리이다. 대부분의 함수들이 부동소수점을 다루며, 각도는 라디안을 사용한다.

함수 설명
삼각 함수
double sin ( double x ); 사인 x를 구한다.
double cos ( double x ); 코사인 x를 구한다.
double tan ( double x ); 탄젠트 x를 구한다.
역 삼각 함수
double asin ( double x ); 아크 사인 x를 구한다.
double acos ( double x ); 아크 코사인 x를 구한다.
double atan ( double x ); 아크 탄젠트 x를 구한다.
double atan2 ( double y, double x ); 아크 탄젠트 y/x를 구한다.
쌍곡선 함수
double sinh ( double x ); 하이퍼볼릭 사인 x를 구한다.
double cosh ( double x ); 하이퍼볼릭 코사인 x를 구한다.
double tanh ( double x ); 하이퍼볼릭 탄젠트 x를 구한다.
지수 · 대수 함수
double exp ( double x ); ex를 구한다.
double frexp ( double x, int * exp ); 지수를 exp가 가리키는 변수에 저장하고 가수를 반환한다.
double ldexp ( double x, int exp ); x * 2exp를 반환한다.
double log ( double x ); loge x를 구한다.
double log10 ( double x ); log10 x를 구한다.
double modf ( double x, double * intpart ); 정수부를 intpart가 가리키는 변수에 저장하고 소수부를 반환한다.
거듭제곱 · 거듭제곱근 · 올림 · 내림 · 절댓값 · 나머지 함수
double pow ( double x, double y ); xy를 구한다.
double sqrt ( double x );  를 구한다.
double ceil ( double x ); x보다 작지 않은 가장 작은 정수를 구한다.
double floor ( double x ); x보다 크지 않은 가장 큰 정수를 구한다.
double fabs (double x); x의 절댓값을 구한다.
double fmod ( double x, double y ); x를 y로 나눈 나머지를 구한다.

XSI에서 추가된 것들 편집

이 함수들은 ANSI나 표준 C에는 등록되지 않았다.

이름 설명
double j0(double x) 밑이 0인 제 1종 베셀 함수
double j1(double x) 밑이 1인 제 1종 베셀 함수
double jn(int n,double x) 밑이 n인 제 1종 베셀 함수
double scalb(double x,int y) x * FLT_RADIXy
double y0(double x) 밑이 0인 제 2종 베셀 함수
double y1(double x) 밑이 1인 제 2종 베셀 함수
double yn(int n,double x) 밑이 n인 제 2종 베셀 함수

The double-to-string conversion functions ecvt, fcvt and gcvt have been deprecated in favour of sprintf.

변수 · 상수 · 형식 편집

이름 설명
상수
HUGE_VAL 아주 큰 값을 나타낸다. 수학 계산에서 결과가 너무 커 오버플로우가 나면 이 값을 반환한다.
M_E 자연상수 e
M_LOG2E log2e
M_LOG10E log10e
M_LN2 loge2
M_LN10 loge10
M_PI 원주율 π
M_PI_2  
M_PI_4  
M_1_PI  
M_2_PI  
M_2_SQRTPI  
M_SQRT2  
M_1_SQRT2  

예제 편집

다음 예제는 부동소수점 수들의 거듭제곱을 출력한다. 컴파일시에 -lm 옵션을 추가해주어야 한다

int main (void)
{
  printf ("7 ^ 3 = %lf\n", pow (7.0,3));
  printf ("4.73 ^ 12 = %lf\n", pow (4.73,12));
  printf ("32.01 ^ 1.54 = %lf\n", pow (32.01,1.54));
  return 0;
}

실행 결과

7 ^ 3 = 343.000000
4.73 ^ 12 = 125410439.217423
32.01 ^ 1.54 = 208.036691

각주 편집

  1. 《ISO/IEC 9899:1999 specification》 (PDF). p. 212, § 7.12. 
  2. Prata, Stephen (2004). 《C primer plus》. Sams Publishing. Appendix B, Section V: The Standard ANSI C Library with C99 Additions. ISBN 0-672-32696-5.