http://ko.wikipedia.org/wiki/Math.h
- 학교 문서를 등재하시려는 분께서는 위키백과:학교 문서 생성자에게 드리는 말씀을 참고하여 문서를 작성해 주세요.
math.h
math.h는 여러 수학 함수들을 포함하는 C 언어의 표준 라이브러리이다. 대부분의 함수들이 부동소수점을 다루며, 각도는 라디안을 사용한다.
목차[숨기기] |
[편집] 예제
다음 예제는 부동소수점 수들의 거듭제곱을 출력한다.
int main (void) { printf ("7 ^ 3 = %lf\n", pow (7,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
[편집] 함수
함수 | 설명 |
---|---|
삼각 함수 | |
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 base, double exponent ); | baseexponent를 구한다. |
double sqrt ( double x ); | ![]() |
double ceil ( double x ); | x보다 작지 않은 가장 작은 정수를 구한다. |
double floor ( double x ); | x보다 크지 않은 가장 큰 정수를 구한다. |
double fabs ( double x ); | x의 절댓값을 구한다. |
double fmod ( double numerator, double denominator ); | numerator를 denominator로 나눈 나머지를 구한다. |
[편집] XSI Extensions
![]() This section needs to be translated into Korean. The untranslated parts of the section should be rewritten in Korean or eliminated. |
Extra functions may be available as X/Open System Interfaces Extensions. These are not present in any ANSI or ISO C standard.
Name | Description |
---|---|
j0(x) |
Bessel function of x of the first kind of order 0 |
j1(x) |
Bessel function of x of the first kind of order 1 |
jn(n,x) |
Bessel function of x of the first kind of order n |
scalb(x,y) |
x * FLT_RADIX y (x and y are double s) |
y0(x) |
Bessel function of x of the second kind of order 0 |
y1(x) |
Bessel function of x of the second kind of order 1 |
yn(n,x) |
Bessel function of x of the second kind of order n |
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_SQRT1_2 | ![]() |
math.h 상용로그
자료구조 4,5 번 과제를 하다가 보니 로그 함수를 쓸 일이 생겼는데
C언어에서 제공되는 로그 함수는 밑을 e로 하는 자연로그와 밑을 10으로 하는 상용로그
밖에 없더군요.
저한테 필요했던 로그는 밑을 2로 하는 것이었는데
처음에 그것도 모르고 하다가 제대로된 동작을 안해서 한참을 삽질을 했었답니다 -_-;
그러다가 혹시나 로그값이 잘못 계산이 되는게 아닌가 싶어서 값을 출력해 보니
역시나.. 그제서야 log() <- 이 함수가 밑을 e로 하는 자연로그 라는걸 깨달았습니다.
그리고 나서 어떻게 밑을 바꾸는 방법이 없나 해서 여기저기 뒤져보니
아래와 같은 식이 있더군요.
logab = logeb / logea
라는 식이 있더군요. 결국 log24 를 구현을 할려면
log(4) / log(2) 이렇게 해 주어야 되더군요
별것 아니지만 모르면 낭패보는 것이기에 올립니다. ^^
http://blog.naver.com/PostView.nhn?blogId=pyjhm&logNo=40048668143
자연로그
http://blog.naver.com/PostView.nhn?blogId=lovetaehong&logNo=130076182473
'컴퓨터 과학 & 영상처리 관련 > C / C++' 카테고리의 다른 글
2차원 배열을 1차원 포인터로 접근하여 출력하는 함수 (0) | 2012.08.27 |
---|---|
sprintf 예제 (0) | 2012.08.21 |
상속에 대한 또 하나의 예제 (0) | 2012.08.16 |
txt 파일로 문자열 저장하는 간단한 예제 (0) | 2012.08.06 |
backpatching 응용 문자열에 %d 사용해서 변수 활용 가능하게 하기 (0) | 2012.08.06 |