プログラムの高速化について語る
■ このスレッドは過去ログ倉庫に格納されています
0203デフォルトの名無しさん
NGNGvalarrayを使った行列の乗算
これと比べていいのかな?
#include <iostream>
#include <valarray>
using namespace std;
int main()
{
const int m=1000, k=1000, n=1000;
long mk=m*k, kn=k*n, mn=m*n, in,i,j;
valarray<double> a(mk), b(kn), c(mn), v1(k),v2(k);
for(i=0; i<m; i++)
{
in=i*n;
v1=a[slice(i*k,k,1)];
for(j=0; j<n; j++)
{
v2=b[slice(j,k,n)];
v2*=v1;
c[in+j]=v2.sum();
}
}
a.resize(0); // clear aa,bb,cc
b.resize(0);
c.resize(0);
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています