⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_gbmv.c

📁 该文件为c++的数学函数库!是一个非常有用的编程工具.它含有各种数学函数,为科学计算、工程应用等程序编写提供方便!
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <gsl/gsl_test.h>#include <gsl/gsl_ieee_utils.h>#include <gsl/gsl_math.h>#include <gsl/gsl_cblas.h>#include "tests.h"voidtest_gbmv (void) {const double flteps = 1e-4, dbleps = 1e-6;  {   int order = 101;   int trans = 111;   int M = 3;   int N = 4;   int KL = 1;   int KU = 1;   int lda = 4;   float alpha = -1.0f;   float beta = -1.0f;   float A[] = { 0.423f, -0.143f, -0.182f, -0.076f, -0.855f, 0.599f, 0.389f, -0.473f, 0.493f, -0.902f, -0.889f, -0.256f, 0.112f, 0.128f, -0.277f, -0.777f };   float X[] = { 0.488f, 0.029f, -0.633f, 0.84f };   int incX = -1;   float Y[] = { 0.874f, 0.322f, -0.477f };   int incY = -1;   float y_expected[] = { -0.101941f, 0.764086f, 0.481914f };   cblas_sgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);   {     int i;     for (i = 0; i < 3; i++) {       gsl_test_rel(Y[i], y_expected[i], flteps, "sgbmv(case 794)");     }   };  };  {   int order = 102;   int trans = 111;   int M = 3;   int N = 4;   int KL = 1;   int KU = 1;   int lda = 4;   float alpha = -1.0f;   float beta = -1.0f;   float A[] = { 0.423f, -0.143f, -0.182f, -0.076f, -0.855f, 0.599f, 0.389f, -0.473f, 0.493f, -0.902f, -0.889f, -0.256f, 0.112f, 0.128f, -0.277f, -0.777f };   float X[] = { 0.488f, 0.029f, -0.633f, 0.84f };   int incX = -1;   float Y[] = { 0.874f, 0.322f, -0.477f };   int incY = -1;   float y_expected[] = { -0.656261f, 0.19575f, 0.055905f };   cblas_sgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);   {     int i;     for (i = 0; i < 3; i++) {       gsl_test_rel(Y[i], y_expected[i], flteps, "sgbmv(case 795)");     }   };  };  {   int order = 101;   int trans = 112;   int M = 3;   int N = 4;   int KL = 1;   int KU = 1;   int lda = 4;   float alpha = 0.0f;   float beta = 0.1f;   float A[] = { -0.066f, -0.153f, -0.619f, 0.174f, 0.777f, 0.543f, 0.614f, -0.446f, -0.138f, -0.767f, 0.725f, 0.222f, 0.165f, -0.063f, -0.047f, 0.267f };   float X[] = { -0.096f, -0.007f, -0.657f };   int incX = -1;   float Y[] = { -0.88f, 0.102f, -0.278f, 0.403f };   int incY = -1;   float y_expected[] = { -0.088f, 0.0102f, -0.0278f, 0.0403f };   cblas_sgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(Y[i], y_expected[i], flteps, "sgbmv(case 796)");     }   };  };  {   int order = 102;   int trans = 112;   int M = 3;   int N = 4;   int KL = 1;   int KU = 1;   int lda = 4;   float alpha = 0.0f;   float beta = 0.1f;   float A[] = { -0.066f, -0.153f, -0.619f, 0.174f, 0.777f, 0.543f, 0.614f, -0.446f, -0.138f, -0.767f, 0.725f, 0.222f, 0.165f, -0.063f, -0.047f, 0.267f };   float X[] = { -0.096f, -0.007f, -0.657f };   int incX = -1;   float Y[] = { -0.88f, 0.102f, -0.278f, 0.403f };   int incY = -1;   float y_expected[] = { -0.088f, 0.0102f, -0.0278f, 0.0403f };   cblas_sgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(Y[i], y_expected[i], flteps, "sgbmv(case 797)");     }   };  };  {   int order = 101;   int trans = 111;   int M = 3;   int N = 4;   int KL = 1;   int KU = 1;   int lda = 4;   double alpha = 0.1;   double beta = 0;   double A[] = { -0.688, 0.29, 0.442, -0.001, 0.313, -0.073, 0.991, -0.654, -0.12, 0.416, 0.571, 0.932, -0.179, -0.724, 0.492, -0.965 };   double X[] = { 0.187, -0.338, -0.976, -0.052 };   int incX = -1;   double Y[] = { -0.101, 0.8, 0.026 };   int incY = -1;   double y_expected[] = { 0.0083289, -0.0279986, -0.0446472 };   cblas_dgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);   {     int i;     for (i = 0; i < 3; i++) {       gsl_test_rel(Y[i], y_expected[i], dbleps, "dgbmv(case 798)");     }   };  };  {   int order = 102;   int trans = 111;   int M = 3;   int N = 4;   int KL = 1;   int KU = 1;   int lda = 4;   double alpha = 0.1;   double beta = 0;   double A[] = { -0.688, 0.29, 0.442, -0.001, 0.313, -0.073, 0.991, -0.654, -0.12, 0.416, 0.571, 0.932, -0.179, -0.724, 0.492, -0.965 };   double X[] = { 0.187, -0.338, -0.976, -0.052 };   int incX = -1;   double Y[] = { -0.101, 0.8, 0.026 };   int incY = -1;   double y_expected[] = { -0.1141297, 0.0088824, -0.0320568 };   cblas_dgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);   {     int i;     for (i = 0; i < 3; i++) {       gsl_test_rel(Y[i], y_expected[i], dbleps, "dgbmv(case 799)");     }   };  };  {   int order = 101;   int trans = 112;   int M = 3;   int N = 4;   int KL = 1;   int KU = 1;   int lda = 4;   double alpha = -0.3;   double beta = -0.3;   double A[] = { 0.746, 0.262, -0.449, -0.954, -0.093, 0.108, -0.496, 0.927, 0.177, 0.729, -0.92, -0.469, 0.87, -0.877, -0.308, -0.806 };   double X[] = { 0.662, -0.887, 0.261 };   int incX = -1;   double Y[] = { 0.771, 0.637, -0.177, -0.018 };   int incY = -1;   double y_expected[] = { -0.048588, -0.467865, 0.0818433, -0.0398619 };   cblas_dgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(Y[i], y_expected[i], dbleps, "dgbmv(case 800)");     }   };  };  {   int order = 102;   int trans = 112;   int M = 3;   int N = 4;   int KL = 1;   int KU = 1;   int lda = 4;   double alpha = -0.3;   double beta = -0.3;   double A[] = { 0.746, 0.262, -0.449, -0.954, -0.093, 0.108, -0.496, 0.927, 0.177, 0.729, -0.92, -0.469, 0.87, -0.877, -0.308, -0.806 };   double X[] = { 0.662, -0.887, 0.261 };   int incX = -1;   double Y[] = { 0.771, 0.637, -0.177, -0.018 };   int incY = -1;   double y_expected[] = { -0.404082, -0.2887797, 0.1876263, -0.1345935 };   cblas_dgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(Y[i], y_expected[i], dbleps, "dgbmv(case 801)");     }   };  };  {   int order = 101;   int trans = 111;   int M = 3;   int N = 4;   int KL = 1;   int KU = 1;   int lda = 4;   float alpha[2] = {0.0f, 1.0f};   float beta[2] = {0.0f, 0.1f};   float A[] = { -0.107f, 0.926f, -0.246f, -0.555f, -0.301f, 0.276f, 0.471f, -0.084f, -0.754f, 0.082f, -0.952f, -0.394f, 0.659f, 0.054f, 0.795f, 0.923f, 0.232f, -0.788f, 0.478f, 0.775f, -0.118f, 0.691f, -0.933f, 0.809f, 0.164f, -0.263f, -0.923f, -0.88f, 0.819f, -0.521f, -0.045f, 0.034f };   float X[] = { 0.407f, 0.895f, 0.301f, 0.769f, -0.269f, -0.465f, 0.455f, -0.628f };   int incX = -1;   float Y[] = { -0.116f, -0.744f, -0.936f, -0.064f, -0.232f, -0.665f };   int incY = -1;   float y_expected[] = { -0.806176f, -1.559f, -1.57611f, -0.155463f, 0.098816f, -0.274361f };   cblas_cgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);   {     int i;     for (i = 0; i < 3; i++) {       gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgbmv(case 802) real");       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgbmv(case 802) imag");     };   };  };  {   int order = 102;   int trans = 111;   int M = 3;   int N = 4;   int KL = 1;   int KU = 1;   int lda = 4;   float alpha[2] = {0.0f, 1.0f};   float beta[2] = {0.0f, 0.1f};   float A[] = { -0.107f, 0.926f, -0.246f, -0.555f, -0.301f, 0.276f, 0.471f, -0.084f, -0.754f, 0.082f, -0.952f, -0.394f, 0.659f, 0.054f, 0.795f, 0.923f, 0.232f, -0.788f, 0.478f, 0.775f, -0.118f, 0.691f, -0.933f, 0.809f, 0.164f, -0.263f, -0.923f, -0.88f, 0.819f, -0.521f, -0.045f, 0.034f };   float X[] = { 0.407f, 0.895f, 0.301f, 0.769f, -0.269f, -0.465f, 0.455f, -0.628f };   int incX = -1;   float Y[] = { -0.116f, -0.744f, -0.936f, -0.064f, -0.232f, -0.665f };   int incY = -1;   float y_expected[] = { -0.245235f, -0.313725f, -0.798094f, 0.691455f, -0.164015f, -0.242714f };   cblas_cgbmv(order, trans, M, N, KU, KL, alpha, A,                                  lda, X, incX, beta, Y, incY);   {     int i;     for (i = 0; i < 3; i++) {       gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "cgbmv(case 803) real");       gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "cgbmv(case 803) imag");     };   };  };

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -