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

我正在研究Mandelbrot屏幕保护程序的一个新版本,而且我的浮点数精度不够 - 简单的double值没有足够的重要数字来满足我的需求。

更有意义的数字=放大到分形的更高级别

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

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

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

更新

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

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


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

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

如果您需要超过64 decimal的数字数据类型,请使用decimal并优化您的算法以提高性能。

链接地址: http://www.djcxy.com/p/63999.html

上一篇: Any equivalent of "extended" for C#?

下一篇: Java wildcard in multi