【发布时间】:2012-04-13 05:45:59
【问题描述】:
我一直在尝试生成Jacobi theta functions 的Newton's method 分形——我尝试使用 mpmath 需要很长时间,所以我尝试用 C 进行编码。
用于生成以下图像的源代码在此处:http://owen.maresh.info/allegra.c 并将使用 gcc allegra.c -o allegra -lm 进行编译,然后应作为 ./allegra 调用> jacobi.pnm
(来源:maresh.info)
所以: * 有什么方法可以加快评估速度——制作这张图片需要半个多小时的时间? (我希望能够以不同的名称快速制作这些图像,以便制作电影) * 我知道我在 theta 函数定义中犯了一个错误,但我很难找到不连续性的原因。
出于参考目的,此图像是通过对 ϑ3(z,0.001-0.3019*i) 执行标准牛顿法生成的
【问题讨论】:
-
您介意我将您的代码作为示例应用程序传递给苹果,使用他们的新
clangC 编译器编译时运行速度比使用他们的 gcc 慢。 -
没问题。稍后我会用 icc 试试这个。
-
icc是个好主意。我很好奇你看到它比gcc有多大改进。 -
哇。
icc生成的代码运行速度比 gcc 快 7 倍,令人印象深刻。 (也感谢提到 icc,我没有意识到英特尔会在 Linux 上免费提供他们的开发工具供非商业用途使用)。 -
附录:我完成了渲染,可以在 youtube 上查看:youtube.com/watch?v=f0ZGfCmPjWA 下一步是尝试使用英特尔数学内核库(假设它会比数学更快.h)
标签: optimization fractals