/*
prodmv.cu (CUDA)
u = Av
*/

#include "oth.h"
#include "oth_cuda.h"
#include "oth_prototype.h"

void prodmv(int pre, int ifreq, cuDoubleComplex *a, const cuDoubleComplex *v, cuDoubleComplex *u, cuDoubleComplex *b)
{
	if (!pre && MATRIX) {
		prodmvEx(a, v, u);
		prodmvEy(a, v, u);
		prodmvEz(a, v, u);
	}
	else {
		matrixEx(pre, ifreq, a, v, u, b);
		matrixEy(pre, ifreq, a, v, u, b);
		matrixEz(pre, ifreq, a, v, u, b);
	}
}
