CE[0].CalcEngine->SetVariabl(0, a, CE[0].varx);
CE[0].CalcEngine->Calc(CE[0].eh);
f0 = CE[0].CalcEngine->Rezult();
CE[0].CalcEngine->SetVariabl(0, b, CE[0].varx);
CE[0].CalcEngine->Calc(CE[0].eh);
fN = CE[0].CalcEngine->Rezult();
#pragma omp parallel private(i) shared(N, a, b) reduction(+: sum1,
sum2)
#pragma omp for
for (i = 1; i < N / 2; i++) {
CE[omp_get_thread_num()].CalcEngine->SetVariabl(0, a +
(b - a) * (2 * i - 1) / N, CE[omp_get_thread_num()].varx);
CE[omp_get_thread_num()].CalcEngine->Calc(CE[omp_get_thread_num()].eh);
sum1 +=
CE[omp_get_thread_num()].CalcEngine->Rezult();
CE[omp_get_thread_num()].CalcEngine->SetVariabl(0, a +
(b - a) * (2 * i) / N, CE[omp_get_thread_num()].varx);
CE[omp_get_thread_num()].CalcEngine->Calc(CE[omp_get_thread_num()].eh);
sum2 +=
CE[omp_get_thread_num()].CalcEngine->Rezult();
};
CE[0].CalcEngine->SetVariabl(0, a + (b - a) * (N - 1) / N,
CE[0].varx);
CE[0].CalcEngine->Calc(CE[0].eh);
fNm1 = CE[0].CalcEngine->Rezult();
res = ((b - a) / (3 * N)) * (f0 + 4 * (sum1 + fNm1) + 2 * sum2 +
fN);