SSE AVXのプログラミング
■ このスレッドは過去ログ倉庫に格納されています
0476デフォルトの名無しさん
2011/10/18(火) 14:55:32.02#include <smmintrin.h>
double NormalizeDouble(double value, register int digits){
static double t0[] = {1, 10, 100, 1000, 10000, 100000};
static double t1[] = { 1, 0.1, 0.01, 0.001, 0.0001, 0.00001 };
__m128d xmm0 = _mm_set_sd(value);
__m128d xmm1 = _mm_set_sd(t0[digits]);
__m128d xmm2 = _mm_set_sd(t1[digits]);
xmm0 = _mm_mul_sd(xmm0, xmm1);
xmm0 = _mm_round_pd(xmm0, 0); //ほぼ四捨五入。こまけぇこたぁいいんだよ!
xmm0 = _mm_mul_sd(xmm0, xmm2);
return _mm_cvtsd_f64(xmm0);
}
うん、多分早くなってない。
■ このスレッドは過去ログ倉庫に格納されています