update docs for 32-bit intermediates

This commit is contained in:
Brooke Vibber 2024-12-31 14:16:43 -08:00
parent 2e8893fd78
commit cc83c76706
2 changed files with 3 additions and 5 deletions

View file

@ -27,7 +27,7 @@ The 16-bit signed integer multiplication takes two 16-bit inputs and emits one 3
* when expanded RAM is available as on 130XE, a 64KB 8-bit multiplication table accelerates the remaining multiplications
* without expanded RAM, a table of half-squares is used to implement the algorithm from https://everything2.com/title/Fast+6502+multiplication
The mandelbrot calculations are done using 4.12-precision fixed point numbers. It may be possible to squish this down to 3.13.
The mandelbrot calculations are done using 4.12-precision fixed point numbers with 8.24-precision intermediates. It may be possible to squish this down to 3.13/6.26.
Iterations are capped at 255.
@ -47,4 +47,4 @@ Currently produces a `.xex` executable, which can be booted up in common Atari e
## Todo
See ideas in `todo.md`.
See ideas in `todo.md`.

View file

@ -3,13 +3,11 @@ things to try:
* skip add on the top-byte multiply in sqr8/mul8
* should save a few cycles, suggestion by jamey
* perform the zx_next = zx^s + cx in 32-bit space, before rounding
* should improve precision on max zoom, might cost a few cycles
* patch the entire expanded-ram imul8xe on top of imul8 to avoid the 3-cycle thunk penalty :D
* try 3.13 fixed point instead of 4.12 for more precision
* can we get away without the extra bit?
* since exit compare space would be 6.26 i think so
* y-axis mirror optimization