PDA

View Full Version : Exp10 function in spin



Paul M
07-01-2009, 07:42 PM
Does anyone have the EXp10 function coded in spin?
I have no cogs left so I can't use the FloatMath functions.

Paul

MagIO2
07-01-2009, 08:56 PM
If you don't use FloatMath, is the result you need a float? Do you expect negative exponents?

Paul M
07-01-2009, 09:11 PM
Sorry, my error - I am using FloatMath but it does not have an EXP10 function. Float32, Float32A etc have the function but are written in assembler and need a cog to run.

MagIO2
07-01-2009, 09:22 PM
var

ten_exp long 10.0 & %0111111110000000000000000000000
ten_mant long 10.0 & %0000000001111111111111111111111

pub exp10( exp )
return (ten_exp+%0111111110000000000000000000000 & (exp<<22)) & %0111111110000000000000000000000 + ten_mant

quick and dirty because it does not check for overflow. So, as long as you don't deal with to big exponents.

*Note: this is theory ... let's see if it works in practice ;o) *