我正在开发新版本的Mandelbrot 屏幕保护程序,但浮点精度已用完 - 简单的双精度值没有足够的有效数字来满足我的需要。
更重要的数字 = 更高级别的分形放大
当我在 Delphi 7 中编写此屏幕保护程序的版本时,我使用了扩展的浮点类型,大小为 80 位。
在 .NET 中,我可以切换到decimal,但是这样做的性能非常糟糕,分形生成速度减慢了 20 倍左右。
.NET是否有任何等效的扩展?或者,是否有任何精度高于double的数字类型仍然使用 FPU 进行评估,因此没有decimal的高性能命中?
更新
我的屏幕保护程序已经设法将分形放大许多(许多!)数量级;目前,仅当使用的数字类型无法分隔相邻像素的纵坐标时,它才会重置为基本分形。双扩展改进带来的额外 16 位精度将使我的大小增加近 16 倍。
至于性能,我的算法已经设法消除了所需的 95-99% 的数学运算(与计算许多像素的简单实现相比),同时保留了分形的完整性。