__float128太慢了
我对GMP或MPFR没有经验。
有什么我能做的吗?
这是我的代码的一个非常简化的版本。
我是堆叠溢出的新手
#include <SFML/Graphics.hpp>
typedef long double num;
void drawFract(const unsigned int threadNum)
{
for(unsigned int iy = 0; iy < threadHeight; iy++)
{
num px = xStart;
for(unsigned int ix = 0; ix < w; ix++)
{
pixels[counter + 0] = 0; pixels[counter + 1] = 0;
pixels[counter + 2] = 0; pixels[counter + 3] = 255;
num zr = px, zi = py;
for(unsigned int i = 0; i < iter; i++)
{
const num sqzr = zr * zr,
sqzi = zi * zi,
add = zr + zi;
zi = py + add*add - sqzr - sqzi;
zr = sqzr - sqzi + px;
if(sqzr + sqzi > bail)
{
i %= colors;
pixels[counter + 0] = r[i];
pixels[counter + 1] = g[i];
pixels[counter + 2] = b[i];
break;
}
}
px += xIter;
counter += 4;
}
py += yIter;
}
return;
}
int main()
{
app.setFramerateLimit(64);
sf::Thread bot0(drawFract,0), bot1(drawFract,1),
bot2(drawFract,2), bot3(drawFract,3),
bot4(drawFract,4), bot5(drawFract,5),
bot6(drawFract,6), bot7(drawFract,7);
/* My position manager system */
}
对不起,我真的需要帮助,不是为了工作,只是为了好玩。
MPFR是任意精度浮点的标准。但是,如果你对表现很认真,那么你应该考虑使用rendering optimizations。