I have good preliminary results with a low-res test render at 2x10
352. Definitely exercising the > 308 pathway down there, though up to about e316 the series approximation can result in it not getting exercised. I can tell because if I disable the check for exponent underflow and denormalization of delta the 2e352 image, and indeed anything past about e340 centered on that reference point, gets bollixed up something fierce due to the reduced effective precision when delta denormalizes.
In principle, the Nanoscope magnification is
unlimited. Well, almost. The theoretical limit is 1e2147483647, and the practical limit is set by memory availability. 1,000,000 reference orbit iterations at e470 precision needs half a gig of RAM. Of course, if I add periodicity
detect logic to the reference orbit calculations, it might be possible to save some memory by storing it only until it becomes periodic enough,
plus one full cycle. I could also change it to use a disk-based data structure to hold the reference orbit (also allowing this to be saved and reused). For any single pixel computation, it only needs to keep an in-memory copy at double precision, plus the ABC coefficients down to wherever that breaks down for the image being calculated (the 2e352 image has the series approximation good to 113512 iterations, out of about 370,000 in the image generally; and the ABC coefficients seem to work if kept at 16 bit precision, but using a bignum datatype that supports giant exponents). Indeed, the higher precision version is needed only per image to compute the ABC coefficients (or, in a zoom sequence scenario, additional ABC coefficients that may now be usable with the next higher-magnification image), so reading it from disk is
not going to slow things to a crawl. (Well, the very first reference orbit point is also used to compute delta-nought per pixel, but that, by itself, won't consume half a gig until you're at e470000000!)
Nanoscope also now has Brent periodicity detection. It works for all shallow (double precision) images, and it works for deepzooms *if* the reference point is trapped rather than escaping. If the reference point is period a and the point being examined is period b, then the perturbation theory delta will repeat with period lcm(a,b) and Brent will pick it up as trapped. The minibrot at the end of a zoom sequence, presumably containing the reference point, will not have any higher period w.r.t. Brent detection than normal; minibrots swung by on the way down there may be a bit slower to periodicity-detect but it *should* work. A test render of a minibrot at 1e17 with the code modified to highlight periodicity-detected points revealed that it was detecting the minibrot interior points as periodic, though it's not clear how fast it converged. I'll perform tests to determine the speed difference of disabling/enabling the periodicity detection on that, or a similar, image eventually.