📄 test_trsm.c
字号:
#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 + -