}
// создание копий фрейма для каждой основной последовательности
+ // формально нужно ::par
std::fill(std::execution::seq, tsTemp.begin(), tsTemp.end(), trajectory);
// фитирование каждой копии
#include "gtest/gtest.h"
#include <iostream>
+#include <execution>
// https://habr.com/ru/post/119090/
// ещё подумать что это такое и как это выделяется
}
+void preLoad(std::vector< gmx::RVec > &trj)
+{
+ size_t lmt = 1'000'000;
+ trj.resize(0);
+ trj.resize(lmt);
+ for (size_t i {0}; i < lmt; ++i) {
+ trj[i] = gmx::RVec(1.1 * i, 2.2 * i, 3.3 * i);
+ }
+}
+
+TEST( domainTests, old_way)
+{
+ std::vector< gmx::RVec > trajectory;
+ preLoad(trajectory);
+ size_t bn = 1'000;
+ std::vector< std::vector< gmx::RVec > > trjTemp;
+ trjTemp.resize(0);
+ trjTemp.resize(bn, trajectory);
+}
+
+TEST( domainTests, fill)
+{
+ std::vector< gmx::RVec > trajectory;
+ preLoad(trajectory);
+ size_t bn = 1'000;
+ std::vector< std::vector< gmx::RVec > > trjTemp;
+ trjTemp.resize(0);
+ trjTemp.resize(bn);
+ std::fill(trjTemp.begin(), trjTemp.end(), trajectory);
+}
+
+TEST( domainTests, parallel_fill)
+{
+ std::vector< gmx::RVec > trajectory;
+ preLoad(trajectory);
+ size_t bn = 1'000;
+ std::vector< std::vector< gmx::RVec > > trjTemp;
+ trjTemp.resize(0);
+ trjTemp.resize(bn);
+ std::fill(std::execution::seq, trjTemp.begin(), trjTemp.end(), trajectory);
+}
+
TEST( domainTests, domainTest_print)
{
// данную функцию тестировать смысла нет, слишком простой функционал