Id 1.2 will remove all integer math code #230
Replies: 8 comments 16 replies
-
I wonder if we can replace the integer arithmetic with double double or quad double arithmetic as all the structures are in place. It may save time later if we want to add these arithmetic types. |
Beta Was this translation helpful? Give feedback.
-
I'm making good progress here already:
|
Beta Was this translation helpful? Give feedback.
-
I got my local tree working with all the integer types removed from the ....and it's a good thing I added all those image compare tests! A handful of fractal types render differently now... and I don't mean just a little different because of integer vs. floating-point precision, I mean wildly differently like 45% of the pixels don't match. Viewing the test image and manually comparing it to the reference makes it blatantly obvious that something is very different. So, a good amount of progress made, but I'll have to come back to this after I get the hotfix out for 1.1.1. Yay tests! |
Beta Was this translation helpful? Give feedback.
-
I've removed all the integer math code now and added tests using GIF images saved from DOS FRACTINT to verify that old GIF images with the integer types saved in them are properly migrated to their corresponding floating-point types. All of those changes have been pushed to the master branch. Removing this code was made significantly easier by ReSharper for C++ and a few tricks I employed along the way to get the tool to help me remove the relevant code. I'm going to let the code simmer until the close date of the 1.2 milestone so that there is more time to validate the changes with manual testing. While every effort was made to ensure that the changes were made safely, most of the code in question isn't under detailed tests, although the image compare tests cover most of the fractal types. In the meantime, in addition to manual testing, I'm going to continue working on the wx branch to get version 2.0 moving ASAP. |
Beta Was this translation helpful? Give feedback.
-
I've updated the documentation files to describe the changes in this release and that completes the last remaining issues for the 1.2 milestone. |
Beta Was this translation helpful? Give feedback.
-
That's great. I look forward to where we will get to in such a short time. Thanks. |
Beta Was this translation helpful? Give feedback.
-
One of the greatest strengths of Id has always been the extensive help documentation, so it's important to modernize this asset as well as the code. The HTML version of the documentation has been greatly improved for 1.2. All the documentation for the fractal types has been updated to use AsciiMath markup around the various bits of formulas and math (or 'maths' as Brits say) that are rendered into the AsciiDoc markup to produce the HTML help with asciidoctor. This only affects the HTML documentation; the 'printed manual' and the in-program help still use the ASCII style rendition of formulas. The documentation linked from the repository uses the HTML help for the current version. The installer includes the HTML help along with an installed shortcut to the local HTML file. At some point the ASCII rendered in-program help will be replaced with the HTML help. We'll probably limp along with Along the way I fixed #259, a bug in the help compiler that was preventing proper AsciiDoc markup from being emitted. Going forward we'll be generating a PDF of the manual (see #262) from the AsciiDoc markup for those who like hardcopy documentation instead of the ASCII text file formatted for printing. |
Beta Was this translation helpful? Give feedback.
-
1.2 has been released, many thanks to @PaulTheLionHeart for helping out! |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
In email discussions, @PaulTheLionHeart and I have been discussing when to kill off the integer math fractal code. There is even a branch in the official fractint subversion repository, called fractint-float, where all the integer math fractal code has been removed.
The integer math code was useful when a CPU didn't have builtin hardware floating-point support and buying a floating-point math corprocessor was potentially expensive or your motherboard might not have even supported it. Now, every desktop and mobile CPU has plenty of hardware floating-point performance and the integer math code is simply a maintenance burden.
After version 1.1 releases at the end of January 2025, I will start on a quick 1.2 release that does nothing but remove the integer math fractal code. This removal has always been "on the plan" for some time, but it will simplify the steps going forward to wxWidgets in the 2.0 release and beyond.
Beta Was this translation helpful? Give feedback.
All reactions