1 #include <gsl/gsl_test.h>
2 #include <gsl/gsl_ieee_utils.h>
3 #include <gsl/gsl_math.h>
4 #include <gsl/gsl_cblas.h>
10 const double flteps = 1e-4, dbleps = 1e-6;
19 float A[] = { -0.915f, 0.445f };
21 float B[] = { 0.213f, -0.194f };
23 float C[] = { -0.117f };
25 float C_expected[] = { -0.173245f };
26 cblas_ssyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
29 for (i = 0; i < 1; i++) {
30 gsl_test_rel(C[i], C_expected[i], flteps, "ssyr2k(case 1614)");
44 float A[] = { 0.089f, -0.889f };
46 float B[] = { -0.384f, 0.518f };
48 float C[] = { 0.069f };
50 float C_expected[] = { -0.0299356f };
51 cblas_ssyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
54 for (i = 0; i < 1; i++) {
55 gsl_test_rel(C[i], C_expected[i], flteps, "ssyr2k(case 1615)");
69 float A[] = { 0.492f, 0.021f };
71 float B[] = { -0.804f, -0.912f };
73 float C[] = { -0.851f };
75 float C_expected[] = { -0.933944f };
76 cblas_ssyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
79 for (i = 0; i < 1; i++) {
80 gsl_test_rel(C[i], C_expected[i], flteps, "ssyr2k(case 1616)");
94 float A[] = { -0.376f, 0.689f };
96 float B[] = { 0.21f, 0.406f };
98 float C[] = { -0.581f };
100 float C_expected[] = { -0.540845f };
101 cblas_ssyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
104 for (i = 0; i < 1; i++) {
105 gsl_test_rel(C[i], C_expected[i], flteps, "ssyr2k(case 1617)");
119 float A[] = { 0.629f, -0.883f };
121 float B[] = { -0.165f, 0.02f };
123 float C[] = { 0.236f };
125 float C_expected[] = { -0.31369f };
126 cblas_ssyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
129 for (i = 0; i < 1; i++) {
130 gsl_test_rel(C[i], C_expected[i], flteps, "ssyr2k(case 1618)");
144 float A[] = { 0.412f, -0.411f };
146 float B[] = { 0.313f, 0.301f };
148 float C[] = { 0.222f };
150 float C_expected[] = { -0.05611f };
151 cblas_ssyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
154 for (i = 0; i < 1; i++) {
155 gsl_test_rel(C[i], C_expected[i], flteps, "ssyr2k(case 1619)");
169 float A[] = { -0.02f, 0.593f };
171 float B[] = { -0.144f, 0.846f };
173 float C[] = { -0.645f };
175 float C_expected[] = { 1.20262f };
176 cblas_ssyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
179 for (i = 0; i < 1; i++) {
180 gsl_test_rel(C[i], C_expected[i], flteps, "ssyr2k(case 1620)");
194 float A[] = { 0.253f, 0.937f };
196 float B[] = { 0.24f, -0.27f };
198 float C[] = { 0.128f };
200 float C_expected[] = { -0.42294f };
201 cblas_ssyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
204 for (i = 0; i < 1; i++) {
205 gsl_test_rel(C[i], C_expected[i], flteps, "ssyr2k(case 1621)");
219 double A[] = { -0.225, 0.857 };
221 double B[] = { -0.933, 0.994 };
223 double C[] = { 0.177 };
225 double C_expected[] = { 0.2123566 };
226 cblas_dsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
229 for (i = 0; i < 1; i++) {
230 gsl_test_rel(C[i], C_expected[i], dbleps, "dsyr2k(case 1622)");
244 double A[] = { -0.955, 0.112 };
246 double B[] = { -0.695, 0.719 };
248 double C[] = { 0.069 };
250 double C_expected[] = { 0.1488506 };
251 cblas_dsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
254 for (i = 0; i < 1; i++) {
255 gsl_test_rel(C[i], C_expected[i], dbleps, "dsyr2k(case 1623)");
269 double A[] = { 0.216, 0.911 };
271 double B[] = { -0.074, -0.256 };
273 double C[] = { -0.621 };
275 double C_expected[] = { -0.04984 };
276 cblas_dsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
279 for (i = 0; i < 1; i++) {
280 gsl_test_rel(C[i], C_expected[i], dbleps, "dsyr2k(case 1624)");
294 double A[] = { -0.343, -0.381 };
296 double B[] = { -0.433, -0.087 };
298 double C[] = { -0.889 };
300 double C_expected[] = { 0.0363332 };
301 cblas_dsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
304 for (i = 0; i < 1; i++) {
305 gsl_test_rel(C[i], C_expected[i], dbleps, "dsyr2k(case 1625)");
319 double A[] = { -0.633, 0.219 };
321 double B[] = { 0.817, -0.683 };
323 double C[] = { -0.294 };
325 double C_expected[] = { -1.039476 };
326 cblas_dsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
329 for (i = 0; i < 1; i++) {
330 gsl_test_rel(C[i], C_expected[i], dbleps, "dsyr2k(case 1626)");
344 double A[] = { -0.887, -0.43 };
346 double B[] = { 0.557, 0.912 };
348 double C[] = { 0.831 };
350 double C_expected[] = { -2.603438 };
351 cblas_dsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
354 for (i = 0; i < 1; i++) {
355 gsl_test_rel(C[i], C_expected[i], dbleps, "dsyr2k(case 1627)");
369 double A[] = { 0.397, -0.173 };
371 double B[] = { 0.155, -0.99 };
373 double C[] = { 0.621 };
375 double C_expected[] = { -0.15539 };
376 cblas_dsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
379 for (i = 0; i < 1; i++) {
380 gsl_test_rel(C[i], C_expected[i], dbleps, "dsyr2k(case 1628)");
394 double A[] = { 0.833, -0.52 };
396 double B[] = { 0.28, 0.481 };
398 double C[] = { 0.455 };
400 double C_expected[] = { -0.48876 };
401 cblas_dsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
404 for (i = 0; i < 1; i++) {
405 gsl_test_rel(C[i], C_expected[i], dbleps, "dsyr2k(case 1629)");
417 float alpha[2] = {0.0f, 0.1f};
418 float beta[2] = {0.0f, 0.0f};
419 float A[] = { -0.248f, -0.037f, -0.124f, 0.998f };
421 float B[] = { -0.608f, -0.115f, -0.718f, -0.551f };
423 float C[] = { 0.187f, -0.329f };
425 float C_expected[] = { 0.119445f, 0.157092f };
426 cblas_csyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
429 for (i = 0; i < 1; i++) {
430 gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyr2k(case 1630) real");
431 gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyr2k(case 1630) imag");
443 float alpha[2] = {0.0f, 0.1f};
444 float beta[2] = {0.0f, 0.0f};
445 float A[] = { 0.068f, 0.751f, -0.449f, -0.598f };
447 float B[] = { 0.616f, 0.805f, -0.635f, 0.773f };
449 float C[] = { -0.287f, 0.917f };
451 float C_expected[] = { -0.110002f, 0.0369404f };
452 cblas_csyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
455 for (i = 0; i < 1; i++) {
456 gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyr2k(case 1631) real");
457 gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyr2k(case 1631) imag");
469 float alpha[2] = {0.0f, 0.1f};
470 float beta[2] = {0.0f, 0.0f};
471 float A[] = { -0.396f, -0.603f, -0.131f, -0.288f };
473 float B[] = { -0.64f, -0.444f, -0.085f, 0.936f };
475 float C[] = { 0.375f, -0.434f };
477 float C_expected[] = { -0.0927216f, 0.0532822f };
478 cblas_csyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
481 for (i = 0; i < 1; i++) {
482 gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyr2k(case 1632) real");
483 gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyr2k(case 1632) imag");
495 float alpha[2] = {0.0f, 0.1f};
496 float beta[2] = {0.0f, 0.0f};
497 float A[] = { 0.655f, 0.16f, 0.45f, -0.747f };
499 float B[] = { 0.923f, 0.432f, -0.986f, 0.259f };
501 float C[] = { 0.752f, 0.576f };
503 float C_expected[] = { -0.256746f, 0.0570436f };
504 cblas_csyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
507 for (i = 0; i < 1; i++) {
508 gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyr2k(case 1633) real");
509 gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyr2k(case 1633) imag");
521 float alpha[2] = {0.0f, 0.1f};
522 float beta[2] = {0.0f, 0.0f};
523 float A[] = { -0.765f, 0.487f, 0.7f, 0.768f };
525 float B[] = { -0.529f, 0.056f, -0.584f, 0.928f };
527 float C[] = { -0.426f, 0.836f };
529 float C_expected[] = { 0.019875f, -0.148818f };
530 cblas_csyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
533 for (i = 0; i < 1; i++) {
534 gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyr2k(case 1634) real");
535 gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyr2k(case 1634) imag");
547 float alpha[2] = {0.0f, 0.1f};
548 float beta[2] = {0.0f, 0.0f};
549 float A[] = { 0.25f, 0.489f, 0.8f, -0.642f };
551 float B[] = { -0.732f, -0.856f, -0.654f, 0.591f };
553 float C[] = { -0.101f, 0.322f };
555 float C_expected[] = { -0.064144f, 0.0183612f };
556 cblas_csyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
559 for (i = 0; i < 1; i++) {
560 gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyr2k(case 1635) real");
561 gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyr2k(case 1635) imag");
573 float alpha[2] = {0.0f, 0.1f};
574 float beta[2] = {0.0f, 0.0f};
575 float A[] = { -0.579f, -0.971f, 0.521f, -0.824f };
577 float B[] = { -0.227f, 0.907f, 0.457f, -0.274f };
579 float C[] = { 0.21f, -0.718f };
581 float C_expected[] = { 0.164812f, 0.20489f };
582 cblas_csyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
585 for (i = 0; i < 1; i++) {
586 gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyr2k(case 1636) real");
587 gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyr2k(case 1636) imag");
599 float alpha[2] = {0.0f, 0.1f};
600 float beta[2] = {0.0f, 0.0f};
601 float A[] = { -0.83f, -0.512f, -0.667f, -0.436f };
603 float B[] = { -0.443f, 0.82f, -0.259f, -0.618f };
605 float C[] = { 0.583f, 0.668f };
607 float C_expected[] = { -0.0142692f, 0.138167f };
608 cblas_csyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
611 for (i = 0; i < 1; i++) {
612 gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csyr2k(case 1637) real");
613 gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csyr2k(case 1637) imag");
625 double alpha[2] = {0, 0};
626 double beta[2] = {-0.3, 0.1};
627 double A[] = { -0.315, 0.03, 0.281, 0.175 };
629 double B[] = { -0.832, -0.964, 0.291, 0.476 };
631 double C[] = { -0.341, 0.743 };
633 double C_expected[] = { 0.028, -0.257 };
634 cblas_zsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
637 for (i = 0; i < 1; i++) {
638 gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyr2k(case 1638) real");
639 gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyr2k(case 1638) imag");
651 double alpha[2] = {0, 0};
652 double beta[2] = {-0.3, 0.1};
653 double A[] = { -0.159, -0.489, -0.11, 0.611 };
655 double B[] = { -0.285, -0.048, -0.673, -0.492 };
657 double C[] = { 0.496, -0.626 };
659 double C_expected[] = { -0.0862, 0.2374 };
660 cblas_zsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
663 for (i = 0; i < 1; i++) {
664 gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyr2k(case 1639) real");
665 gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyr2k(case 1639) imag");
677 double alpha[2] = {0, 0};
678 double beta[2] = {-0.3, 0.1};
679 double A[] = { 0.796, 0.872, -0.919, 0.748 };
681 double B[] = { -0.945, 0.915, -0.252, -0.276 };
683 double C[] = { 0.07, -0.957 };
685 double C_expected[] = { 0.0747, 0.2941 };
686 cblas_zsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
689 for (i = 0; i < 1; i++) {
690 gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyr2k(case 1640) real");
691 gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyr2k(case 1640) imag");
703 double alpha[2] = {0, 0};
704 double beta[2] = {-0.3, 0.1};
705 double A[] = { 0.984, 0.526, 0.284, 0.806 };
707 double B[] = { -0.509, -0.178, 0.188, -0.221 };
709 double C[] = { -0.388, 0.795 };
711 double C_expected[] = { 0.0369, -0.2773 };
712 cblas_zsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
715 for (i = 0; i < 1; i++) {
716 gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyr2k(case 1641) real");
717 gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyr2k(case 1641) imag");
729 double alpha[2] = {1, 0};
730 double beta[2] = {0, 0.1};
731 double A[] = { 0.628, 0.846, -0.645, 0.032 };
733 double B[] = { 0.545, -0.54, 0.493, -0.035 };
735 double C[] = { -0.16, -0.06 };
737 double C_expected[] = { 0.97047, 0.304602 };
738 cblas_zsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
741 for (i = 0; i < 1; i++) {
742 gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyr2k(case 1642) real");
743 gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyr2k(case 1642) imag");
755 double alpha[2] = {1, 0};
756 double beta[2] = {0, 0.1};
757 double A[] = { -0.556, -0.946, 0.177, -0.859 };
759 double B[] = { 0.423, -0.91, 0.736, -0.251 };
761 double C[] = { -0.478, 0.519 };
763 double C_expected[] = { -2.41467, -1.189498 };
764 cblas_zsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
767 for (i = 0; i < 1; i++) {
768 gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyr2k(case 1643) real");
769 gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyr2k(case 1643) imag");
781 double alpha[2] = {1, 0};
782 double beta[2] = {0, 0.1};
783 double A[] = { -0.582, 0.09, -0.176, 0.784 };
785 double B[] = { 0.687, -0.859, 0.945, 0.756 };
787 double C[] = { -0.663, -0.186 };
789 double C_expected[] = { -2.144496, 2.272884 };
790 cblas_zsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
793 for (i = 0; i < 1; i++) {
794 gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyr2k(case 1644) real");
795 gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyr2k(case 1644) imag");
807 double alpha[2] = {1, 0};
808 double beta[2] = {0, 0.1};
809 double A[] = { 0.231, -0.452, -0.112, -0.837 };
811 double B[] = { -0.258, 0.464, -0.224, 0.893 };
813 double C[] = { -0.448, 0.046 };
815 double C_expected[] = { 1.840718, 0.577744 };
816 cblas_zsyr2k(order, uplo, trans, N, K, alpha, A, lda, B, ldb, beta, C, ldc);
819 for (i = 0; i < 1; i++) {
820 gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsyr2k(case 1645) real");
821 gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsyr2k(case 1645) imag");