#56812 - NighTiger - Tue Oct 11, 2005 7:41 pm
Hi guys,
I would like to know if there's and where's the funciont sqrt in the devkitARM Pro.
tnx
I would like to know if there's and where's the funciont sqrt in the devkitARM Pro.
tnx
Code: |
sf VectorMagnitude (psVector pxVector) { return ((sf)sqrt (pxVector->x*pxVector->x + pxVector->y*pxVector->y + pxVector->z*pxVector->z)); } |
Code: |
@Asm_Sqrt(u32 number) // u32 is an unsigned long Asm_Sqrt: MOV r1,#(3 << 30) MOV r2,#(1 << 30) CMP r0,r2 SUBHS r0,r0,r2 ADC r2,r1,r2,LSL #1 CMP r0,r2,ROR #(2 * 1) SUBHS r0,r0,r2,ROR #(2 * 1) ADC r2,r1,r2,LSL #1 CMP r0,r2,ROR #(2 * 2) SUBHS r0,r0,r2,ROR #(2 * 2) ADC r2,r1,r2,LSL #1 CMP r0,r2,ROR #(2 * 3) SUBHS r0,r0,r2,ROR #(2 * 3) ADC r2,r1,r2,LSL #1 CMP r0,r2,ROR #(2 * 4) SUBHS r0,r0,r2,ROR #(2 * 4) ADC r2,r1,r2,LSL #1 CMP r0,r2,ROR #(2 * 5) SUBHS r0,r0,r2,ROR #(2 * 5) ADC r2,r1,r2,LSL #1 CMP r0,r2,ROR #(2 * 6) SUBHS r0,r0,r2,ROR #(2 * 6) ADC r2,r1,r2,LSL #1 CMP r0,r2,ROR #(2 * 7) SUBHS r0,r0,r2,ROR #(2 * 7) ADC r2,r1,r2,LSL #1 CMP r0,r2,ROR #(2 * 8) SUBHS r0,r0,r2,ROR #(2 * 8) ADC r2,r1,r2,LSL #1 CMP r0,r2,ROR #(2 * 9) SUBHS r0,r0,r2,ROR #(2 * 9) ADC r2,r1,r2,LSL #1 CMP r0,r2,ROR #(2 * 10) SUBHS r0,r0,r2,ROR #(2 * 10) ADC r2,r1,r2,LSL #1 CMP r0,r2,ROR #(2 * 11) SUBHS r0,r0,r2,ROR #(2 * 11) ADC r2,r1,r2,LSL #1 CMP r0,r2,ROR #(2 * 12) SUBHS r0,r0,r2,ROR #(2 * 12) ADC r2,r1,r2,LSL #1 CMP r0,r2,ROR #(2 * 13) SUBHS r0,r0,r2,ROR #(2 * 13) ADC r2,r1,r2,LSL #1 CMP r0,r2,ROR #(2 * 14) SUBHS r0,r0,r2,ROR #(2 * 14) ADC r2,r1,r2,LSL #1 CMP r0,r2,ROR #(2 * 15) SUBHS r0,r0,r2,ROR #(2 * 15) ADC r2,r1,r2,LSL #1 BIC r0,r2,#(3 << 30) BX LR |
IRbaboon wrote: |
I'm not sure how fast it is compared to the other functions already listed, but it's hardware-supported so it can't be that bad. |
DiscoStew wrote: | ||
This ASM function is what I use, and it seems pretty fast compared to other sqrt functions |
SevenString wrote: |
http://www.finesse.demon.co.uk/steven/sqrt.html
http://www.finesse.demon.co.uk/steven/invsqrt.html enjoy btw, those two links were on the first page as ARM code inverse square root routines and ARM code square root routines when I did a routine google search for square root code <SMARTASS> that newfangled internet thing is just amazing, isn't it? ;) </SMARTASS> |