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

📄 test_syrk.c

📁 开放gsl矩阵运算
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <gsl/gsl_test.h>#include <gsl/gsl_ieee_utils.h>#include <gsl/gsl_math.h>#include "gsl_cblas.h"#include "tests.h"voidtest_syrk (void) {const double flteps = 1e-4, dbleps = 1e-6;  {   int order = 101;   int uplo = 121;   int trans = 111;   int N = 2;   int K = 1;   float alpha = -1.0f;   float beta = 0.1f;   float A[] = { 0.412f, -0.229f };   int lda = 1;   float C[] = { 0.628f, -0.664f, -0.268f, 0.096f };   int ldc = 2;   float C_expected[] = { -0.106944f, 0.027948f, -0.268f, -0.042841f };   cblas_ssyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[i], C_expected[i], flteps, "ssyrk(case 1566)");     }   };  };  {   int order = 102;   int uplo = 121;   int trans = 111;   int N = 2;   int K = 1;   float alpha = -1.0f;   float beta = 0.1f;   float A[] = { 0.101f, -0.653f };   int lda = 2;   float C[] = { 0.432f, 0.107f, -0.952f, -0.532f };   int ldc = 2;   float C_expected[] = { 0.032999f, 0.107f, -0.029247f, -0.479609f };   cblas_ssyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[i], C_expected[i], flteps, "ssyrk(case 1567)");     }   };  };  {   int order = 101;   int uplo = 121;   int trans = 112;   int N = 2;   int K = 1;   float alpha = 1.0f;   float beta = 0.1f;   float A[] = { 0.79f, 0.595f };   int lda = 2;   float C[] = { 0.257f, 0.183f, -0.021f, -0.053f };   int ldc = 2;   float C_expected[] = { 0.6498f, 0.48835f, -0.021f, 0.348725f };   cblas_ssyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[i], C_expected[i], flteps, "ssyrk(case 1568)");     }   };  };  {   int order = 102;   int uplo = 121;   int trans = 112;   int N = 2;   int K = 1;   float alpha = 1.0f;   float beta = 0.1f;   float A[] = { -0.181f, -0.654f };   int lda = 1;   float C[] = { -0.4f, 0.615f, 0.147f, -0.163f };   int ldc = 2;   float C_expected[] = { -0.007239f, 0.615f, 0.133074f, 0.411416f };   cblas_ssyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[i], C_expected[i], flteps, "ssyrk(case 1569)");     }   };  };  {   int order = 101;   int uplo = 122;   int trans = 111;   int N = 2;   int K = 1;   float alpha = 0.0f;   float beta = -1.0f;   float A[] = { -0.191f, 0.584f };   int lda = 1;   float C[] = { -0.719f, -0.681f, -0.003f, 0.544f };   int ldc = 2;   float C_expected[] = { 0.719f, -0.681f, 0.003f, -0.544f };   cblas_ssyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[i], C_expected[i], flteps, "ssyrk(case 1570)");     }   };  };  {   int order = 102;   int uplo = 122;   int trans = 111;   int N = 2;   int K = 1;   float alpha = 0.0f;   float beta = -1.0f;   float A[] = { 0.788f, 0.041f };   int lda = 2;   float C[] = { 0.029f, 0.365f, 0.739f, -0.769f };   int ldc = 2;   float C_expected[] = { -0.029f, -0.365f, 0.739f, 0.769f };   cblas_ssyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[i], C_expected[i], flteps, "ssyrk(case 1571)");     }   };  };  {   int order = 101;   int uplo = 122;   int trans = 112;   int N = 2;   int K = 1;   float alpha = -0.3f;   float beta = -1.0f;   float A[] = { 0.733f, 0.678f };   int lda = 2;   float C[] = { -0.941f, 0.96f, 0.07f, -0.295f };   int ldc = 2;   float C_expected[] = { 0.779813f, 0.96f, -0.219092f, 0.157095f };   cblas_ssyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[i], C_expected[i], flteps, "ssyrk(case 1572)");     }   };  };  {   int order = 102;   int uplo = 122;   int trans = 112;   int N = 2;   int K = 1;   float alpha = -0.3f;   float beta = -1.0f;   float A[] = { -0.87f, 0.675f };   int lda = 1;   float C[] = { -0.602f, -0.432f, -0.984f, 0.384f };   int ldc = 2;   float C_expected[] = { 0.37493f, 0.608175f, -0.984f, -0.520687f };   cblas_ssyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[i], C_expected[i], flteps, "ssyrk(case 1573)");     }   };  };  {   int order = 101;   int uplo = 121;   int trans = 111;   int N = 2;   int K = 1;   double alpha = 0.1;   double beta = -0.3;   double A[] = { 0.169, -0.875 };   int lda = 1;   double C[] = { 0.159, 0.277, 0.865, 0.346 };   int ldc = 2;   double C_expected[] = { -0.0448439, -0.0978875, 0.865, -0.0272375 };   cblas_dsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[i], C_expected[i], dbleps, "dsyrk(case 1574)");     }   };  };  {   int order = 102;   int uplo = 121;   int trans = 111;   int N = 2;   int K = 1;   double alpha = 0.1;   double beta = -0.3;   double A[] = { 0.536, -0.725 };   int lda = 2;   double C[] = { 0.154, -0.445, -0.841, -0.91 };   int ldc = 2;   double C_expected[] = { -0.0174704, -0.445, 0.21344, 0.3255625 };   cblas_dsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[i], C_expected[i], dbleps, "dsyrk(case 1575)");     }   };  };  {   int order = 101;   int uplo = 121;   int trans = 112;   int N = 2;   int K = 1;   double alpha = 0;   double beta = -1;   double A[] = { -0.07, 0.8 };   int lda = 2;   double C[] = { 0.823, -0.88, -0.136, 0.793 };   int ldc = 2;   double C_expected[] = { -0.823, 0.88, -0.136, -0.793 };   cblas_dsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[i], C_expected[i], dbleps, "dsyrk(case 1576)");     }   };  };  {   int order = 102;   int uplo = 121;   int trans = 112;   int N = 2;   int K = 1;   double alpha = 0;   double beta = -1;   double A[] = { -0.058, 0.649 };   int lda = 1;   double C[] = { -0.187, 0.294, -0.004, -0.933 };   int ldc = 2;   double C_expected[] = { 0.187, 0.294, 0.004, 0.933 };   cblas_dsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[i], C_expected[i], dbleps, "dsyrk(case 1577)");     }   };  };  {   int order = 101;   int uplo = 122;   int trans = 111;   int N = 2;   int K = 1;   double alpha = 1;   double beta = -1;   double A[] = { 0.263, -0.289 };   int lda = 1;   double C[] = { 0.554, -0.679, 0.993, 0.758 };   int ldc = 2;   double C_expected[] = { -0.484831, -0.679, -1.069007, -0.674479 };   cblas_dsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[i], C_expected[i], dbleps, "dsyrk(case 1578)");     }   };  };  {   int order = 102;   int uplo = 122;   int trans = 111;   int N = 2;   int K = 1;   double alpha = 1;   double beta = -1;   double A[] = { -0.265, -0.837 };   int lda = 2;   double C[] = { -0.994, 0.967, -0.34, -0.069 };   int ldc = 2;   double C_expected[] = { 1.064225, -0.745195, -0.34, 0.769569 };   cblas_dsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[i], C_expected[i], dbleps, "dsyrk(case 1579)");     }   };  };  {   int order = 101;   int uplo = 122;   int trans = 112;   int N = 2;   int K = 1;   double alpha = -0.3;   double beta = 1;   double A[] = { -0.464, 0.394 };   int lda = 2;   double C[] = { -0.45, -0.447, 0.649, 0.055 };   int ldc = 2;   double C_expected[] = { -0.5145888, -0.447, 0.7038448, 0.0084292 };   cblas_dsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[i], C_expected[i], dbleps, "dsyrk(case 1580)");     }   };  };  {   int order = 102;   int uplo = 122;   int trans = 112;   int N = 2;   int K = 1;   double alpha = -0.3;   double beta = 1;   double A[] = { 0.815, 0.168 };   int lda = 1;   double C[] = { 0.817, -0.957, -0.395, -0.382 };   int ldc = 2;   double C_expected[] = { 0.6177325, -0.998076, -0.395, -0.3904672 };   cblas_dsyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[i], C_expected[i], dbleps, "dsyrk(case 1581)");     }   };  };  {   int order = 101;   int uplo = 121;   int trans = 111;   int N = 2;   int K = 1;   float alpha[2] = {0.0f, 0.0f};   float beta[2] = {-0.3f, 0.1f};   float A[] = { 0.447f, -0.507f, -0.425f, 0.701f };   int lda = 1;   float C[] = { 0.16f, -0.245f, 0.922f, -0.437f, 0.24f, 0.008f, -0.095f, 0.749f };   int ldc = 2;   float C_expected[] = { -0.0235f, 0.0895f, -0.2329f, 0.2233f, 0.24f, 0.008f, -0.0464f, -0.2342f };   cblas_csyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyrk(case 1582) real");       gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyrk(case 1582) imag");     };   };  };  {   int order = 102;   int uplo = 121;   int trans = 111;   int N = 2;   int K = 1;   float alpha[2] = {0.0f, 0.0f};   float beta[2] = {-0.3f, 0.1f};   float A[] = { -0.421f, -0.435f, -0.914f, -0.493f };   int lda = 2;   float C[] = { -0.761f, -0.38f, 0.043f, -0.999f, 0.779f, 0.238f, 0.082f, 0.394f };   int ldc = 2;   float C_expected[] = { 0.2663f, 0.0379f, 0.043f, -0.999f, -0.2575f, 0.0065f, -0.064f, -0.11f };   cblas_csyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyrk(case 1583) real");       gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyrk(case 1583) imag");     };   };  };  {   int order = 101;   int uplo = 121;   int trans = 112;   int N = 2;   int K = 1;   float alpha[2] = {-1.0f, 0.0f};   float beta[2] = {-0.3f, 0.1f};   float A[] = { 0.827f, -0.896f, 0.417f, 0.865f };   int lda = 2;   float C[] = { -0.349f, -0.31f, 0.972f, 0.794f, -0.906f, -0.595f, -0.089f, -0.333f };   int ldc = 2;   float C_expected[] = { 0.254587f, 1.54008f, -1.4909f, -0.482723f, -0.906f, -0.595f, 0.634336f, -0.63041f };   cblas_csyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyrk(case 1584) real");       gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyrk(case 1584) imag");     };   };  };  {   int order = 102;   int uplo = 121;   int trans = 112;   int N = 2;   int K = 1;   float alpha[2] = {-1.0f, 0.0f};   float beta[2] = {-0.3f, 0.1f};   float A[] = { 0.607f, 0.747f, -0.889f, 0.333f };   int lda = 1;   float C[] = { 0.244f, 0.564f, 0.009f, 0.578f, -0.827f, 0.558f, -0.337f, 0.731f };   int ldc = 2;   float C_expected[] = { 0.05996f, -1.05166f, 0.009f, 0.578f, 0.980674f, 0.211852f, -0.651432f, 0.339074f };   cblas_csyrk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);   {     int i;     for (i = 0; i < 4; i++) {       gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyrk(case 1585) real");       gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyrk(case 1585) imag");     };   };  };  {   int order = 101;   int uplo = 121;   int trans = 113;

⌨️ 快捷键说明

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