#include <complex>
#include <iostream>
#include "blis.hh"
#include "test.hh"
using namespace blis;
using namespace std;
#define N 1
template< typename T>
void test_rot()
{
T c, s;
T X[N], X_ref[N];
T Y[N], Y_ref[N];
int n;
int incx, incy;
n = N;
incx = 1;
incy = 1;
if(is_same<T , float>::value){
c = -1.0f;
s = 0.0f;
X[0] = { -0.314f };
Y[0] = { -0.406f };
X_ref[0] = { 0.314f };
Y_ref[0] = { 0.406f };
}else{
c = -1;
s = 0;
X[0] = { -0.176 };
Y[0] = { -0.165 };
X_ref[0] = { 0.176 };
Y_ref[0] = { 0.165 };
}
#ifdef PRINT
printvector(X, n, (char *)"Before blis::rot\nVector X");
printvector(Y, n, (char *)"Vector Y");
#endif
blis::rot<T>( N, X, incx, Y, incy, c, s);
#ifdef PRINT
printvector(X, n, (char *)"After blis::rot\nVector X");
printvector(Y, n, (char *) "Vector Y");
printvector(X, n, (char *) "Expected Output from blis::rot\nVector X");
printvector(Y, n, (char *)"Vector Y");
#endif
if((computeErrorV(incx, incx , n, X, X_ref )==1) || (computeErrorV(incy, incy , n, Y, Y_ref )==1))
printf("%s TEST FAIL\n" , __PRETTY_FUNCTION__);
else
printf("%s TEST PASS\n" , __PRETTY_FUNCTION__);
}
int main( int argc, char** argv )
{
test_rot<float>( );
test_rot<double>( );
return 0;
}