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

📄 test_trsm.c

📁 开放gsl矩阵运算
💻 C
📖 第 1 页 / 共 5 页
字号:
#include <gsl/gsl_test.h>#include <gsl/gsl_ieee_utils.h>#include <gsl/gsl_math.h>#include "gsl_cblas.h"#include "tests.h"voidtest_trsm (void) {const double flteps = 1e-4, dbleps = 1e-6;  {   int order = 101;   int side = 141;   int uplo = 121;   int trans = 111;   int diag = 131;   int M = 2;   int N = 3;   float alpha = -0.3f;   float A[] = { 0.773f, 0.069f, 0.45f, 0.189f };   int lda = 2;   float B[] = { -0.037f, 0.788f, 0.015f, 0.028f, -0.804f, -0.357f };   int ldb = 3;   float B_expected[] = { 0.0183269f, -0.419738f, -0.0564036f, -0.0444444f, 1.27619f, 0.566667f };   cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);   {     int i;     for (i = 0; i < 6; i++) {       gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1830)");     }   };  };  {   int order = 101;   int side = 141;   int uplo = 121;   int trans = 111;   int diag = 132;   int M = 2;   int N = 3;   float alpha = -0.3f;   float A[] = { -0.13f, -0.832f, 0.426f, 0.195f };   int lda = 2;   float B[] = { 0.504f, 0.996f, 0.872f, -0.35f, 0.518f, -0.8f };   int ldb = 3;   float B_expected[] = { -0.06384f, -0.428093f, -0.06192f, 0.105f, -0.1554f, 0.24f };   cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);   {     int i;     for (i = 0; i < 6; i++) {       gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1831)");     }   };  };  {   int order = 101;   int side = 141;   int uplo = 122;   int trans = 111;   int diag = 131;   int M = 2;   int N = 3;   float alpha = -0.3f;   float A[] = { 0.755f, -0.053f, -0.132f, -0.515f };   int lda = 2;   float B[] = { -0.735f, 0.494f, 0.072f, -0.882f, -0.112f, 0.904f };   int ldb = 3;   float B_expected[] = { 0.292053f, -0.196291f, -0.0286093f, -0.588643f, -0.0149311f, 0.533935f };   cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);   {     int i;     for (i = 0; i < 6; i++) {       gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1832)");     }   };  };  {   int order = 101;   int side = 141;   int uplo = 122;   int trans = 111;   int diag = 132;   int M = 2;   int N = 3;   float alpha = -0.3f;   float A[] = { -0.88f, -0.555f, 0.642f, 0.751f };   int lda = 2;   float B[] = { -0.411f, 0.134f, 0.657f, 0.072f, -0.007f, -0.34f };   int ldb = 3;   float B_expected[] = { 0.1233f, -0.0402f, -0.1971f, -0.100759f, 0.0279084f, 0.228538f };   cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);   {     int i;     for (i = 0; i < 6; i++) {       gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1833)");     }   };  };  {   int order = 102;   int side = 141;   int uplo = 121;   int trans = 111;   int diag = 131;   int M = 2;   int N = 3;   float alpha = -0.3f;   float A[] = { -0.478f, 0.938f, -0.731f, 0.25f };   int lda = 2;   float B[] = { -0.859f, -0.409f, -0.154f, -0.54f, 0.146f, -0.106f };   int ldb = 2;   float B_expected[] = { -1.2897f, 0.4908f, -1.08763f, 0.648f, -0.102894f, 0.1272f };   cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);   {     int i;     for (i = 0; i < 6; i++) {       gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1834)");     }   };  };  {   int order = 102;   int side = 141;   int uplo = 121;   int trans = 111;   int diag = 132;   int M = 2;   int N = 3;   float alpha = -0.3f;   float A[] = { 0.953f, 0.249f, -0.451f, -0.781f };   int lda = 2;   float B[] = { -0.4f, -0.546f, 0.839f, 0.392f, -0.445f, -0.818f };   int ldb = 2;   float B_expected[] = { 0.193874f, 0.1638f, -0.304738f, -0.1176f, 0.244175f, 0.2454f };   cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);   {     int i;     for (i = 0; i < 6; i++) {       gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1835)");     }   };  };  {   int order = 102;   int side = 141;   int uplo = 122;   int trans = 111;   int diag = 131;   int M = 2;   int N = 3;   float alpha = -0.3f;   float A[] = { 0.831f, -0.997f, -0.366f, 0.307f };   int lda = 2;   float B[] = { 0.157f, -0.02f, 0.57f, 0.309f, -0.159f, 0.266f };   int ldb = 2;   float B_expected[] = { -0.0566787f, -0.164523f, -0.205776f, -0.970224f, 0.0574007f, -0.0735227f };   cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);   {     int i;     for (i = 0; i < 6; i++) {       gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1836)");     }   };  };  {   int order = 102;   int side = 141;   int uplo = 122;   int trans = 111;   int diag = 132;   int M = 2;   int N = 3;   float alpha = -0.3f;   float A[] = { -0.842f, 0.674f, 0.03f, 0.628f };   int lda = 2;   float B[] = { -0.426f, 0.806f, 0.299f, 0.626f, -0.471f, 0.208f };   int ldb = 2;   float B_expected[] = { 0.1278f, -0.327937f, -0.0897f, -0.127342f, 0.1413f, -0.157636f };   cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);   {     int i;     for (i = 0; i < 6; i++) {       gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1837)");     }   };  };  {   int order = 101;   int side = 142;   int uplo = 121;   int trans = 111;   int diag = 131;   int M = 2;   int N = 3;   float alpha = -0.3f;   float A[] = { -0.095f, 0.301f, 0.168f, 0.934f, 0.107f, 0.068f, 0.384f, -0.201f, 0.116f };   int lda = 3;   float B[] = { 0.534f, 0.773f, -0.304f, -0.402f, 0.642f, -0.102f };   int ldb = 3;   float B_expected[] = { 1.68632f, -6.91104f, 2.39525f, -1.26947f, 1.77114f, 1.06409f };   cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);   {     int i;     for (i = 0; i < 6; i++) {       gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1838)");     }   };  };  {   int order = 101;   int side = 142;   int uplo = 121;   int trans = 111;   int diag = 132;   int M = 2;   int N = 3;   float alpha = -0.3f;   float A[] = { -0.738f, -0.353f, -0.616f, 0.304f, 0.403f, 0.739f, 0.996f, 0.329f, 0.273f };   int lda = 3;   float B[] = { -0.436f, 0.074f, 0.273f, -0.609f, 0.858f, 0.993f };   int ldb = 3;   float B_expected[] = { 0.1308f, 0.0239724f, -0.0190428f, 0.1827f, -0.192907f, -0.0427986f };   cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);   {     int i;     for (i = 0; i < 6; i++) {       gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1839)");     }   };  };  {   int order = 101;   int side = 142;   int uplo = 122;   int trans = 111;   int diag = 131;   int M = 2;   int N = 3;   float alpha = -0.3f;   float A[] = { -0.956f, 0.878f, 0.156f, 0.217f, 0.082f, -0.869f, 0.595f, 0.845f, 0.064f };   int lda = 3;   float B[] = { -0.744f, 0.662f, -0.31f, 0.811f, 0.257f, 0.98f };   int ldb = 3;   float B_expected[] = { -3.27779f, -17.3962f, 1.45312f, 7.92713f, 46.3978f, -4.59375f };   cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);   {     int i;     for (i = 0; i < 6; i++) {       gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1840)");     }   };  };  {   int order = 101;   int side = 142;   int uplo = 122;   int trans = 111;   int diag = 132;   int M = 2;   int N = 3;   float alpha = -0.3f;   float A[] = { 0.313f, -0.316f, 0.836f, 0.359f, -0.415f, 0.154f, -0.948f, -0.596f, -0.799f };   int lda = 3;   float B[] = { 0.29f, -0.291f, 0.652f, 0.614f, 0.922f, -0.063f };   int ldb = 3;   float B_expected[] = { -0.261918f, -0.0292776f, -0.1956f, -0.0710273f, -0.265336f, 0.0189f };   cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);   {     int i;     for (i = 0; i < 6; i++) {       gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1841)");     }   };  };  {   int order = 102;   int side = 142;   int uplo = 121;   int trans = 111;   int diag = 131;   int M = 2;   int N = 3;   float alpha = -0.3f;   float A[] = { -0.634f, 0.561f, 0.883f, -0.136f, 0.203f, -0.531f, 0.733f, -0.332f, 0.705f };   int lda = 3;   float B[] = { 0.133f, -0.843f, -0.179f, 0.94f, -0.656f, 0.645f };   int ldb = 2;   float B_expected[] = { 0.0629338f, -0.398896f, 0.306695f, -1.6564f, 0.358145f, -0.639766f };   cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);   {     int i;     for (i = 0; i < 6; i++) {       gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1842)");     }   };  };  {   int order = 102;   int side = 142;   int uplo = 121;   int trans = 111;   int diag = 132;   int M = 2;   int N = 3;   float alpha = -0.3f;   float A[] = { 0.742f, -0.438f, 0.991f, 0.614f, 0.108f, -0.125f, 0.736f, -0.383f, 0.0f };   int lda = 3;   float B[] = { -0.792f, -0.033f, -0.723f, 0.885f, 0.336f, 0.584f };   int ldb = 2;   float B_expected[] = { 0.2376f, 0.0099f, 0.0710136f, -0.271579f, -0.248475f, -0.286501f };   cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);   {     int i;     for (i = 0; i < 6; i++) {       gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1843)");     }   };  };  {   int order = 102;   int side = 142;   int uplo = 122;   int trans = 111;   int diag = 131;   int M = 2;   int N = 3;   float alpha = -0.3f;   float A[] = { 0.761f, 0.466f, 0.907f, -0.85f, -0.342f, -0.058f, -0.379f, -0.416f, 0.599f };   int lda = 3;   float B[] = { -0.238f, 0.013f, 0.473f, -0.626f, 0.912f, -0.003f };   int ldb = 2;   float B_expected[] = { 0.336709f, 0.329497f, 0.492375f, -0.549378f, -0.456761f, 0.0015025f };   cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);   {     int i;     for (i = 0; i < 6; i++) {       gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1844)");     }   };  };  {   int order = 102;   int side = 142;   int uplo = 122;   int trans = 111;   int diag = 132;   int M = 2;   int N = 3;   float alpha = -0.3f;   float A[] = { 0.567f, -0.532f, -0.817f, 0.85f, -0.135f, 0.797f, 0.981f, -0.75f, 0.856f };   int lda = 3;   float B[] = { -0.705f, 0.326f, 0.184f, 0.079f, -0.173f, 0.125f };   int ldb = 2;   float B_expected[] = { 0.20253f, -0.125146f, -0.0965643f, 0.0061875f, 0.0519f, -0.0375f };   cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);   {     int i;     for (i = 0; i < 6; i++) {       gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1845)");     }   };  };  {   int order = 101;   int side = 141;   int uplo = 121;   int trans = 112;   int diag = 131;   int M = 2;   int N = 3;   float alpha = -0.3f;   float A[] = { -0.859f, 0.563f, -0.61f, 0.2f };   int lda = 2;   float B[] = { -0.241f, -0.357f, -0.683f, -0.718f, 0.69f, -0.486f };   int ldb = 3;   float B_expected[] = { -0.0841676f, -0.12468f, -0.238533f, 1.31393f, -0.684026f, 1.40047f };   cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);   {     int i;     for (i = 0; i < 6; i++) {       gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1846)");     }   };  };  {   int order = 101;   int side = 141;   int uplo = 121;   int trans = 112;   int diag = 132;   int M = 2;   int N = 3;   float alpha = -0.3f;   float A[] = { 0.157f, -0.741f, 0.844f, 0.206f };   int lda = 2;   float B[] = { 0.816f, -0.692f, 0.765f, -0.408f, 0.404f, 0.764f };   int ldb = 3;   float B_expected[] = { -0.2448f, 0.2076f, -0.2295f, -0.0589968f, 0.0326316f, -0.399259f };   cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);   {     int i;     for (i = 0; i < 6; i++) {       gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1847)");     }   };  };  {   int order = 101;   int side = 141;   int uplo = 122;   int trans = 112;

⌨️ 快捷键说明

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