2013-05-22 5 views
0

모든 파이썬 라이브러리는 다음 링크에서 설명하는 "빠른 역 제곱근"알고리즘을 구현하는 함수를 제공합니까? http://en.wikipedia.org/wiki/Fast_inverse_square_root 아마도 numpy/SciPy?inverse square root python

나를 도와 주시면 대단 하시겠습니까? 건배

+7

역 sqrt와 같은 연산의 속도가 중요하다면, 파이썬이 사용하기에 적합한 언어가 아닐 수도 있습니다. – interjay

+1

병목 현상이 발생하여 이것을 묻는가? –

+1

파이썬에서 알고리즘을 구현하기는 쉽지만, 부동 소수점 계산을 수행하는 것보다 4 배 빠릅니다. '(x ** - 0.5)'의 부동 소수점 연산은 파이썬 코드의 1 연산에서 수행되고 실제 제곱근은 C math lib를 사용하여 계산되므로 알고리즘의 속도 이점은 손실됩니다 파이썬으로 구현되었습니다. C는 파이썬보다 10 배 빠른 속도로 실행되므로 10x 속도 향상을 포기하여 4x 속도의 boos를 얻을 수 있습니다. 알고리즘이 정말로 필요하다면 C로 구현하고 파이썬으로 임포트하십시오. – Perkins

답변

0

는 훨씬 쉽게

및 interjay 같은 당신은 아마 빠른 방법

에게 어쩌면 내가 발견을 가진 유일한 라이브러리를 얻기 위해보다 빠르고 정확한 언어를 사용한다 그런 무언가의 속도에 대해 정말 걱정 경우 mpmath

행운을 빕니다 말했다 !! !!

+1

감사합니다. 그래, C/C++에서 시간 관련 부분을 처음부터 개발하려고 생각하고있다. 필터를위한 TestBench 일 뿐이므로 (시각화를위한 GUI 요소가 일부 있음). 나중에 그것은 어쨌든 마이크로 컨트롤러에서 C/C++로 실행됩니다. –

+0

오, 나는 그것이 행운을 비친다는 것을 알았다! – Serial

3

이 작업은 파이썬에서 할 수 있지만 매우 직접적인 방법은 아닙니다 (즉, 많은 함수 호출). 따라서 x**-.5을 수행하는 것이 훨씬 빠를 것입니다.

흥미로운 운동 일 수도 있지만 실용적이지는 않습니다. 단지 그래서 당신은 복잡한 기능 어쨌든 그 아마 더 빨리 할 수있는이 방법을하고 수 있도록 x**-1/2 필요가 없습니다 않습니다 이미 역 제곱근을 할 수