지수함수 exp를 구현해보자.
저번에 제곱근 함수를 구현해본것에 이어서 밑을 e(2.71828..)로하는 지수함수 exp에 대해 구현해보자. exp(x)의 테일러 전개식이다. 다행이도 exp(x)의 전개식은 어떤 x에 대해서도 성립한다. 그럼 그냥 간단히 저 식을 구현하는걸로 exp구현을 끝낼수 있지만, 역시 프로그래머에게는 속도가 중요하다. 그래서 다음과 같이 식을 변형해보자. (단, )가 된다. 는 어차피 부동소수점데이터에서 지수부로 곧바로 들어갈테고 만 계산하면 된다. 그런데 ln2=0.693147.. 이므로, α는 ln2보다 작으므로, 테일러 전개에서 x의 차수가 높아질수록 항의 값은 작아질 것이다. 이제 필요한 정밀도까지 계산해 내려가면 된다. float(32비트 부동소수점형)같은 경우 정밀도가 23비트이므로 항이 보다 작아..
프로그래밍/테크닉
2008. 11. 28. 00:35