Имеется некая функция, в который идет много вычислений с матрицей. Решил разбить работу на два потока.
...
thread even(bareissEven,a, k, p0);
thread odd(bareissOdd,a, k, p0);
even.detach();
odd.detach();
...
Вызываемые функции
void bareissEven(matrix<cpp_int>& a, int k, cpp_int p0){
for (int i = 0; i < a.size1(); i++)
{
if (i == k) continue;
for (int j = 0; j < a.size2(); j++)
{
if (j == k) continue;
if (j % 2 == 0) a(i, j) = ((a(k, k) * a(i, j)) - (a(i, k) * a(k, j))) / p0;
}
}
}
void bareissOdd(matrix<cpp_int>& a, int k, cpp_int p0) {
for (int i = 0; i < a.size1(); i++)
{
if (i == k) continue;
for (int j = 0; j < a.size2(); j++)
{
if (j == k) continue;
if (j % 2 != 0) a(i, j) = ((a(k, k) * a(i, j)) - (a(i, k) * a(k, j))) / p0;
}
}
}
При компиляции получаю
Что я делаю не так?