Blame cblas/test_hemv.c

Packit 67cb25
#include <gsl/gsl_test.h>
Packit 67cb25
#include <gsl/gsl_ieee_utils.h>
Packit 67cb25
#include <gsl/gsl_math.h>
Packit 67cb25
#include <gsl/gsl_cblas.h>
Packit 67cb25
Packit 67cb25
#include "tests.h"
Packit 67cb25
Packit 67cb25
void
Packit 67cb25
test_hemv (void) {
Packit 67cb25
const double flteps = 1e-4, dbleps = 1e-6;
Packit 67cb25
  {
Packit 67cb25
   int order = 101;
Packit 67cb25
   int uplo = 121;
Packit 67cb25
   float alpha[2] = {1.0f, 0.0f};
Packit 67cb25
   float beta[2] = {-0.3f, 0.1f};
Packit 67cb25
   int N = 1;
Packit 67cb25
   int lda = 1;
Packit 67cb25
   float A[] = { -0.434f, 0.837f };
Packit 67cb25
   float X[] = { 0.209f, -0.935f };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   float Y[] = { 0.346f, -0.412f };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   float y_expected[] = { -0.153306f, 0.56399f };
Packit 67cb25
   cblas_chemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 1; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chemv(case 1070) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chemv(case 1070) imag");
Packit 67cb25
     };
Packit 67cb25
   };
Packit 67cb25
  };
Packit 67cb25
Packit 67cb25
Packit 67cb25
  {
Packit 67cb25
   int order = 101;
Packit 67cb25
   int uplo = 121;
Packit 67cb25
   float alpha[2] = {1.0f, 0.0f};
Packit 67cb25
   float beta[2] = {-0.3f, 0.1f};
Packit 67cb25
   int N = 1;
Packit 67cb25
   int lda = 1;
Packit 67cb25
   float A[] = { -0.434f, 0.837f };
Packit 67cb25
   float X[] = { 0.209f, -0.935f };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   float Y[] = { 0.346f, -0.412f };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   float y_expected[] = { -0.153306f, 0.56399f };
Packit 67cb25
   cblas_chemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 1; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chemv(case 1071) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chemv(case 1071) imag");
Packit 67cb25
     };
Packit 67cb25
   };
Packit 67cb25
  };
Packit 67cb25
Packit 67cb25
Packit 67cb25
  {
Packit 67cb25
   int order = 101;
Packit 67cb25
   int uplo = 122;
Packit 67cb25
   float alpha[2] = {1.0f, 0.0f};
Packit 67cb25
   float beta[2] = {-0.3f, 0.1f};
Packit 67cb25
   int N = 1;
Packit 67cb25
   int lda = 1;
Packit 67cb25
   float A[] = { -0.434f, 0.837f };
Packit 67cb25
   float X[] = { 0.209f, -0.935f };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   float Y[] = { 0.346f, -0.412f };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   float y_expected[] = { -0.153306f, 0.56399f };
Packit 67cb25
   cblas_chemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 1; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chemv(case 1072) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chemv(case 1072) imag");
Packit 67cb25
     };
Packit 67cb25
   };
Packit 67cb25
  };
Packit 67cb25
Packit 67cb25
Packit 67cb25
  {
Packit 67cb25
   int order = 101;
Packit 67cb25
   int uplo = 122;
Packit 67cb25
   float alpha[2] = {1.0f, 0.0f};
Packit 67cb25
   float beta[2] = {-0.3f, 0.1f};
Packit 67cb25
   int N = 1;
Packit 67cb25
   int lda = 1;
Packit 67cb25
   float A[] = { -0.434f, 0.837f };
Packit 67cb25
   float X[] = { 0.209f, -0.935f };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   float Y[] = { 0.346f, -0.412f };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   float y_expected[] = { -0.153306f, 0.56399f };
Packit 67cb25
   cblas_chemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 1; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chemv(case 1073) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chemv(case 1073) imag");
Packit 67cb25
     };
Packit 67cb25
   };
Packit 67cb25
  };
Packit 67cb25
Packit 67cb25
Packit 67cb25
  {
Packit 67cb25
   int order = 102;
Packit 67cb25
   int uplo = 121;
Packit 67cb25
   float alpha[2] = {1.0f, 0.0f};
Packit 67cb25
   float beta[2] = {-0.3f, 0.1f};
Packit 67cb25
   int N = 1;
Packit 67cb25
   int lda = 1;
Packit 67cb25
   float A[] = { -0.434f, 0.837f };
Packit 67cb25
   float X[] = { 0.209f, -0.935f };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   float Y[] = { 0.346f, -0.412f };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   float y_expected[] = { -0.153306f, 0.56399f };
Packit 67cb25
   cblas_chemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 1; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chemv(case 1074) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chemv(case 1074) imag");
Packit 67cb25
     };
Packit 67cb25
   };
Packit 67cb25
  };
Packit 67cb25
Packit 67cb25
Packit 67cb25
  {
Packit 67cb25
   int order = 102;
Packit 67cb25
   int uplo = 121;
Packit 67cb25
   float alpha[2] = {1.0f, 0.0f};
Packit 67cb25
   float beta[2] = {-0.3f, 0.1f};
Packit 67cb25
   int N = 1;
Packit 67cb25
   int lda = 1;
Packit 67cb25
   float A[] = { -0.434f, 0.837f };
Packit 67cb25
   float X[] = { 0.209f, -0.935f };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   float Y[] = { 0.346f, -0.412f };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   float y_expected[] = { -0.153306f, 0.56399f };
Packit 67cb25
   cblas_chemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 1; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chemv(case 1075) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chemv(case 1075) imag");
Packit 67cb25
     };
Packit 67cb25
   };
Packit 67cb25
  };
Packit 67cb25
Packit 67cb25
Packit 67cb25
  {
Packit 67cb25
   int order = 102;
Packit 67cb25
   int uplo = 122;
Packit 67cb25
   float alpha[2] = {1.0f, 0.0f};
Packit 67cb25
   float beta[2] = {-0.3f, 0.1f};
Packit 67cb25
   int N = 1;
Packit 67cb25
   int lda = 1;
Packit 67cb25
   float A[] = { -0.434f, 0.837f };
Packit 67cb25
   float X[] = { 0.209f, -0.935f };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   float Y[] = { 0.346f, -0.412f };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   float y_expected[] = { -0.153306f, 0.56399f };
Packit 67cb25
   cblas_chemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 1; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chemv(case 1076) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chemv(case 1076) imag");
Packit 67cb25
     };
Packit 67cb25
   };
Packit 67cb25
  };
Packit 67cb25
Packit 67cb25
Packit 67cb25
  {
Packit 67cb25
   int order = 102;
Packit 67cb25
   int uplo = 122;
Packit 67cb25
   float alpha[2] = {1.0f, 0.0f};
Packit 67cb25
   float beta[2] = {-0.3f, 0.1f};
Packit 67cb25
   int N = 1;
Packit 67cb25
   int lda = 1;
Packit 67cb25
   float A[] = { -0.434f, 0.837f };
Packit 67cb25
   float X[] = { 0.209f, -0.935f };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   float Y[] = { 0.346f, -0.412f };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   float y_expected[] = { -0.153306f, 0.56399f };
Packit 67cb25
   cblas_chemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 1; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chemv(case 1077) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chemv(case 1077) imag");
Packit 67cb25
     };
Packit 67cb25
   };
Packit 67cb25
  };
Packit 67cb25
Packit 67cb25
Packit 67cb25
  {
Packit 67cb25
   int order = 101;
Packit 67cb25
   int uplo = 121;
Packit 67cb25
   double alpha[2] = {0, 0};
Packit 67cb25
   double beta[2] = {1, 0};
Packit 67cb25
   int N = 1;
Packit 67cb25
   int lda = 1;
Packit 67cb25
   double A[] = { 0.036, -0.966 };
Packit 67cb25
   double X[] = { -0.695, 0.886 };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   double Y[] = { 0.486, 0.629 };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   double y_expected[] = { 0.486, 0.629 };
Packit 67cb25
   cblas_zhemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 1; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhemv(case 1078) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhemv(case 1078) imag");
Packit 67cb25
     };
Packit 67cb25
   };
Packit 67cb25
  };
Packit 67cb25
Packit 67cb25
Packit 67cb25
  {
Packit 67cb25
   int order = 101;
Packit 67cb25
   int uplo = 121;
Packit 67cb25
   double alpha[2] = {0, 0};
Packit 67cb25
   double beta[2] = {1, 0};
Packit 67cb25
   int N = 1;
Packit 67cb25
   int lda = 1;
Packit 67cb25
   double A[] = { 0.036, -0.966 };
Packit 67cb25
   double X[] = { -0.695, 0.886 };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   double Y[] = { 0.486, 0.629 };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   double y_expected[] = { 0.486, 0.629 };
Packit 67cb25
   cblas_zhemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 1; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhemv(case 1079) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhemv(case 1079) imag");
Packit 67cb25
     };
Packit 67cb25
   };
Packit 67cb25
  };
Packit 67cb25
Packit 67cb25
Packit 67cb25
  {
Packit 67cb25
   int order = 101;
Packit 67cb25
   int uplo = 122;
Packit 67cb25
   double alpha[2] = {0, 0};
Packit 67cb25
   double beta[2] = {1, 0};
Packit 67cb25
   int N = 1;
Packit 67cb25
   int lda = 1;
Packit 67cb25
   double A[] = { 0.036, -0.966 };
Packit 67cb25
   double X[] = { -0.695, 0.886 };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   double Y[] = { 0.486, 0.629 };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   double y_expected[] = { 0.486, 0.629 };
Packit 67cb25
   cblas_zhemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 1; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhemv(case 1080) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhemv(case 1080) imag");
Packit 67cb25
     };
Packit 67cb25
   };
Packit 67cb25
  };
Packit 67cb25
Packit 67cb25
Packit 67cb25
  {
Packit 67cb25
   int order = 101;
Packit 67cb25
   int uplo = 122;
Packit 67cb25
   double alpha[2] = {0, 0};
Packit 67cb25
   double beta[2] = {1, 0};
Packit 67cb25
   int N = 1;
Packit 67cb25
   int lda = 1;
Packit 67cb25
   double A[] = { 0.036, -0.966 };
Packit 67cb25
   double X[] = { -0.695, 0.886 };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   double Y[] = { 0.486, 0.629 };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   double y_expected[] = { 0.486, 0.629 };
Packit 67cb25
   cblas_zhemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 1; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhemv(case 1081) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhemv(case 1081) imag");
Packit 67cb25
     };
Packit 67cb25
   };
Packit 67cb25
  };
Packit 67cb25
Packit 67cb25
Packit 67cb25
  {
Packit 67cb25
   int order = 102;
Packit 67cb25
   int uplo = 121;
Packit 67cb25
   double alpha[2] = {0, 0};
Packit 67cb25
   double beta[2] = {1, 0};
Packit 67cb25
   int N = 1;
Packit 67cb25
   int lda = 1;
Packit 67cb25
   double A[] = { 0.036, -0.966 };
Packit 67cb25
   double X[] = { -0.695, 0.886 };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   double Y[] = { 0.486, 0.629 };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   double y_expected[] = { 0.486, 0.629 };
Packit 67cb25
   cblas_zhemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 1; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhemv(case 1082) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhemv(case 1082) imag");
Packit 67cb25
     };
Packit 67cb25
   };
Packit 67cb25
  };
Packit 67cb25
Packit 67cb25
Packit 67cb25
  {
Packit 67cb25
   int order = 102;
Packit 67cb25
   int uplo = 121;
Packit 67cb25
   double alpha[2] = {0, 0};
Packit 67cb25
   double beta[2] = {1, 0};
Packit 67cb25
   int N = 1;
Packit 67cb25
   int lda = 1;
Packit 67cb25
   double A[] = { 0.036, -0.966 };
Packit 67cb25
   double X[] = { -0.695, 0.886 };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   double Y[] = { 0.486, 0.629 };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   double y_expected[] = { 0.486, 0.629 };
Packit 67cb25
   cblas_zhemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 1; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhemv(case 1083) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhemv(case 1083) imag");
Packit 67cb25
     };
Packit 67cb25
   };
Packit 67cb25
  };
Packit 67cb25
Packit 67cb25
Packit 67cb25
  {
Packit 67cb25
   int order = 102;
Packit 67cb25
   int uplo = 122;
Packit 67cb25
   double alpha[2] = {0, 0};
Packit 67cb25
   double beta[2] = {1, 0};
Packit 67cb25
   int N = 1;
Packit 67cb25
   int lda = 1;
Packit 67cb25
   double A[] = { 0.036, -0.966 };
Packit 67cb25
   double X[] = { -0.695, 0.886 };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   double Y[] = { 0.486, 0.629 };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   double y_expected[] = { 0.486, 0.629 };
Packit 67cb25
   cblas_zhemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 1; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhemv(case 1084) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhemv(case 1084) imag");
Packit 67cb25
     };
Packit 67cb25
   };
Packit 67cb25
  };
Packit 67cb25
Packit 67cb25
Packit 67cb25
  {
Packit 67cb25
   int order = 102;
Packit 67cb25
   int uplo = 122;
Packit 67cb25
   double alpha[2] = {0, 0};
Packit 67cb25
   double beta[2] = {1, 0};
Packit 67cb25
   int N = 1;
Packit 67cb25
   int lda = 1;
Packit 67cb25
   double A[] = { 0.036, -0.966 };
Packit 67cb25
   double X[] = { -0.695, 0.886 };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   double Y[] = { 0.486, 0.629 };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   double y_expected[] = { 0.486, 0.629 };
Packit 67cb25
   cblas_zhemv(order, uplo, N, alpha, A, lda, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 1; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhemv(case 1085) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhemv(case 1085) imag");
Packit 67cb25
     };
Packit 67cb25
   };
Packit 67cb25
  };
Packit 67cb25
Packit 67cb25
Packit 67cb25
}