#pragma once #include using namespace std; /** (A) Inner product of two vectors (from skalar_stl) @param[in] x vector @param[in] y vector @return resulting Euclidian inner product */ double scalar_parallel(vector const &x, vector const &y); /** (A) Sum entries of vector @param[in] x vector @return sum */ double sum(vector const &x); /** (B) Matrix-vector product (from intro_vector_densematrix) * @param[in] A dense matrix (1D access) * @param[in] u vector * * @return resulting vector */ vector MatVec_parallel(vector const &A, vector const &x); /** (C) Matrix-matrix product * @param[in] A MxL dense matrix (1D access) * @param[in] B LxN dense matrix (1D access) * @param[in] shared_dim shared dimension L * * @return resulting MxN matrix */ vector MatMat_parallel(vector const &A, vector const &B, size_t const &shared_dim); /** (D) Evaluation of a polynomial function using Horner's scheme * @param[in] a coefficient vector * @param[in] x vector with input values * * @return vector with output values */ vector poly_parallel(vector const &a, vector const &x);