> if you want to solve non-linear equations in a uC using real math and not
> FloPo, my suggestion would be to consider a logarithmic number
> system (LNS). either consider all your data in a fixed point binary LNS
> (choose radix point to suit your application, 8b and 16b implementations
> are practical: possibly an 8b as {sign,3-int,4-frac}), or implement
> conversions.
>
> why would you want to do this? to get multiply and divide in a single ADD
> instruction, and to get square-root and square in a single-bit right- or
> left-shift, negation as a single bit NOT on the sign, and reciprocation as
> (n-1)bit NOT on the word. this also means you can often get
> reciprocal-roots, negated quotients, etc., in a single instruction in a
> single cycle.
>
> all these operations are useful in solving systems, and are usually all
> very expensive operations in a uC (wait and see how long a reciprocal
> square-root will take...)
>
> sounds too good to be true? the catch is addition and subtraction, for
> which you need a lookup table at 8b, and (depending on memory and word
> format) possibly a small linear interpolation at 16b.
>
> unsure how applicable this is without more details of your application,
> but i think i've given you enough information to evaluate the LNS as a
> solution. its also useful for anything with a preponderance of
> multiplicative operations (filters et cetera...)
>
> further points of joy - greater dynamic range than floating point, higher
> average resolution, constant resolution over full dynamic range, better
> round-off noise characteristics c.f. FloPo due to 'representation exact'
> results for mul,div,sqr,sqrt, etc. and no microcoded iteration for any
> operation.
>
> ok, that is my axe well and truely ground, :)
>
> ed c
>
> --
>
http://www.piclist.com#nomail Going offline? Don't AutoReply us!
> email
.....listservKILLspam
@spam@mitvma.mit.edu with SET PICList DIGEST in the body
>
>
>