Hacker News new | ask | show | jobs
by odipar 1648 days ago
Another interesting fixed-point (16 bit) division 'algorithm' is with log and exp tables, with a well chosen base :).

consider a and b being 16 bit fixed-points (at the 10 bit position) then:

c = a/b

is:

al = log(a) (log table lookup)

bl = log(b) (log table lookup)

c = exp(al - bl) (exp table lookup)

...so basically 3 table lookups and 1 subtraction.

this method that has been used to do fast 3d->2d projections on a Atari ST (68000 processor): https://www.atari-forum.com/viewtopic.php?f=1&t=5696