📄 test_tbsv.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_tbsv (void) {const double flteps = 1e-4, dbleps = 1e-6; { int order = 101; int trans = 111; int uplo = 121; int diag = 131; int N = 3; int K = 1; int lda = 3; float A[] = { -0.681f, 0.209f, 0.436f, -0.369f, 0.786f, -0.84f, 0.86f, -0.233f, 0.734f }; float X[] = { -0.305f, 0.61f, -0.831f }; int incX = -1; float x_expected[] = { -0.354651f, -2.40855f, 0.481076f }; cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1230)"); } }; }; { int order = 101; int trans = 111; int uplo = 121; int diag = 132; int N = 3; int K = 1; int lda = 3; float A[] = { -0.681f, 0.209f, 0.436f, -0.369f, 0.786f, -0.84f, 0.86f, -0.233f, 0.734f }; float X[] = { -0.305f, 0.61f, -0.831f }; int incX = -1; float x_expected[] = { -0.305f, 0.84973f, -1.00859f }; cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1231)"); } }; }; { int order = 101; int trans = 111; int uplo = 122; int diag = 131; int N = 3; int K = 1; int lda = 3; float A[] = { -0.681f, 0.209f, 0.436f, -0.369f, 0.786f, -0.84f, 0.86f, -0.233f, 0.734f }; float X[] = { -0.305f, 0.61f, -0.831f }; int incX = -1; float x_expected[] = { -2.71619f, -1.09055f, -3.97608f }; cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1232)"); } }; }; { int order = 101; int trans = 111; int uplo = 122; int diag = 132; int N = 3; int K = 1; int lda = 3; float A[] = { -0.681f, 0.209f, 0.436f, -0.369f, 0.786f, -0.84f, 0.86f, -0.233f, 0.734f }; float X[] = { -0.305f, 0.61f, -0.831f }; int incX = -1; float x_expected[] = { -0.56589f, 0.303361f, -0.831f }; cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1233)"); } }; }; { int order = 102; int trans = 111; int uplo = 121; int diag = 131; int N = 3; int K = 1; int lda = 3; float A[] = { -0.681f, 0.209f, 0.436f, -0.369f, 0.786f, -0.84f, 0.86f, -0.233f, 0.734f }; float X[] = { -0.305f, 0.61f, -0.831f }; int incX = -1; float x_expected[] = { 1.30901f, -0.656172f, -5.13458f }; cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1234)"); } }; }; { int order = 102; int trans = 111; int uplo = 121; int diag = 132; int N = 3; int K = 1; int lda = 3; float A[] = { -0.681f, 0.209f, 0.436f, -0.369f, 0.786f, -0.84f, 0.86f, -0.233f, 0.734f }; float X[] = { -0.305f, 0.61f, -0.831f }; int incX = -1; float x_expected[] = { -0.305f, 0.8723f, -0.509121f }; cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1235)"); } }; }; { int order = 102; int trans = 111; int uplo = 122; int diag = 131; int N = 3; int K = 1; int lda = 3; float A[] = { -0.681f, 0.209f, 0.436f, -0.369f, 0.786f, -0.84f, 0.86f, -0.233f, 0.734f }; float X[] = { -0.305f, 0.61f, -0.831f }; int incX = -1; float x_expected[] = { 0.524539f, -0.961964f, 1.22026f }; cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1236)"); } }; }; { int order = 102; int trans = 111; int uplo = 122; int diag = 132; int N = 3; int K = 1; int lda = 3; float A[] = { -0.681f, 0.209f, 0.436f, -0.369f, 0.786f, -0.84f, 0.86f, -0.233f, 0.734f }; float X[] = { -0.305f, 0.61f, -0.831f }; int incX = -1; float x_expected[] = { -0.920972f, 0.783679f, -0.831f }; cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1237)"); } }; }; { int order = 101; int trans = 112; int uplo = 121; int diag = 131; int N = 3; int K = 1; int lda = 3; float A[] = { 0.022f, 0.795f, -0.389f, -0.205f, -0.121f, 0.323f, 0.133f, 0.679f, 0.742f }; float X[] = { 0.144f, 0.635f, 0.116f }; int incX = -1; float x_expected[] = { 16.8676f, 17.3503f, 5.27273f }; cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1238)"); } }; }; { int order = 101; int trans = 112; int uplo = 121; int diag = 132; int N = 3; int K = 1; int lda = 3; float A[] = { 0.022f, 0.795f, -0.389f, -0.205f, -0.121f, 0.323f, 0.133f, 0.679f, 0.742f }; float X[] = { 0.144f, 0.635f, 0.116f }; int incX = -1; float x_expected[] = { 0.209676f, 0.54278f, 0.116f }; cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1239)"); } }; }; { int order = 101; int trans = 112; int uplo = 122; int diag = 131; int N = 3; int K = 1; int lda = 3; float A[] = { 0.022f, 0.795f, -0.389f, -0.205f, -0.121f, 0.323f, 0.133f, 0.679f, 0.742f }; float X[] = { 0.144f, 0.635f, 0.116f }; int incX = -1; float x_expected[] = { 0.212077f, -5.01482f, -1.14722f }; cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1240)"); } }; }; { int order = 101; int trans = 112; int uplo = 122; int diag = 132; int N = 3; int K = 1; int lda = 3; float A[] = { 0.022f, 0.795f, -0.389f, -0.205f, -0.121f, 0.323f, 0.133f, 0.679f, 0.742f }; float X[] = { 0.144f, 0.635f, 0.116f }; int incX = -1; float x_expected[] = { 0.144f, 0.615848f, 0.242249f }; cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1241)"); } }; }; { int order = 102; int trans = 112; int uplo = 121; int diag = 131; int N = 3; int K = 1; int lda = 3; float A[] = { 0.022f, 0.795f, -0.389f, -0.205f, -0.121f, 0.323f, 0.133f, 0.679f, 0.742f }; float X[] = { 0.144f, 0.635f, 0.116f }; int incX = -1; float x_expected[] = { 1.28844f, -5.49514f, 0.145912f }; cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1242)"); } }; }; { int order = 102; int trans = 112; int uplo = 121; int diag = 132; int N = 3; int K = 1; int lda = 3; float A[] = { 0.022f, 0.795f, -0.389f, -0.205f, -0.121f, 0.323f, 0.133f, 0.679f, 0.742f }; float X[] = { 0.144f, 0.635f, 0.116f }; int incX = -1; float x_expected[] = { 0.0563823f, 0.65878f, 0.116f }; cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1243)"); } }; }; { int order = 102; int trans = 112; int uplo = 122; int diag = 131; int N = 3; int K = 1; int lda = 3; float A[] = { 0.022f, 0.795f, -0.389f, -0.205f, -0.121f, 0.323f, 0.133f, 0.679f, 0.742f }; float X[] = { 0.144f, 0.635f, 0.116f }; int incX = -1; float x_expected[] = { 1.08271f, -3.73662f, 140.301f }; cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1244)"); } }; }; { int order = 102; int trans = 112; int uplo = 122; int diag = 132; int N = 3; int K = 1; int lda = 3; float A[] = { 0.022f, 0.795f, -0.389f, -0.205f, -0.121f, 0.323f, 0.133f, 0.679f, 0.742f }; float X[] = { 0.144f, 0.635f, 0.116f }; int incX = -1; float x_expected[] = { 0.144f, 0.652424f, -0.402677f }; cblas_stbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], flteps, "stbsv(case 1245)"); } }; }; { int order = 101; int trans = 111; int uplo = 121; int diag = 131; int N = 3; int K = 1; int lda = 3; double A[] = { 0.619, -0.443, 0.957, -0.633, -0.698, 0.783, -0.343, -0.603, 0.735 }; double X[] = { 0.332, 0.588, 0.252 }; int incX = -1; double x_expected[] = { -0.967930029155, 0.138412575592, 0.506166027443 }; cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1246)"); } }; }; { int order = 101; int trans = 111; int uplo = 121; int diag = 132; int N = 3; int K = 1; int lda = 3; double A[] = { 0.619, -0.443, 0.957, -0.633, -0.698, 0.783, -0.343, -0.603, 0.735 }; double X[] = { 0.332, 0.588, 0.252 }; int incX = -1; double x_expected[] = { 0.332, 0.819736, 0.615143048 }; cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1247)"); } }; }; { int order = 101; int trans = 111; int uplo = 122; int diag = 131; int N = 3; int K = 1; int lda = 3; double A[] = { 0.619, -0.443, 0.957, -0.633, -0.698, 0.783, -0.343, -0.603, 0.735 }; double X[] = { 0.332, 0.588, 0.252 }; int incX = -1; double x_expected[] = { -0.364842154056, -0.326531140246, -0.568848758465 }; cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1248)"); } }; }; { int order = 101; int trans = 111; int uplo = 122; int diag = 132; int N = 3; int K = 1; int lda = 3; double A[] = { 0.619, -0.443, 0.957, -0.633, -0.698, 0.783, -0.343, -0.603, 0.735 }; double X[] = { 0.332, 0.588, 0.252 }; int incX = -1; double x_expected[] = { 0.588397988, 0.747516, 0.252 }; cblas_dtbsv(order, uplo, trans, diag, N, K, A, lda, X, incX); { int i; for (i = 0; i < 3; i++) { gsl_test_rel(X[i], x_expected[i], dbleps, "dtbsv(case 1249)"); } }; }; { int order = 102; int trans = 111; int uplo = 121; int diag = 131;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -