scf_celebic/ex3/code/task_5.cpp
dino.celebic e662f3c84b fixes
2025-11-13 13:17:09 +01:00

33 lines
No EOL
690 B
C++

#include "task_4+6.h"
#include "task_5.h"
#include "timing.h"
#include <cmath>
#include <iostream>
#include <vector>
using namespace std;
double norm(vector<double> const &x) {
size_t N = x.size();
double sum = 0.0;
for (size_t i = 0; i < N; ++i) {
sum += x[i] * x[i];
}
return sqrt(sum);
}
vector<double> init_norm(size_t N) {
vector<double> x(N);
for (size_t i = 0; i < N; ++i) {
x[i] = i%219 + 1.0;
}
return x;
}
void benchmark_norm(vector<double> const &x, size_t NLOOPS) {
double s(0.0), sum(0.0);
for (size_t i = 0; i < NLOOPS; ++i) {
s = norm(x);
sum += s;
}
printf("||x|| = %f\n", sum/NLOOPS);
}