#include <stdio.h>
#include <omp.h>
#define N 1000000
int main() {
double sum = 0.0;
double a[N], b[N];
// Initialize vectors a and b
#pragma omp parallel for reduction(+:sum)
for (int i = 0; i < N; ++i) {
sum += a[i] * b[i];
}
printf("Dot product: %f\n", sum
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxvbXAuaD4KCiNkZWZpbmUgTiAxMDAwMDAwCgppbnQgbWFpbigpIHsKICAgIGRvdWJsZSBzdW0gPSAwLjA7CiAgICBkb3VibGUgYVtOXSwgYltOXTsKCiAgICAvLyBJbml0aWFsaXplIHZlY3RvcnMgYSBhbmQgYgoKICAgICNwcmFnbWEgb21wIHBhcmFsbGVsIGZvciByZWR1Y3Rpb24oKzpzdW0pCiAgICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSkgewogICAgICAgIHN1bSArPSBhW2ldICogYltpXTsKICAgIH0KCiAgICBwcmludGYoIkRvdCBwcm9kdWN0OiAlZlxuIiwgc3VtKTsKCiAgICByZXR1cm4gMDsKfQ==