C、C++の最適化について語るスレ 3
■ このスレッドは過去ログ倉庫に格納されています
0486デフォルトの名無しさん
2011/09/17(土) 05:43:42.51固定小数点演算にすればいいんじゃないの?
u_long sqrt2(u_long f)
{
u_long s = f,t;
if(x == 0) return 0;
do {
t = s;
s = (t + f / t) >> 1;
}while(s < t);
return t;
}
int XY[M], b[N];
int x[N], y[N], z[N];
int xi, yi, zi;
for(int i = 0; i < 40000; i++) {
xi = x[i]; yi = y[i]; zi = z[i]:
for( int j = i+1; j < 40000; j++) {
r = sqrt2( (xi-x[j])<<1 +
(yi-y[j])<<1 +
(zi-z[j])<<1 ) + 0.5;
XY[r] += b[i]*b[j];
}
}
sqrt2()関数はここから持ってきた。
ttp://www.geocities.co.jp/SiliconValley-PaloAlto/5438/sqrt.htm
■ このスレッドは過去ログ倉庫に格納されています