Тест завершения в выражении OpenMP для оператора for имеет неправильную форму - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь вычислить значение определенного интеграла с трапециевидным правилом, используя openMP. Как мне установить метод сокращения для этого?

float trapezoidalOMP(float a, float b, float n)
{
    float dx = (b - a) / (float)(n - 1);
    int Thr = 4;
    float sum = (y(a) + y(b)) / 2.;
    #pragma omp parallel for reduction(+:sum) num_threads(Thr) 
        for (int i = 1; i < n - 1; i++)
        {
            float x = a + dx * (float)i;
            float f = y(x);
            sum += f;
        }
        return sum *= dx;
}
float y(float x)
{
    return sqrt(pow(x,2)+1);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...