#include #include "sparse_matrix.h" void init_vector(double *vector, int size, double value) { for (int i = 0; i < size; ++i) { vector[i] = value; } } double diff_norm_vector(double *vector1, double *vector2, int size) { double res = 0.0; for (int i = 0; i < size; ++i) { res += fabs(vector1[i] - vector2[i]); } return res; } void generate_f(const SparseMatrix *matrix, double *res) { int N = matrix->num_nodes; init_vector(res, N, 0); int num_arcs = matrix->num_arcs; for (int i = 0; i < num_arcs; ++i) { res[matrix->arcs[i].dest] = 1; } } double vec_product(const double* v1, const double* v2, int N) { double sum = 0.0; for (int i = 0; i < N; i++) { sum += v1[i] * v2[i]; } return sum; } void normalize_vector(double* v, int N) { double sum = 0.0; for (int i = 0; i < N; i++) { sum += v[i]; } for (int i = 0; i < N; i++) { v[i] /= sum; } }