소스 검색

core: fix a bug in real::log() and real::log2() with values smaller than 1.

legacy
Sam Hocevar sam 13 년 전
부모
커밋
a66fc123c1
1개의 변경된 파일4개의 추가작업 그리고 2개의 파일을 삭제
  1. +4
    -2
      src/real.cpp

+ 4
- 2
src/real.cpp 파일 보기

@@ -642,7 +642,8 @@ real log(real const &x)
return tmp;
}
tmp.m_signexp = (1 << 30) - 1;
return (real)(x.m_signexp - (1 << 30) + 1) * real::R_LN2 + fast_log(tmp);
return (real)(int)(x.m_signexp - (1 << 30) + 1) * real::R_LN2
+ fast_log(tmp);
}

real log2(real const &x)
@@ -656,7 +657,8 @@ real log2(real const &x)
return tmp;
}
tmp.m_signexp = (1 << 30) - 1;
return (real)(x.m_signexp - (1 << 30) + 1) + fast_log(tmp) * real::R_LOG2E;
return (real)(int)(x.m_signexp - (1 << 30) + 1)
+ fast_log(tmp) * real::R_LOG2E;
}

static real fast_exp(real const &x)


불러오는 중...
취소
저장