C#的任何等效“扩展”?

我正在研究我的Mandelbrot屏幕保护程序的新版本,并且我的浮点精确度已经不足了 – 简单的双值没有足够的重要数据来满足我的需求。

更重要的数字=更大程度的放大分形

回到我在Delphi 7中编写这个屏幕保护程序的版本时,我使用了80位大小的扩展浮点类型。

在.NET中,我可以切换到十进制 ,但是这对性能的影响非常糟糕,分形生成速度减慢了20倍左右。

是否有任何相当于.NET的扩展 ? 或者,是否有任何数字类型的精度高于double仍然使用FPU进行评估,因此不具有十进制的高性能命中?

更新

我的屏幕保护程序已经设法缩放许多(很多!)数量级的分形; 目前,只有当使用的数字类型无法分隔相邻像素的纵坐标时,它才会重置为基础分形。 从双倍扩展的改进中额外的16位精度将使我接近16倍的大小倍增。

至于性能,我的算法已经设法消除了所需数学的95-99%(与计算许多像素的简单实现相比),同时保留了分形的完整性。

在64位平台上, Extended类型是Double的别名,只有8个字节。 在32位平台上, Extended号表示为10个字节(80位)。

这意味着即使您的Delphi程序在64位平台上也可能表现不佳。

如果您需要一个超过64 decimal的数字数据类型,那么请转到decimal并优化算法以提高性能。