|
Rockbox mail archiveSubject: Re: Math in RockboxRe: Math in Rockbox
From: BlueChip <cs_bluechip_at_webtribe.net>
Date: Wed, 06 Jul 2005 20:01:10 +0100 while (x>0) r = (r<<3)+(r<<1); // r*8 + r*2 ^whoops At 19:52 06/07/2005, you wrote: >what values of 'x' ? all positive? include 0? > >if (x<0) return(0); // cannot handle negative values of x >if (x>9) return(-1); // result will be > (2^32)-1 >unsigned long r = 1; >while (x>0) r = (r<<4)+(r<<1); // r*8 + r*2 >return (r); > >given you only have 9 possible return values, a lookup table would be >faster and not THAT much more cost in code-space. > >At 16:53 06/07/2005, you wrote: >>well... If I just think of a q&d solution: >> >>long exp10(int x) { >> long result = 10; >> while (--x) { >> result = result * 10; >> } >> return result; >>} >> >>I haven't tested this, but it can be something like this. (And I'm sure >>it's slow as hell for large values of x) >> >>Tomas >> >>lear_at_algonet.se wrote: >> >> >Hi, >> > >> >For an upcoming patch, I need some fixed- or floating-point math. Does >> anyone have >> >a good fixed-point implementation of pow(10, x) (or exp10(x)), or some >> hints >> >on how to implement it? It doesn't need to be particularly fast; small size >> >is to be preferred actually. >> > >> >Or would it be acceptable to bring in the compiler's floating point >> stuff for >> >this? The idea is to not put it in a plugin or a codec (though I could put >> >it in the codec lib, it isn't really the natural place for it :)... >> > >> > Magnus >> > >> >_______________________________________________ >> >http://cool.haxx.se/mailman/listinfo/rockbox >> > >> > >> >>_______________________________________________ >>http://cool.haxx.se/mailman/listinfo/rockbox > >_______________________________________________ >http://cool.haxx.se/mailman/listinfo/rockbox _______________________________________________ http://cool.haxx.se/mailman/listinfo/rockbox Received on 2005-07-06 Page template was last modified "Tue Sep 7 00:00:02 2021" The Rockbox Crew -- Privacy Policy |