#pragma once

/** 	Inner product
	@param[in] N	number of vector elements
	@param[in] x	vector
	@param[in] y	vector
	@return 	    resulting Euclidian inner product <x,y>
*/
double scalar(unsigned int N, double const x[], double const y[]);
double scalar_unroll(unsigned int const N, double const x[], double const y[]);

/** 	L_2 Norm of a vector
	@param[in] N	number of vector elements
	@param[in] x	vector
	@return 	    resulting Euclidian norm <x,y>
*/
double norm(unsigned int N, double const x[]);
