저는 어셈블러를 처음 사용합니다. 저는 power 함수를 구현하고 싶지만 exp 나 log 함수는 없습니다. a가 정수이고 b가 float 인 동안 a^b
과 같은 것을가집니다.어셈블리 armv7 네온 파워 기능
b가 자연수 인 경우에만 문제가 발생합니다. a와 b를 곱하는 루프와 같습니다.
그런 것이 있거나 구현 방법을 알고있는 사람이 있습니다.
저는 어셈블러를 처음 사용합니다. 저는 power 함수를 구현하고 싶지만 exp 나 log 함수는 없습니다. a가 정수이고 b가 float 인 동안 a^b
과 같은 것을가집니다.어셈블리 armv7 네온 파워 기능
b가 자연수 인 경우에만 문제가 발생합니다. a와 b를 곱하는 루프와 같습니다.
그런 것이 있거나 구현 방법을 알고있는 사람이 있습니다.
알다시피, 팔 네온을 사용하여 pow
기능을 구현하는 방법에 대해 질문했습니다. 정수 a
및 b
에 대한
가장 효과적인 pow
구현은 루프에서 a
에 의해 abs(b)
배 a
여러이다. 음수 인 경우 b
은 루프의 결과로 1.0을 나눕니다 (here 참조). 만약 식 POW (X, m) = EXP을 (m의 * 로그 (X)) (here 참조)를 사용 pow
구현할 수보다
는 exp
및 log
구현 있으면.
당신은 당신에 관하여 언급하면 exp
및 log
기능이 없습니다.
그래서, 당신은 당신이 a
및 b
더블에 대한 pow
을 구현할 수있는 것보다 exp
및 log
기능 수학 라이브러리를 찾을 경우.
arm에 대한 수학 라이브러리가 있으며 pow
구현입니다. 예를 들어 math-neon을 참조하십시오.
라이브러리 Simple ARM NEON optimized sin, cos, log and exp에서 순수 log
및 exp
구현 (C에서는 네온 내장 함수 사용)입니다. 라이브러리에서 코드를 가져 와서 팔 어셈블리로 다시 작성할 수 있습니다. 변호사에게 도서관 라이센스를 충족시키는 방법을 물어보십시오. 그 중 두 가지 기능 만 필요합니다. Intrinsics 코드는 asm으로 간단하게 포팅 될 수 있습니다.
zlib 라이센스가있는 [단순 ARM NEON 최적화 sin, cos, log 및 exp] (http://gruntthepeon.free.fr/ssemath/neon_mathfun.html)입니다. 그것을 사용하지 않았지만 그것을 테스트 할 수 있습니다. 로그와 exp를 사용하면 pow를 구현할 수 있습니다. – alexander
나는 이것을 설명 할 수 없다는 것을 이해하지 못한다. – Mike