Blame cblas/test_hpmv.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_hpmv (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] = {-0.3f, 0.1f};
Packit 67cb25
   float beta[2] = {0.0f, 1.0f};
Packit 67cb25
   int N = 2;
Packit 67cb25
   float A[] = { 0.339f, -0.102f, 0.908f, 0.097f, -0.808f, 0.236f };
Packit 67cb25
   float X[] = { 0.993f, -0.502f, -0.653f, 0.796f };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   float Y[] = { -0.35f, 0.339f, -0.269f, -0.122f };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   float y_expected[] = { -0.0627557f, -0.839323f, -0.0877262f, -0.169208f };
Packit 67cb25
   cblas_chpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 2; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chpmv(case 1118) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chpmv(case 1118) 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] = {-0.3f, 0.1f};
Packit 67cb25
   float beta[2] = {0.0f, 1.0f};
Packit 67cb25
   int N = 2;
Packit 67cb25
   float A[] = { 0.339f, -0.102f, 0.908f, 0.097f, -0.808f, 0.236f };
Packit 67cb25
   float X[] = { 0.993f, -0.502f, -0.653f, 0.796f };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   float Y[] = { -0.35f, 0.339f, -0.269f, -0.122f };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   float y_expected[] = { -0.0627557f, -0.839323f, -0.0877262f, -0.169208f };
Packit 67cb25
   cblas_chpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 2; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chpmv(case 1119) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chpmv(case 1119) 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] = {-0.3f, 0.1f};
Packit 67cb25
   float beta[2] = {0.0f, 1.0f};
Packit 67cb25
   int N = 2;
Packit 67cb25
   float A[] = { 0.339f, -0.102f, 0.908f, 0.097f, -0.808f, 0.236f };
Packit 67cb25
   float X[] = { 0.993f, -0.502f, -0.653f, 0.796f };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   float Y[] = { -0.35f, 0.339f, -0.269f, -0.122f };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   float y_expected[] = { -0.0037603f, -0.816761f, -0.0392456f, -0.121154f };
Packit 67cb25
   cblas_chpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 2; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chpmv(case 1120) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chpmv(case 1120) 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] = {-0.3f, 0.1f};
Packit 67cb25
   float beta[2] = {0.0f, 1.0f};
Packit 67cb25
   int N = 2;
Packit 67cb25
   float A[] = { 0.339f, -0.102f, 0.908f, 0.097f, -0.808f, 0.236f };
Packit 67cb25
   float X[] = { 0.993f, -0.502f, -0.653f, 0.796f };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   float Y[] = { -0.35f, 0.339f, -0.269f, -0.122f };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   float y_expected[] = { -0.0037603f, -0.816761f, -0.0392456f, -0.121154f };
Packit 67cb25
   cblas_chpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 2; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chpmv(case 1121) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chpmv(case 1121) 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] = {-0.3f, 0.1f};
Packit 67cb25
   float beta[2] = {0.0f, 1.0f};
Packit 67cb25
   int N = 2;
Packit 67cb25
   float A[] = { 0.339f, -0.102f, 0.908f, 0.097f, -0.808f, 0.236f };
Packit 67cb25
   float X[] = { 0.993f, -0.502f, -0.653f, 0.796f };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   float Y[] = { -0.35f, 0.339f, -0.269f, -0.122f };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   float y_expected[] = { -0.0627557f, -0.839323f, -0.0877262f, -0.169208f };
Packit 67cb25
   cblas_chpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 2; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chpmv(case 1122) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chpmv(case 1122) 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] = {-0.3f, 0.1f};
Packit 67cb25
   float beta[2] = {0.0f, 1.0f};
Packit 67cb25
   int N = 2;
Packit 67cb25
   float A[] = { 0.339f, -0.102f, 0.908f, 0.097f, -0.808f, 0.236f };
Packit 67cb25
   float X[] = { 0.993f, -0.502f, -0.653f, 0.796f };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   float Y[] = { -0.35f, 0.339f, -0.269f, -0.122f };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   float y_expected[] = { -0.0627557f, -0.839323f, -0.0877262f, -0.169208f };
Packit 67cb25
   cblas_chpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 2; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chpmv(case 1123) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chpmv(case 1123) 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] = {-0.3f, 0.1f};
Packit 67cb25
   float beta[2] = {0.0f, 1.0f};
Packit 67cb25
   int N = 2;
Packit 67cb25
   float A[] = { 0.339f, -0.102f, 0.908f, 0.097f, -0.808f, 0.236f };
Packit 67cb25
   float X[] = { 0.993f, -0.502f, -0.653f, 0.796f };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   float Y[] = { -0.35f, 0.339f, -0.269f, -0.122f };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   float y_expected[] = { -0.0037603f, -0.816761f, -0.0392456f, -0.121154f };
Packit 67cb25
   cblas_chpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 2; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chpmv(case 1124) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chpmv(case 1124) 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] = {-0.3f, 0.1f};
Packit 67cb25
   float beta[2] = {0.0f, 1.0f};
Packit 67cb25
   int N = 2;
Packit 67cb25
   float A[] = { 0.339f, -0.102f, 0.908f, 0.097f, -0.808f, 0.236f };
Packit 67cb25
   float X[] = { 0.993f, -0.502f, -0.653f, 0.796f };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   float Y[] = { -0.35f, 0.339f, -0.269f, -0.122f };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   float y_expected[] = { -0.0037603f, -0.816761f, -0.0392456f, -0.121154f };
Packit 67cb25
   cblas_chpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 2; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chpmv(case 1125) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chpmv(case 1125) 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] = {1, 0};
Packit 67cb25
   double beta[2] = {0, 1};
Packit 67cb25
   int N = 2;
Packit 67cb25
   double A[] = { 0.543, -0.737, 0.281, -0.053, -0.098, -0.826 };
Packit 67cb25
   double X[] = { 0.67, -0.857, -0.613, -0.927 };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   double Y[] = { -0.398, -0.934, -0.204, 0.183 };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   double y_expected[] = { 0.745218, -0.60699, -0.37301, -0.983688 };
Packit 67cb25
   cblas_zhpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 2; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhpmv(case 1126) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhpmv(case 1126) 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] = {1, 0};
Packit 67cb25
   double beta[2] = {0, 1};
Packit 67cb25
   int N = 2;
Packit 67cb25
   double A[] = { 0.543, -0.737, 0.281, -0.053, -0.098, -0.826 };
Packit 67cb25
   double X[] = { 0.67, -0.857, -0.613, -0.927 };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   double Y[] = { -0.398, -0.934, -0.204, 0.183 };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   double y_expected[] = { 0.745218, -0.60699, -0.37301, -0.983688 };
Packit 67cb25
   cblas_zhpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 2; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhpmv(case 1127) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhpmv(case 1127) 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] = {1, 0};
Packit 67cb25
   double beta[2] = {0, 1};
Packit 67cb25
   int N = 2;
Packit 67cb25
   double A[] = { 0.543, -0.737, 0.281, -0.053, -0.098, -0.826 };
Packit 67cb25
   double X[] = { 0.67, -0.857, -0.613, -0.927 };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   double Y[] = { -0.398, -0.934, -0.204, 0.183 };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   double y_expected[] = { 0.646956, -0.542012, -0.282168, -0.912668 };
Packit 67cb25
   cblas_zhpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 2; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhpmv(case 1128) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhpmv(case 1128) 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] = {1, 0};
Packit 67cb25
   double beta[2] = {0, 1};
Packit 67cb25
   int N = 2;
Packit 67cb25
   double A[] = { 0.543, -0.737, 0.281, -0.053, -0.098, -0.826 };
Packit 67cb25
   double X[] = { 0.67, -0.857, -0.613, -0.927 };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   double Y[] = { -0.398, -0.934, -0.204, 0.183 };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   double y_expected[] = { 0.646956, -0.542012, -0.282168, -0.912668 };
Packit 67cb25
   cblas_zhpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 2; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhpmv(case 1129) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhpmv(case 1129) 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] = {1, 0};
Packit 67cb25
   double beta[2] = {0, 1};
Packit 67cb25
   int N = 2;
Packit 67cb25
   double A[] = { 0.543, -0.737, 0.281, -0.053, -0.098, -0.826 };
Packit 67cb25
   double X[] = { 0.67, -0.857, -0.613, -0.927 };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   double Y[] = { -0.398, -0.934, -0.204, 0.183 };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   double y_expected[] = { 0.745218, -0.60699, -0.37301, -0.983688 };
Packit 67cb25
   cblas_zhpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 2; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhpmv(case 1130) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhpmv(case 1130) 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] = {1, 0};
Packit 67cb25
   double beta[2] = {0, 1};
Packit 67cb25
   int N = 2;
Packit 67cb25
   double A[] = { 0.543, -0.737, 0.281, -0.053, -0.098, -0.826 };
Packit 67cb25
   double X[] = { 0.67, -0.857, -0.613, -0.927 };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   double Y[] = { -0.398, -0.934, -0.204, 0.183 };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   double y_expected[] = { 0.745218, -0.60699, -0.37301, -0.983688 };
Packit 67cb25
   cblas_zhpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 2; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhpmv(case 1131) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhpmv(case 1131) 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] = {1, 0};
Packit 67cb25
   double beta[2] = {0, 1};
Packit 67cb25
   int N = 2;
Packit 67cb25
   double A[] = { 0.543, -0.737, 0.281, -0.053, -0.098, -0.826 };
Packit 67cb25
   double X[] = { 0.67, -0.857, -0.613, -0.927 };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   double Y[] = { -0.398, -0.934, -0.204, 0.183 };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   double y_expected[] = { 0.646956, -0.542012, -0.282168, -0.912668 };
Packit 67cb25
   cblas_zhpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 2; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhpmv(case 1132) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhpmv(case 1132) 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] = {1, 0};
Packit 67cb25
   double beta[2] = {0, 1};
Packit 67cb25
   int N = 2;
Packit 67cb25
   double A[] = { 0.543, -0.737, 0.281, -0.053, -0.098, -0.826 };
Packit 67cb25
   double X[] = { 0.67, -0.857, -0.613, -0.927 };
Packit 67cb25
   int incX = -1;
Packit 67cb25
   double Y[] = { -0.398, -0.934, -0.204, 0.183 };
Packit 67cb25
   int incY = -1;
Packit 67cb25
   double y_expected[] = { 0.646956, -0.542012, -0.282168, -0.912668 };
Packit 67cb25
   cblas_zhpmv(order, uplo, N, alpha, A, X, incX, beta, Y, incY);
Packit 67cb25
   {
Packit 67cb25
     int i;
Packit 67cb25
     for (i = 0; i < 2; i++) {
Packit 67cb25
       gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhpmv(case 1133) real");
Packit 67cb25
       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhpmv(case 1133) imag");
Packit 67cb25
     };
Packit 67cb25
   };
Packit 67cb25
  };
Packit 67cb25
Packit 67cb25
Packit 67cb25
}