Open jbrezmorf opened 7 years ago
Jak se Armadillo a naše implementace chovají pro práci s velkým polem malých vektorů s pevnou velikostí?
Porovname tri varianty reprezentace velkeho pole melych vektoru:
std::vector<Vector<double, 3> >
std::vector<arma::vec3 >
double [3*n]
class raw_arma { double *ptr; raw_arma(int size) { ptr = new [3*size]; } inline arma::vec3 get(int i) { return Mat<double>::fixed<3,1>(ptr + 3*i); }
Testovat: A. vygenerovat nahodny obsah vektoru v poli a pak merit vypocet jejich souctu. Pro N=1e6. B. po slozkach pocitat skalarni souciny:
vector<Vector> a,b; vector<double> c; ... // naplnit a,b for i=0..N c[i] = dot( a[i], b[i] )
Jak se Armadillo a naše implementace chovají pro práci s velkým polem malých vektorů s pevnou velikostí?
Porovname tri varianty reprezentace velkeho pole melych vektoru:
std::vector<Vector<double, 3> >
std::vector<arma::vec3 >
( pametove neefektivni) vec3 == Matdouble [3*n]
+ pouziti konstruktoru: MatTestovat: A. vygenerovat nahodny obsah vektoru v poli a pak merit vypocet jejich souctu. Pro N=1e6. B. po slozkach pocitat skalarni souciny: