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>
5
6 #include "tests.h"
7
8 void
test_symm(void)9 test_symm (void) {
10 const double flteps = 1e-4, dbleps = 1e-6;
11 {
12 int order = 101;
13 int side = 141;
14 int uplo = 121;
15 int M = 1;
16 int N = 2;
17 float alpha = -0.3f;
18 float beta = -1.0f;
19 float A[] = { -0.581f };
20 int lda = 1;
21 float B[] = { 0.157f, 0.451f };
22 int ldb = 2;
23 float C[] = { -0.869f, -0.871f };
24 int ldc = 2;
25 float C_expected[] = { 0.896365f, 0.949609f };
26 cblas_ssymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
27 {
28 int i;
29 for (i = 0; i < 2; i++) {
30 gsl_test_rel(C[i], C_expected[i], flteps, "ssymm(case 1518)");
31 }
32 };
33 };
34
35
36 {
37 int order = 102;
38 int side = 141;
39 int uplo = 121;
40 int M = 1;
41 int N = 2;
42 float alpha = -0.3f;
43 float beta = -1.0f;
44 float A[] = { 0.874f };
45 int lda = 1;
46 float B[] = { 0.085f, 0.069f };
47 int ldb = 1;
48 float C[] = { -0.495f, -0.828f };
49 int ldc = 1;
50 float C_expected[] = { 0.472713f, 0.809908f };
51 cblas_ssymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
52 {
53 int i;
54 for (i = 0; i < 2; i++) {
55 gsl_test_rel(C[i], C_expected[i], flteps, "ssymm(case 1519)");
56 }
57 };
58 };
59
60
61 {
62 int order = 101;
63 int side = 142;
64 int uplo = 121;
65 int M = 1;
66 int N = 2;
67 float alpha = -1.0f;
68 float beta = 0.0f;
69 float A[] = { -0.671f, -0.343f, 0.6f, 0.177f };
70 int lda = 2;
71 float B[] = { 0.043f, 0.01f };
72 int ldb = 2;
73 float C[] = { 0.988f, 0.478f };
74 int ldc = 2;
75 float C_expected[] = { 0.032283f, 0.012979f };
76 cblas_ssymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
77 {
78 int i;
79 for (i = 0; i < 2; i++) {
80 gsl_test_rel(C[i], C_expected[i], flteps, "ssymm(case 1520)");
81 }
82 };
83 };
84
85
86 {
87 int order = 102;
88 int side = 142;
89 int uplo = 121;
90 int M = 1;
91 int N = 2;
92 float alpha = -1.0f;
93 float beta = 0.0f;
94 float A[] = { 0.069f, 0.096f, 0.139f, -0.044f };
95 int lda = 2;
96 float B[] = { -0.448f, 0.07f };
97 int ldb = 1;
98 float C[] = { 0.361f, 0.995f };
99 int ldc = 1;
100 float C_expected[] = { 0.021182f, 0.065352f };
101 cblas_ssymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
102 {
103 int i;
104 for (i = 0; i < 2; i++) {
105 gsl_test_rel(C[i], C_expected[i], flteps, "ssymm(case 1521)");
106 }
107 };
108 };
109
110
111 {
112 int order = 101;
113 int side = 141;
114 int uplo = 122;
115 int M = 1;
116 int N = 2;
117 float alpha = 0.0f;
118 float beta = -0.3f;
119 float A[] = { 0.745f };
120 int lda = 1;
121 float B[] = { -0.269f, 0.448f };
122 int ldb = 2;
123 float C[] = { -0.986f, 0.2f };
124 int ldc = 2;
125 float C_expected[] = { 0.2958f, -0.06f };
126 cblas_ssymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
127 {
128 int i;
129 for (i = 0; i < 2; i++) {
130 gsl_test_rel(C[i], C_expected[i], flteps, "ssymm(case 1522)");
131 }
132 };
133 };
134
135
136 {
137 int order = 102;
138 int side = 141;
139 int uplo = 122;
140 int M = 1;
141 int N = 2;
142 float alpha = 0.0f;
143 float beta = -0.3f;
144 float A[] = { 0.96f };
145 int lda = 1;
146 float B[] = { 0.392f, -0.07f };
147 int ldb = 1;
148 float C[] = { -0.235f, 0.554f };
149 int ldc = 1;
150 float C_expected[] = { 0.0705f, -0.1662f };
151 cblas_ssymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
152 {
153 int i;
154 for (i = 0; i < 2; i++) {
155 gsl_test_rel(C[i], C_expected[i], flteps, "ssymm(case 1523)");
156 }
157 };
158 };
159
160
161 {
162 int order = 101;
163 int side = 142;
164 int uplo = 122;
165 int M = 1;
166 int N = 2;
167 float alpha = -0.3f;
168 float beta = 0.1f;
169 float A[] = { -0.839f, 0.498f, -0.215f, -0.314f };
170 int lda = 2;
171 float B[] = { -0.66f, 0.593f };
172 int ldb = 2;
173 float C[] = { -0.806f, 0.525f };
174 int ldc = 2;
175 float C_expected[] = { -0.208474f, 0.0657906f };
176 cblas_ssymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
177 {
178 int i;
179 for (i = 0; i < 2; i++) {
180 gsl_test_rel(C[i], C_expected[i], flteps, "ssymm(case 1524)");
181 }
182 };
183 };
184
185
186 {
187 int order = 102;
188 int side = 142;
189 int uplo = 122;
190 int M = 1;
191 int N = 2;
192 float alpha = -0.3f;
193 float beta = 0.1f;
194 float A[] = { 0.994f, -0.117f, -0.639f, 0.925f };
195 int lda = 2;
196 float B[] = { -0.478f, 0.147f };
197 int ldb = 1;
198 float C[] = { -0.814f, 0.316f };
199 int ldc = 1;
200 float C_expected[] = { 0.0662993f, -0.0259703f };
201 cblas_ssymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
202 {
203 int i;
204 for (i = 0; i < 2; i++) {
205 gsl_test_rel(C[i], C_expected[i], flteps, "ssymm(case 1525)");
206 }
207 };
208 };
209
210
211 {
212 int order = 101;
213 int side = 141;
214 int uplo = 121;
215 int M = 1;
216 int N = 2;
217 double alpha = -0.3;
218 double beta = 1;
219 double A[] = { -0.981 };
220 int lda = 1;
221 double B[] = { -0.823, 0.83 };
222 int ldb = 2;
223 double C[] = { 0.991, 0.382 };
224 int ldc = 2;
225 double C_expected[] = { 0.7487911, 0.626269 };
226 cblas_dsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
227 {
228 int i;
229 for (i = 0; i < 2; i++) {
230 gsl_test_rel(C[i], C_expected[i], dbleps, "dsymm(case 1526)");
231 }
232 };
233 };
234
235
236 {
237 int order = 102;
238 int side = 141;
239 int uplo = 121;
240 int M = 1;
241 int N = 2;
242 double alpha = -0.3;
243 double beta = 1;
244 double A[] = { -0.248 };
245 int lda = 1;
246 double B[] = { 0.74, 0.068 };
247 int ldb = 1;
248 double C[] = { -0.905, 0.742 };
249 int ldc = 1;
250 double C_expected[] = { -0.849944, 0.7470592 };
251 cblas_dsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
252 {
253 int i;
254 for (i = 0; i < 2; i++) {
255 gsl_test_rel(C[i], C_expected[i], dbleps, "dsymm(case 1527)");
256 }
257 };
258 };
259
260
261 {
262 int order = 101;
263 int side = 142;
264 int uplo = 121;
265 int M = 1;
266 int N = 2;
267 double alpha = -1;
268 double beta = 1;
269 double A[] = { 0.591, -0.01, -0.192, -0.376 };
270 int lda = 2;
271 double B[] = { 0.561, 0.946 };
272 int ldb = 2;
273 double C[] = { 0.763, 0.189 };
274 int ldc = 2;
275 double C_expected[] = { 0.440909, 0.550306 };
276 cblas_dsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
277 {
278 int i;
279 for (i = 0; i < 2; i++) {
280 gsl_test_rel(C[i], C_expected[i], dbleps, "dsymm(case 1528)");
281 }
282 };
283 };
284
285
286 {
287 int order = 102;
288 int side = 142;
289 int uplo = 121;
290 int M = 1;
291 int N = 2;
292 double alpha = -1;
293 double beta = 1;
294 double A[] = { -0.786, 0.87, 0.222, -0.043 };
295 int lda = 2;
296 double B[] = { -0.503, -0.526 };
297 int ldb = 1;
298 double C[] = { -0.027, -0.391 };
299 int ldc = 1;
300 double C_expected[] = { -0.305586, -0.301952 };
301 cblas_dsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
302 {
303 int i;
304 for (i = 0; i < 2; i++) {
305 gsl_test_rel(C[i], C_expected[i], dbleps, "dsymm(case 1529)");
306 }
307 };
308 };
309
310
311 {
312 int order = 101;
313 int side = 141;
314 int uplo = 122;
315 int M = 1;
316 int N = 2;
317 double alpha = 0.1;
318 double beta = 0.1;
319 double A[] = { -0.468 };
320 int lda = 1;
321 double B[] = { -0.881, 0.692 };
322 int ldb = 2;
323 double C[] = { -0.812, -0.395 };
324 int ldc = 2;
325 double C_expected[] = { -0.0399692, -0.0718856 };
326 cblas_dsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
327 {
328 int i;
329 for (i = 0; i < 2; i++) {
330 gsl_test_rel(C[i], C_expected[i], dbleps, "dsymm(case 1530)");
331 }
332 };
333 };
334
335
336 {
337 int order = 102;
338 int side = 141;
339 int uplo = 122;
340 int M = 1;
341 int N = 2;
342 double alpha = 0.1;
343 double beta = 0.1;
344 double A[] = { 0.849 };
345 int lda = 1;
346 double B[] = { -0.887, 0.518 };
347 int ldb = 1;
348 double C[] = { 0.414, -0.251 };
349 int ldc = 1;
350 double C_expected[] = { -0.0339063, 0.0188782 };
351 cblas_dsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
352 {
353 int i;
354 for (i = 0; i < 2; i++) {
355 gsl_test_rel(C[i], C_expected[i], dbleps, "dsymm(case 1531)");
356 }
357 };
358 };
359
360
361 {
362 int order = 101;
363 int side = 142;
364 int uplo = 122;
365 int M = 1;
366 int N = 2;
367 double alpha = -1;
368 double beta = 1;
369 double A[] = { 0.457, 0.624, 0.807, 0.349 };
370 int lda = 2;
371 double B[] = { -0.609, 0.03 };
372 int ldb = 2;
373 double C[] = { 0.719, -0.624 };
374 int ldc = 2;
375 double C_expected[] = { 0.973103, -0.143007 };
376 cblas_dsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
377 {
378 int i;
379 for (i = 0; i < 2; i++) {
380 gsl_test_rel(C[i], C_expected[i], dbleps, "dsymm(case 1532)");
381 }
382 };
383 };
384
385
386 {
387 int order = 102;
388 int side = 142;
389 int uplo = 122;
390 int M = 1;
391 int N = 2;
392 double alpha = -1;
393 double beta = 1;
394 double A[] = { -0.133, -0.117, -0.163, 0.795 };
395 int lda = 2;
396 double B[] = { -0.882, 0.549 };
397 int ldb = 1;
398 double C[] = { 0.715, -0.327 };
399 int ldc = 1;
400 double C_expected[] = { 0.661927, -0.866649 };
401 cblas_dsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
402 {
403 int i;
404 for (i = 0; i < 2; i++) {
405 gsl_test_rel(C[i], C_expected[i], dbleps, "dsymm(case 1533)");
406 }
407 };
408 };
409
410
411 {
412 int order = 101;
413 int side = 141;
414 int uplo = 121;
415 int M = 1;
416 int N = 2;
417 float alpha[2] = {-1.0f, 0.0f};
418 float beta[2] = {1.0f, 0.0f};
419 float A[] = { 0.476f, 0.816f };
420 int lda = 1;
421 float B[] = { 0.282f, 0.852f, -0.891f, -0.588f };
422 int ldb = 2;
423 float C[] = { 0.9f, 0.486f, -0.78f, -0.637f };
424 int ldc = 2;
425 float C_expected[] = { 1.461f, -0.149664f, -0.835692f, 0.369944f };
426 cblas_csymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
427 {
428 int i;
429 for (i = 0; i < 2; i++) {
430 gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csymm(case 1534) real");
431 gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csymm(case 1534) imag");
432 };
433 };
434 };
435
436
437 {
438 int order = 102;
439 int side = 141;
440 int uplo = 121;
441 int M = 1;
442 int N = 2;
443 float alpha[2] = {-1.0f, 0.0f};
444 float beta[2] = {1.0f, 0.0f};
445 float A[] = { 0.048f, 0.172f };
446 int lda = 1;
447 float B[] = { 0.786f, 0.783f, 0.809f, -0.569f };
448 int ldb = 1;
449 float C[] = { -0.227f, -0.215f, 0.881f, 0.233f };
450 int ldc = 1;
451 float C_expected[] = { -0.130052f, -0.387776f, 0.7443f, 0.121164f };
452 cblas_csymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
453 {
454 int i;
455 for (i = 0; i < 2; i++) {
456 gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csymm(case 1535) real");
457 gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csymm(case 1535) imag");
458 };
459 };
460 };
461
462
463 {
464 int order = 101;
465 int side = 142;
466 int uplo = 121;
467 int M = 1;
468 int N = 2;
469 float alpha[2] = {0.0f, 1.0f};
470 float beta[2] = {0.0f, 1.0f};
471 float A[] = { -0.495f, -0.012f, 0.843f, -0.986f, -0.243f, 0.833f, 0.921f, 0.004f };
472 int lda = 2;
473 float B[] = { 0.876f, 0.612f, 0.805f, -0.57f };
474 int ldb = 2;
475 float C[] = { 0.938f, -0.24f, -0.874f, -0.062f };
476 int ldc = 2;
477 float C_expected[] = { 1.82769f, 0.628319f, 0.93157f, 1.21158f };
478 cblas_csymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
479 {
480 int i;
481 for (i = 0; i < 2; i++) {
482 gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csymm(case 1536) real");
483 gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csymm(case 1536) imag");
484 };
485 };
486 };
487
488
489 {
490 int order = 102;
491 int side = 142;
492 int uplo = 121;
493 int M = 1;
494 int N = 2;
495 float alpha[2] = {0.0f, 1.0f};
496 float beta[2] = {0.0f, 1.0f};
497 float A[] = { -0.812f, 0.83f, 0.705f, 0.15f, -0.463f, 0.901f, -0.547f, -0.483f };
498 int lda = 2;
499 float B[] = { -0.808f, -0.664f, 0.352f, -0.102f };
500 int ldb = 1;
501 float C[] = { -0.64f, 0.399f, 0.896f, -0.163f };
502 int ldc = 1;
503 float C_expected[] = { -0.631906f, 0.496142f, 0.697798f, 1.62656f };
504 cblas_csymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
505 {
506 int i;
507 for (i = 0; i < 2; i++) {
508 gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csymm(case 1537) real");
509 gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csymm(case 1537) imag");
510 };
511 };
512 };
513
514
515 {
516 int order = 101;
517 int side = 141;
518 int uplo = 122;
519 int M = 1;
520 int N = 2;
521 float alpha[2] = {-1.0f, 0.0f};
522 float beta[2] = {0.0f, 1.0f};
523 float A[] = { 0.342f, -0.906f };
524 int lda = 1;
525 float B[] = { 0.676f, 0.863f, -0.517f, -0.138f };
526 int ldb = 2;
527 float C[] = { 0.274f, 0.388f, -0.271f, 0.205f };
528 int ldc = 2;
529 float C_expected[] = { -1.40107f, 0.59131f, 0.096842f, -0.692206f };
530 cblas_csymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
531 {
532 int i;
533 for (i = 0; i < 2; i++) {
534 gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csymm(case 1538) real");
535 gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csymm(case 1538) imag");
536 };
537 };
538 };
539
540
541 {
542 int order = 102;
543 int side = 141;
544 int uplo = 122;
545 int M = 1;
546 int N = 2;
547 float alpha[2] = {-1.0f, 0.0f};
548 float beta[2] = {0.0f, 1.0f};
549 float A[] = { 0.418f, 0.354f };
550 int lda = 1;
551 float B[] = { -0.74f, 0.018f, 0.395f, 0.248f };
552 int ldb = 1;
553 float C[] = { -0.162f, 0.175f, -0.853f, 0.652f };
554 int ldc = 1;
555 float C_expected[] = { 0.140692f, 0.092436f, -0.729318f, -1.09649f };
556 cblas_csymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
557 {
558 int i;
559 for (i = 0; i < 2; i++) {
560 gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csymm(case 1539) real");
561 gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csymm(case 1539) imag");
562 };
563 };
564 };
565
566
567 {
568 int order = 101;
569 int side = 142;
570 int uplo = 122;
571 int M = 1;
572 int N = 2;
573 float alpha[2] = {-0.3f, 0.1f};
574 float beta[2] = {0.0f, 0.1f};
575 float A[] = { 0.12f, 0.496f, 0.313f, -0.136f, 0.987f, 0.532f, 0.58f, -0.687f };
576 int lda = 2;
577 float B[] = { -0.587f, 0.278f, 0.857f, 0.136f };
578 int ldb = 2;
579 float C[] = { 0.162f, 0.249f, -0.665f, 0.456f };
580 int ldc = 2;
581 float C_expected[] = { -0.22769f, -0.0269913f, 0.0502096f, 0.0841558f };
582 cblas_csymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
583 {
584 int i;
585 for (i = 0; i < 2; i++) {
586 gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csymm(case 1540) real");
587 gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csymm(case 1540) imag");
588 };
589 };
590 };
591
592
593 {
594 int order = 102;
595 int side = 142;
596 int uplo = 122;
597 int M = 1;
598 int N = 2;
599 float alpha[2] = {-0.3f, 0.1f};
600 float beta[2] = {0.0f, 0.1f};
601 float A[] = { 0.579f, -0.859f, 0.192f, -0.737f, 0.396f, -0.498f, 0.751f, -0.379f };
602 int lda = 2;
603 float B[] = { 0.84f, -0.755f, -0.019f, -0.063f };
604 int ldb = 1;
605 float C[] = { 0.04f, 0.639f, -0.876f, -0.778f };
606 int ldc = 1;
607 float C_expected[] = { 0.115459f, 0.329813f, 0.288206f, 0.110315f };
608 cblas_csymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
609 {
610 int i;
611 for (i = 0; i < 2; i++) {
612 gsl_test_rel(C[2*i], C_expected[2*i], flteps, "csymm(case 1541) real");
613 gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "csymm(case 1541) imag");
614 };
615 };
616 };
617
618
619 {
620 int order = 101;
621 int side = 141;
622 int uplo = 121;
623 int M = 1;
624 int N = 2;
625 double alpha[2] = {0, 0};
626 double beta[2] = {0, 0};
627 double A[] = { 0.511, -0.486 };
628 int lda = 1;
629 double B[] = { 0.985, -0.923, -0.234, -0.756 };
630 int ldb = 2;
631 double C[] = { -0.16, 0.049, 0.618, -0.349 };
632 int ldc = 2;
633 double C_expected[] = { 0.0, 0.0, 0.0, 0.0 };
634 cblas_zsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
635 {
636 int i;
637 for (i = 0; i < 2; i++) {
638 gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsymm(case 1542) real");
639 gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsymm(case 1542) imag");
640 };
641 };
642 };
643
644
645 {
646 int order = 102;
647 int side = 141;
648 int uplo = 121;
649 int M = 1;
650 int N = 2;
651 double alpha[2] = {0, 0};
652 double beta[2] = {0, 0};
653 double A[] = { 0.46, -0.816 };
654 int lda = 1;
655 double B[] = { 0.404, 0.113, -0.904, -0.627 };
656 int ldb = 1;
657 double C[] = { 0.114, 0.318, 0.636, -0.839 };
658 int ldc = 1;
659 double C_expected[] = { 0.0, 0.0, 0.0, 0.0 };
660 cblas_zsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
661 {
662 int i;
663 for (i = 0; i < 2; i++) {
664 gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsymm(case 1543) real");
665 gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsymm(case 1543) imag");
666 };
667 };
668 };
669
670
671 {
672 int order = 101;
673 int side = 142;
674 int uplo = 121;
675 int M = 1;
676 int N = 2;
677 double alpha[2] = {-1, 0};
678 double beta[2] = {-0.3, 0.1};
679 double A[] = { -0.835, 0.344, 0.975, 0.634, 0.312, -0.659, -0.624, -0.175 };
680 int lda = 2;
681 double B[] = { -0.707, -0.846, 0.825, -0.661 };
682 int ldb = 2;
683 double C[] = { 0.352, -0.499, 0.267, 0.548 };
684 int ldc = 2;
685 double C_expected[] = { -2.160518, -0.156877, 0.648536, 0.867299 };
686 cblas_zsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
687 {
688 int i;
689 for (i = 0; i < 2; i++) {
690 gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsymm(case 1544) real");
691 gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsymm(case 1544) imag");
692 };
693 };
694 };
695
696
697 {
698 int order = 102;
699 int side = 142;
700 int uplo = 121;
701 int M = 1;
702 int N = 2;
703 double alpha[2] = {-1, 0};
704 double beta[2] = {-0.3, 0.1};
705 double A[] = { -0.409, 0.013, -0.308, -0.317, -0.535, -0.697, -0.385, 0.119 };
706 int lda = 2;
707 double B[] = { 0.299, -0.233, 0.093, 0.664 };
708 int ldb = 1;
709 double C[] = { 0.699, 0.47, -0.347, -0.182 };
710 int ldc = 1;
711 double C_expected[] = { -0.550491, 0.249777, 0.559487, 0.348221 };
712 cblas_zsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
713 {
714 int i;
715 for (i = 0; i < 2; i++) {
716 gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsymm(case 1545) real");
717 gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsymm(case 1545) imag");
718 };
719 };
720 };
721
722
723 {
724 int order = 101;
725 int side = 141;
726 int uplo = 122;
727 int M = 1;
728 int N = 2;
729 double alpha[2] = {1, 0};
730 double beta[2] = {0, 1};
731 double A[] = { -0.151, 0.635 };
732 int lda = 1;
733 double B[] = { 0.711, -0.869, 0.153, 0.647 };
734 int ldb = 2;
735 double C[] = { -0.299, 0.43, -0.307, 0.133 };
736 int ldc = 2;
737 double C_expected[] = { 0.014454, 0.283704, -0.566948, -0.307542 };
738 cblas_zsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
739 {
740 int i;
741 for (i = 0; i < 2; i++) {
742 gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsymm(case 1546) real");
743 gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsymm(case 1546) imag");
744 };
745 };
746 };
747
748
749 {
750 int order = 102;
751 int side = 141;
752 int uplo = 122;
753 int M = 1;
754 int N = 2;
755 double alpha[2] = {1, 0};
756 double beta[2] = {0, 1};
757 double A[] = { 0.793, -0.543 };
758 int lda = 1;
759 double B[] = { 0.054, -0.045, 0.989, 0.453 };
760 int ldb = 1;
761 double C[] = { 0.443, -0.641, -0.809, -0.83 };
762 int ldc = 1;
763 double C_expected[] = { 0.659387, 0.377993, 1.860256, -0.986798 };
764 cblas_zsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
765 {
766 int i;
767 for (i = 0; i < 2; i++) {
768 gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsymm(case 1547) real");
769 gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsymm(case 1547) imag");
770 };
771 };
772 };
773
774
775 {
776 int order = 101;
777 int side = 142;
778 int uplo = 122;
779 int M = 1;
780 int N = 2;
781 double alpha[2] = {1, 0};
782 double beta[2] = {-1, 0};
783 double A[] = { -0.432, -0.293, -0.819, 0.44, -0.818, -0.258, -0.836, 0.683 };
784 int lda = 2;
785 double B[] = { -0.259, -0.878, 0.161, 0.744 };
786 int ldb = 2;
787 double C[] = { 0.436, -0.655, -0.61, -0.875 };
788 int ldc = 2;
789 double C_expected[] = { -0.521112, 0.460053, -0.04741, 1.148005 };
790 cblas_zsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
791 {
792 int i;
793 for (i = 0; i < 2; i++) {
794 gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsymm(case 1548) real");
795 gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsymm(case 1548) imag");
796 };
797 };
798 };
799
800
801 {
802 int order = 102;
803 int side = 142;
804 int uplo = 122;
805 int M = 1;
806 int N = 2;
807 double alpha[2] = {1, 0};
808 double beta[2] = {-1, 0};
809 double A[] = { -0.656, 0.378, -0.688, 0.676, 0.967, -0.804, 0.455, -0.425 };
810 int lda = 2;
811 double B[] = { 0.791, -0.947, -0.945, -0.444 };
812 int ldb = 1;
813 double C[] = { 0.014, -0.814, -0.091, -0.417 };
814 int ldc = 1;
815 double C_expected[] = { 0.775374, 1.400882, -0.431711, 1.802857 };
816 cblas_zsymm(order, side, uplo, M, N, alpha, A, lda, B, ldb, beta, C, ldc);
817 {
818 int i;
819 for (i = 0; i < 2; i++) {
820 gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zsymm(case 1549) real");
821 gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zsymm(case 1549) imag");
822 };
823 };
824 };
825
826
827 }
828