Я работаю над новой версией моей заставки Mandelbrot, и у меня заканчиваются плавающие точечная точность — простые двойные значения не имеют достаточно значимых цифр для моих нужд.
Более значимые цифры = более высокие уровни масштабирования фрактала.
Когда я писал версию этой заставки в Delphi 7, я использовал extended тип с плавающей запятой, размер 80 бит.
В .NET я мог бы переключиться на десятичный, но снижение производительности для этого ужасно, замедляя генерацию фракталов примерно в 20 раз.
Есть ли аналог extended для .NET? Или, в качестве альтернативы, существуют ли какие-либо числовые типы с более высокой точностью, чем double, которые все еще используют FPU для оценки и, следовательно, не имеют высокой производительности decimal?
Обновить
Моя заставка уже успевает увеличить фрактал на много (много!) порядков; в настоящее время он сбрасывается до базового фрактала только тогда, когда используемый числовой тип не может разделить ординаты для соседних пикселей. Дополнительные 16 бит точности от двойного расширения дали бы мне еще около 16 удвоений размера.
Что касается производительности, мой алгоритм уже умудряется исключить 95-99% необходимой математики (по сравнению с наивной реализацией, которая вычисляет много пикселей), сохраняя при этом целостность фрактала.