Added script front-end for primer-design code
[htsworkflow.git] / htswanalysis / MACS / lib / gsl / gsl-1.11 / cblas / test_trsm.c
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
9 test_trsm (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 trans = 111;
16    int diag = 131;
17    int M = 2;
18    int N = 3;
19    float alpha = -0.3f;
20    float A[] = { -0.279f, 0.058f, 0.437f, 0.462f };
21    int lda = 2;
22    float B[] = { 0.578f, 0.473f, -0.34f, -0.128f, 0.503f, 0.2f };
23    int ldb = 3;
24    float B_expected[] = { 0.638784f, 0.440702f, -0.392589f, 0.0831169f, -0.326623f, -0.12987f };
25    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
26    {
27      int i;
28      for (i = 0; i < 6; i++) {
29        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1822)");
30      }
31    };
32   };
33
34
35   {
36    int order = 101;
37    int side = 141;
38    int uplo = 121;
39    int trans = 111;
40    int diag = 132;
41    int M = 2;
42    int N = 3;
43    float alpha = -0.3f;
44    float A[] = { -0.735f, -0.861f, 0.772f, -0.242f };
45    int lda = 2;
46    float B[] = { -0.793f, -0.162f, -0.844f, 0.143f, -0.379f, -0.46f };
47    int ldb = 3;
48    float B_expected[] = { 0.200963f, 0.146496f, 0.372018f, -0.0429f, 0.1137f, 0.138f };
49    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
50    {
51      int i;
52      for (i = 0; i < 6; i++) {
53        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1823)");
54      }
55    };
56   };
57
58
59   {
60    int order = 101;
61    int side = 141;
62    int uplo = 122;
63    int trans = 111;
64    int diag = 131;
65    int M = 2;
66    int N = 3;
67    float alpha = -0.3f;
68    float A[] = { -0.498f, 0.777f, -0.913f, 0.779f };
69    int lda = 2;
70    float B[] = { -0.831f, -0.663f, -0.098f, -0.894f, -0.059f, 0.468f };
71    int ldb = 3;
72    float B_expected[] = { -0.500602f, -0.399398f, -0.0590361f, -0.242426f, -0.445379f, -0.249422f };
73    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
74    {
75      int i;
76      for (i = 0; i < 6; i++) {
77        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1824)");
78      }
79    };
80   };
81
82
83   {
84    int order = 101;
85    int side = 141;
86    int uplo = 122;
87    int trans = 111;
88    int diag = 132;
89    int M = 2;
90    int N = 3;
91    float alpha = -0.3f;
92    float A[] = { -0.543f, 0.095f, -0.933f, -0.669f };
93    int lda = 2;
94    float B[] = { 0.068f, 0.715f, 0.012f, -0.785f, 0.378f, 0.251f };
95    int ldb = 3;
96    float B_expected[] = { -0.0204f, -0.2145f, -0.0036f, 0.216467f, -0.313528f, -0.0786588f };
97    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
98    {
99      int i;
100      for (i = 0; i < 6; i++) {
101        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1825)");
102      }
103    };
104   };
105
106
107   {
108    int order = 102;
109    int side = 141;
110    int uplo = 121;
111    int trans = 111;
112    int diag = 131;
113    int M = 2;
114    int N = 3;
115    float alpha = -0.3f;
116    float A[] = { 0.75f, 0.777f, -0.025f, 0.572f };
117    int lda = 2;
118    float B[] = { 0.03f, 0.392f, -0.056f, 0.399f, -0.489f, -0.167f };
119    int ldb = 2;
120    float B_expected[] = { -0.0188531f, -0.205594f, 0.0154245f, -0.209266f, 0.19852f, 0.0875874f };
121    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
122    {
123      int i;
124      for (i = 0; i < 6; i++) {
125        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1826)");
126      }
127    };
128   };
129
130
131   {
132    int order = 102;
133    int side = 141;
134    int uplo = 121;
135    int trans = 111;
136    int diag = 132;
137    int M = 2;
138    int N = 3;
139    float alpha = -0.3f;
140    float A[] = { 0.899f, -0.447f, 0.338f, -0.74f };
141    int lda = 2;
142    float B[] = { 0.964f, -0.104f, -0.199f, 0.503f, -0.386f, -0.764f };
143    int ldb = 2;
144    float B_expected[] = { -0.299746f, 0.0312f, 0.110704f, -0.1509f, 0.0383304f, 0.2292f };
145    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
146    {
147      int i;
148      for (i = 0; i < 6; i++) {
149        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1827)");
150      }
151    };
152   };
153
154
155   {
156    int order = 102;
157    int side = 141;
158    int uplo = 122;
159    int trans = 111;
160    int diag = 131;
161    int M = 2;
162    int N = 3;
163    float alpha = -0.3f;
164    float A[] = { 0.279f, 0.73f, -0.366f, 0.583f };
165    int lda = 2;
166    float B[] = { -0.572f, 0.75f, 0.603f, 0.697f, 0.908f, 0.119f };
167    int ldb = 2;
168    float B_expected[] = { 0.615054f, -1.15607f, -0.648387f, 0.453212f, -0.976344f, 1.16129f };
169    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
170    {
171      int i;
172      for (i = 0; i < 6; i++) {
173        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1828)");
174      }
175    };
176   };
177
178
179   {
180    int order = 102;
181    int side = 141;
182    int uplo = 122;
183    int trans = 111;
184    int diag = 132;
185    int M = 2;
186    int N = 3;
187    float alpha = -0.3f;
188    float A[] = { 0.581f, -0.911f, 0.438f, 0.731f };
189    int lda = 2;
190    float B[] = { 0.519f, 0.831f, 0.822f, 0.182f, 0.571f, -0.357f };
191    int ldb = 2;
192    float B_expected[] = { -0.1557f, -0.391143f, -0.2466f, -0.279253f, -0.1713f, -0.0489543f };
193    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
194    {
195      int i;
196      for (i = 0; i < 6; i++) {
197        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1829)");
198      }
199    };
200   };
201
202
203   {
204    int order = 101;
205    int side = 142;
206    int uplo = 121;
207    int trans = 111;
208    int diag = 131;
209    int M = 2;
210    int N = 3;
211    float alpha = -0.3f;
212    float A[] = { 0.065f, 0.099f, 0.48f, 0.746f, -0.739f, 0.695f, 0.197f, 0.621f, 0.063f };
213    int lda = 3;
214    float B[] = { 0.01f, -0.612f, 0.756f, -0.225f, 0.546f, 0.432f };
215    int ldb = 3;
216    float B_expected[] = { -0.0461538f, -0.254627f, -0.439373f, 1.03846f, 0.360768f, -13.9491f };
217    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
218    {
219      int i;
220      for (i = 0; i < 6; i++) {
221        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1830)");
222      }
223    };
224   };
225
226
227   {
228    int order = 101;
229    int side = 142;
230    int uplo = 121;
231    int trans = 111;
232    int diag = 132;
233    int M = 2;
234    int N = 3;
235    float alpha = -0.3f;
236    float A[] = { -0.86f, -0.653f, 0.87f, -0.037f, 0.788f, 0.015f, 0.028f, -0.804f, -0.357f };
237    int lda = 3;
238    float B[] = { -0.546f, 0.892f, -0.085f, -0.541f, -0.207f, 0.765f };
239    int ldb = 3;
240    float B_expected[] = { 0.1638f, -0.160639f, -0.114596f, 0.1623f, 0.168082f, -0.373222f };
241    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
242    {
243      int i;
244      for (i = 0; i < 6; i++) {
245        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1831)");
246      }
247    };
248   };
249
250
251   {
252    int order = 101;
253    int side = 142;
254    int uplo = 122;
255    int trans = 111;
256    int diag = 131;
257    int M = 2;
258    int N = 3;
259    float alpha = -0.3f;
260    float A[] = { 0.872f, -0.35f, 0.518f, -0.8f, -0.13f, -0.832f, 0.426f, 0.195f, -0.735f };
261    int lda = 3;
262    float B[] = { 0.773f, 0.069f, 0.45f, 0.189f, 0.504f, 0.996f };
263    int ldb = 3;
264    float B_expected[] = { 0.0431742f, 0.434741f, 0.183673f, 1.36286f, 1.77287f, 0.406531f };
265    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
266    {
267      int i;
268      for (i = 0; i < 6; i++) {
269        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1832)");
270      }
271    };
272   };
273
274
275   {
276    int order = 101;
277    int side = 142;
278    int uplo = 122;
279    int trans = 111;
280    int diag = 132;
281    int M = 2;
282    int N = 3;
283    float alpha = -0.3f;
284    float A[] = { -0.053f, -0.132f, -0.515f, -0.411f, 0.134f, 0.657f, 0.072f, -0.007f, -0.34f };
285    int lda = 3;
286    float B[] = { 0.494f, 0.072f, -0.882f, -0.112f, 0.904f, 0.755f };
287    int ldb = 3;
288    float B_expected[] = { -0.175368f, -0.0197478f, 0.2646f, -0.0622068f, -0.272786f, -0.2265f };
289    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
290    {
291      int i;
292      for (i = 0; i < 6; i++) {
293        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1833)");
294      }
295    };
296   };
297
298
299   {
300    int order = 102;
301    int side = 142;
302    int uplo = 121;
303    int trans = 111;
304    int diag = 131;
305    int M = 2;
306    int N = 3;
307    float alpha = -0.3f;
308    float A[] = { -0.154f, -0.54f, 0.146f, -0.106f, -0.478f, 0.938f, -0.731f, 0.25f, -0.4f };
309    int lda = 3;
310    float B[] = { -0.88f, -0.555f, 0.642f, 0.751f, -0.859f, -0.409f };
311    int ldb = 2;
312    float B_expected[] = { -1.71429f, -1.08117f, 0.783084f, 0.711096f, 2.97803f, 2.11352f };
313    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
314    {
315      int i;
316      for (i = 0; i < 6; i++) {
317        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1834)");
318      }
319    };
320   };
321
322
323   {
324    int order = 102;
325    int side = 142;
326    int uplo = 121;
327    int trans = 111;
328    int diag = 132;
329    int M = 2;
330    int N = 3;
331    float alpha = -0.3f;
332    float A[] = { 0.249f, -0.451f, -0.781f, 0.157f, -0.02f, 0.57f, 0.309f, -0.159f, 0.266f };
333    int lda = 3;
334    float B[] = { -0.546f, 0.839f, 0.392f, -0.445f, -0.818f, 0.953f };
335    int ldb = 2;
336    float B_expected[] = { 0.1638f, -0.2517f, -0.143317f, 0.173017f, 0.171998f, -0.180615f };
337    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
338    {
339      int i;
340      for (i = 0; i < 6; i++) {
341        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1835)");
342      }
343    };
344   };
345
346
347   {
348    int order = 102;
349    int side = 142;
350    int uplo = 122;
351    int trans = 111;
352    int diag = 131;
353    int M = 2;
354    int N = 3;
355    float alpha = -0.3f;
356    float A[] = { 0.299f, 0.626f, -0.471f, 0.208f, -0.842f, 0.674f, 0.03f, 0.628f, 0.534f };
357    int lda = 3;
358    float B[] = { 0.831f, -0.997f, -0.366f, 0.307f, -0.426f, 0.806f };
359    int ldb = 2;
360    float B_expected[] = { -0.584851f, 0.816906f, 0.0611706f, -0.25308f, 0.239326f, -0.452809f };
361    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
362    {
363      int i;
364      for (i = 0; i < 6; i++) {
365        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1836)");
366      }
367    };
368   };
369
370
371   {
372    int order = 102;
373    int side = 142;
374    int uplo = 122;
375    int trans = 111;
376    int diag = 132;
377    int M = 2;
378    int N = 3;
379    float alpha = -0.3f;
380    float A[] = { 0.301f, 0.168f, 0.934f, 0.107f, 0.068f, 0.384f, -0.201f, 0.116f, -0.436f };
381    int lda = 3;
382    float B[] = { 0.773f, -0.304f, -0.402f, 0.642f, -0.102f, -0.095f };
383    int ldb = 2;
384    float B_expected[] = { -0.278767f, 0.0987764f, 0.10885f, -0.203544f, 0.0306f, 0.0285f };
385    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
386    {
387      int i;
388      for (i = 0; i < 6; i++) {
389        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1837)");
390      }
391    };
392   };
393
394
395   {
396    int order = 101;
397    int side = 141;
398    int uplo = 121;
399    int trans = 112;
400    int diag = 131;
401    int M = 2;
402    int N = 3;
403    float alpha = 1.0f;
404    float A[] = { -0.616f, 0.304f, 0.403f, 0.739f };
405    int lda = 2;
406    float B[] = { 0.273f, -0.609f, 0.858f, 0.993f, -0.738f, -0.353f };
407    int ldb = 3;
408    float B_expected[] = { -0.443182f, 0.988636f, -1.39286f, 1.52602f, -1.40534f, 0.0953025f };
409    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
410    {
411      int i;
412      for (i = 0; i < 6; i++) {
413        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1838)");
414      }
415    };
416   };
417
418
419   {
420    int order = 101;
421    int side = 141;
422    int uplo = 121;
423    int trans = 112;
424    int diag = 132;
425    int M = 2;
426    int N = 3;
427    float alpha = 1.0f;
428    float A[] = { 0.811f, 0.257f, 0.98f, -0.956f };
429    int lda = 2;
430    float B[] = { 0.996f, 0.329f, 0.273f, -0.744f, 0.662f, -0.31f };
431    int ldb = 3;
432    float B_expected[] = { 0.996f, 0.329f, 0.273f, -0.999972f, 0.577447f, -0.380161f };
433    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
434    {
435      int i;
436      for (i = 0; i < 6; i++) {
437        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1839)");
438      }
439    };
440   };
441
442
443   {
444    int order = 101;
445    int side = 141;
446    int uplo = 122;
447    int trans = 112;
448    int diag = 131;
449    int M = 2;
450    int N = 3;
451    float alpha = 1.0f;
452    float A[] = { 0.845f, 0.064f, 0.29f, -0.291f };
453    int lda = 2;
454    float B[] = { 0.878f, 0.156f, 0.217f, 0.082f, -0.869f, 0.595f };
455    int ldb = 3;
456    float B_expected[] = { 1.13576f, -0.840253f, 0.958527f, -0.281787f, 2.98625f, -2.04467f };
457    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
458    {
459      int i;
460      for (i = 0; i < 6; i++) {
461        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1840)");
462      }
463    };
464   };
465
466
467   {
468    int order = 101;
469    int side = 141;
470    int uplo = 122;
471    int trans = 112;
472    int diag = 132;
473    int M = 2;
474    int N = 3;
475    float alpha = 1.0f;
476    float A[] = { 0.836f, 0.359f, -0.415f, 0.154f };
477    int lda = 2;
478    float B[] = { 0.652f, 0.614f, 0.922f, -0.063f, 0.313f, -0.316f };
479    int ldb = 3;
480    float B_expected[] = { 0.625855f, 0.743895f, 0.79086f, -0.063f, 0.313f, -0.316f };
481    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
482    {
483      int i;
484      for (i = 0; i < 6; i++) {
485        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1841)");
486      }
487    };
488   };
489
490
491   {
492    int order = 102;
493    int side = 141;
494    int uplo = 121;
495    int trans = 112;
496    int diag = 131;
497    int M = 2;
498    int N = 3;
499    float alpha = 1.0f;
500    float A[] = { 0.94f, -0.656f, 0.645f, -0.634f };
501    int lda = 2;
502    float B[] = { -0.948f, -0.596f, -0.799f, 0.133f, -0.843f, -0.179f };
503    int ldb = 2;
504    float B_expected[] = { -1.00851f, -0.0859454f, -0.85f, -1.07453f, -0.896809f, -0.630034f };
505    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
506    {
507      int i;
508      for (i = 0; i < 6; i++) {
509        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1842)");
510      }
511    };
512   };
513
514
515   {
516    int order = 102;
517    int side = 141;
518    int uplo = 121;
519    int trans = 112;
520    int diag = 132;
521    int M = 2;
522    int N = 3;
523    float alpha = 1.0f;
524    float A[] = { -0.332f, 0.705f, -0.792f, -0.033f };
525    int lda = 2;
526    float B[] = { 0.561f, 0.883f, -0.136f, 0.203f, -0.531f, 0.733f };
527    int ldb = 2;
528    float B_expected[] = { 0.561f, 1.32731f, -0.136f, 0.095288f, -0.531f, 0.312448f };
529    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
530    {
531      int i;
532      for (i = 0; i < 6; i++) {
533        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1843)");
534      }
535    };
536   };
537
538
539   {
540    int order = 102;
541    int side = 141;
542    int uplo = 122;
543    int trans = 112;
544    int diag = 131;
545    int M = 2;
546    int N = 3;
547    float alpha = 1.0f;
548    float A[] = { 0.991f, 0.614f, 0.108f, -0.125f };
549    int lda = 2;
550    float B[] = { -0.723f, 0.885f, 0.336f, 0.584f, 0.742f, -0.438f };
551    int ldb = 2;
552    float B_expected[] = { 3.65703f, -7.08f, 3.23371f, -4.672f, -1.42226f, 3.504f };
553    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
554    {
555      int i;
556      for (i = 0; i < 6; i++) {
557        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1844)");
558      }
559    };
560   };
561
562
563   {
564    int order = 102;
565    int side = 141;
566    int uplo = 122;
567    int trans = 112;
568    int diag = 132;
569    int M = 2;
570    int N = 3;
571    float alpha = 1.0f;
572    float A[] = { -0.626f, 0.912f, -0.003f, 0.761f };
573    int lda = 2;
574    float B[] = { 0.736f, -0.383f, 0.0f, -0.238f, 0.013f, 0.473f };
575    int ldb = 2;
576    float B_expected[] = { 1.0853f, -0.383f, 0.217056f, -0.238f, -0.418376f, 0.473f };
577    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
578    {
579      int i;
580      for (i = 0; i < 6; i++) {
581        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1845)");
582      }
583    };
584   };
585
586
587   {
588    int order = 101;
589    int side = 142;
590    int uplo = 121;
591    int trans = 112;
592    int diag = 131;
593    int M = 2;
594    int N = 3;
595    float alpha = 1.0f;
596    float A[] = { -0.416f, 0.599f, -0.705f, 0.326f, 0.184f, 0.079f, -0.173f, 0.125f, 0.567f };
597    int lda = 3;
598    float B[] = { 0.466f, 0.907f, -0.85f, -0.342f, -0.058f, -0.379f };
599    int ldb = 3;
600    float B_expected[] = { 9.44495f, 5.57299f, -1.49912f, 1.91427f, -0.0282283f, -0.66843f };
601    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
602    {
603      int i;
604      for (i = 0; i < 6; i++) {
605        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1846)");
606      }
607    };
608   };
609
610
611   {
612    int order = 101;
613    int side = 142;
614    int uplo = 121;
615    int trans = 112;
616    int diag = 132;
617    int M = 2;
618    int N = 3;
619    float alpha = 1.0f;
620    float A[] = { -0.75f, 0.856f, 0.773f, -0.241f, -0.357f, -0.683f, -0.718f, 0.69f, -0.486f };
621    int lda = 3;
622    float B[] = { -0.532f, -0.817f, 0.85f, -0.135f, 0.797f, 0.981f };
623    int ldb = 3;
624    float B_expected[] = { -0.986649f, -0.23645f, 0.85f, -2.14908f, 1.46702f, 0.981f };
625    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
626    {
627      int i;
628      for (i = 0; i < 6; i++) {
629        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1847)");
630      }
631    };
632   };
633
634
635   {
636    int order = 101;
637    int side = 142;
638    int uplo = 122;
639    int trans = 112;
640    int diag = 131;
641    int M = 2;
642    int N = 3;
643    float alpha = 1.0f;
644    float A[] = { 0.765f, -0.408f, 0.404f, 0.764f, 0.157f, -0.741f, 0.844f, 0.206f, -0.215f };
645    int lda = 3;
646    float B[] = { -0.859f, 0.563f, -0.61f, 0.2f, 0.816f, -0.692f };
647    int ldb = 3;
648    float B_expected[] = { -1.12288f, 9.05017f, 7.1006f, 0.261438f, 3.92523f, 8.00582f };
649    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
650    {
651      int i;
652      for (i = 0; i < 6; i++) {
653        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1848)");
654      }
655    };
656   };
657
658
659   {
660    int order = 101;
661    int side = 142;
662    int uplo = 122;
663    int trans = 112;
664    int diag = 132;
665    int M = 2;
666    int N = 3;
667    float alpha = 1.0f;
668    float A[] = { 0.354f, -0.931f, 0.18f, 0.391f, 0.01f, 0.429f, 0.685f, 0.332f, -0.643f };
669    int lda = 3;
670    float B[] = { -0.645f, 0.847f, 0.014f, 0.83f, 0.761f, 0.187f };
671    int ldb = 3;
672    float B_expected[] = { -0.645f, 1.09919f, 0.0908923f, 0.83f, 0.43647f, -0.526458f };
673    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
674    {
675      int i;
676      for (i = 0; i < 6; i++) {
677        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1849)");
678      }
679    };
680   };
681
682
683   {
684    int order = 102;
685    int side = 142;
686    int uplo = 121;
687    int trans = 112;
688    int diag = 131;
689    int M = 2;
690    int N = 3;
691    float alpha = 1.0f;
692    float A[] = { 0.569f, 0.85f, 0.642f, -0.051f, 0.724f, 0.201f, 0.87f, -0.638f, 0.008f };
693    int lda = 3;
694    float B[] = { -0.923f, 0.27f, -0.319f, -0.856f, -0.533f, 0.183f };
695    int ldb = 2;
696    float B_expected[] = { 94.9456f, -32.8005f, -59.1516f, 18.9755f, -66.625f, 22.875f };
697    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
698    {
699      int i;
700      for (i = 0; i < 6; i++) {
701        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1850)");
702      }
703    };
704   };
705
706
707   {
708    int order = 102;
709    int side = 142;
710    int uplo = 121;
711    int trans = 112;
712    int diag = 132;
713    int M = 2;
714    int N = 3;
715    float alpha = 1.0f;
716    float A[] = { 0.244f, 0.931f, 0.857f, -0.295f, 0.551f, 0.832f, 0.744f, -0.326f, 0.111f };
717    int lda = 3;
718    float B[] = { -0.478f, -0.252f, -0.155f, 0.419f, -0.192f, 0.291f };
719    int ldb = 2;
720    float B_expected[] = { -0.399342f, -0.316914f, -0.217592f, 0.513866f, -0.192f, 0.291f };
721    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
722    {
723      int i;
724      for (i = 0; i < 6; i++) {
725        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1851)");
726      }
727    };
728   };
729
730
731   {
732    int order = 102;
733    int side = 142;
734    int uplo = 122;
735    int trans = 112;
736    int diag = 131;
737    int M = 2;
738    int N = 3;
739    float alpha = 1.0f;
740    float A[] = { 0.36f, 0.356f, -0.858f, 0.879f, 0.641f, 0.989f, 0.998f, -0.005f, 0.64f };
741    int lda = 3;
742    float B[] = { -0.634f, -0.529f, -0.344f, 0.375f, -0.168f, 0.465f };
743    int ldb = 2;
744    float B_expected[] = { -1.76111f, -1.46944f, 0.441428f, 1.40113f, -3.30563f, -3.40859f };
745    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
746    {
747      int i;
748      for (i = 0; i < 6; i++) {
749        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1852)");
750      }
751    };
752   };
753
754
755   {
756    int order = 102;
757    int side = 142;
758    int uplo = 122;
759    int trans = 112;
760    int diag = 132;
761    int M = 2;
762    int N = 3;
763    float alpha = 1.0f;
764    float A[] = { 0.389f, 0.997f, 0.909f, -0.598f, -0.43f, -0.345f, -0.897f, 0.119f, -0.285f };
765    int lda = 3;
766    float B[] = { 0.779f, -0.129f, 0.016f, 0.599f, -0.668f, -0.638f };
767    int ldb = 2;
768    float B_expected[] = { 0.779f, -0.129f, -0.760663f, 0.727613f, -1.63854f, -0.269713f };
769    cblas_strsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
770    {
771      int i;
772      for (i = 0; i < 6; i++) {
773        gsl_test_rel(B[i], B_expected[i], flteps, "strsm(case 1853)");
774      }
775    };
776   };
777
778
779   {
780    int order = 101;
781    int side = 141;
782    int uplo = 121;
783    int trans = 111;
784    int diag = 131;
785    int M = 2;
786    int N = 3;
787    double alpha = -1;
788    double A[] = { -0.876, -0.503, -0.062, -0.987 };
789    int lda = 2;
790    double B[] = { 0.219, -0.986, -0.0, -0.605, 0.289, 0.641 };
791    int ldb = 3;
792    double B_expected[] = { 0.601967125138, -1.29370052694, -0.372910623494, -0.612968591692, 0.292806484296, 0.649442755826 };
793    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
794    {
795      int i;
796      for (i = 0; i < 6; i++) {
797        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1854)");
798      }
799    };
800   };
801
802
803   {
804    int order = 101;
805    int side = 141;
806    int uplo = 121;
807    int trans = 111;
808    int diag = 132;
809    int M = 2;
810    int N = 3;
811    double alpha = -1;
812    double A[] = { -0.266, -0.505, -0.55, 0.524 };
813    int lda = 2;
814    double B[] = { 0.1, -0.105, 0.757, 0.522, -0.269, -0.142 };
815    int ldb = 3;
816    double B_expected[] = { -0.36361, 0.240845, -0.68529, -0.522, 0.269, 0.142 };
817    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
818    {
819      int i;
820      for (i = 0; i < 6; i++) {
821        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1855)");
822      }
823    };
824   };
825
826
827   {
828    int order = 101;
829    int side = 141;
830    int uplo = 122;
831    int trans = 111;
832    int diag = 131;
833    int M = 2;
834    int N = 3;
835    double alpha = -1;
836    double A[] = { 0.101, 0.871, 0.202, 0.169 };
837    int lda = 2;
838    double B[] = { 0.018, 0.292, -0.573, 0.866, 0.749, 0.99 };
839    int ldb = 3;
840    double B_expected[] = { -0.178217821782, -2.89108910891, 5.67326732673, -4.91124260355, -0.976331360947, -12.6390532544 };
841    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
842    {
843      int i;
844      for (i = 0; i < 6; i++) {
845        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1856)");
846      }
847    };
848   };
849
850
851   {
852    int order = 101;
853    int side = 141;
854    int uplo = 122;
855    int trans = 111;
856    int diag = 132;
857    int M = 2;
858    int N = 3;
859    double alpha = -1;
860    double A[] = { -0.387, -0.739, -0.599, 0.114 };
861    int lda = 2;
862    double B[] = { 0.7, 0.473, 0.86, -0.557, 0.283, 0.62 };
863    int ldb = 3;
864    double B_expected[] = { -0.7, -0.473, -0.86, 0.1377, -0.566327, -1.13514 };
865    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
866    {
867      int i;
868      for (i = 0; i < 6; i++) {
869        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1857)");
870      }
871    };
872   };
873
874
875   {
876    int order = 102;
877    int side = 141;
878    int uplo = 121;
879    int trans = 111;
880    int diag = 131;
881    int M = 2;
882    int N = 3;
883    double alpha = -1;
884    double A[] = { -0.683, -0.009, -0.451, -0.185 };
885    int lda = 2;
886    double B[] = { 0.552, 0.083, -0.976, 0.22, -0.895, -0.301 };
887    int ldb = 2;
888    double B_expected[] = { 0.511946499941, 0.448648648649, -2.21423766373, 1.18918918919, -0.236033397966, -1.62702702703 };
889    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
890    {
891      int i;
892      for (i = 0; i < 6; i++) {
893        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1858)");
894      }
895    };
896   };
897
898
899   {
900    int order = 102;
901    int side = 141;
902    int uplo = 121;
903    int trans = 111;
904    int diag = 132;
905    int M = 2;
906    int N = 3;
907    double alpha = -1;
908    double A[] = { -0.141, 0.944, 0.529, 0.636 };
909    int lda = 2;
910    double B[] = { 0.178, -0.22, -0.645, -0.585, -0.342, -0.594 };
911    int ldb = 2;
912    double B_expected[] = { -0.29438, 0.22, 0.335535, 0.585, 0.027774, 0.594 };
913    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
914    {
915      int i;
916      for (i = 0; i < 6; i++) {
917        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1859)");
918      }
919    };
920   };
921
922
923   {
924    int order = 102;
925    int side = 141;
926    int uplo = 122;
927    int trans = 111;
928    int diag = 131;
929    int M = 2;
930    int N = 3;
931    double alpha = -1;
932    double A[] = { 0.541, 0.584, -0.394, 0.371 };
933    int lda = 2;
934    double B[] = { 0.668, 0.848, -0.816, -0.925, -0.145, 0.746 };
935    int ldb = 2;
936    double B_expected[] = { -1.23475046211, -0.342063962613, 1.50831792976, 0.118982018923, 0.268022181146, -2.43268181614 };
937    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
938    {
939      int i;
940      for (i = 0; i < 6; i++) {
941        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1860)");
942      }
943    };
944   };
945
946
947   {
948    int order = 102;
949    int side = 141;
950    int uplo = 122;
951    int trans = 111;
952    int diag = 132;
953    int M = 2;
954    int N = 3;
955    double alpha = -1;
956    double A[] = { 0.836, -0.024, 0.226, 0.416 };
957    int lda = 2;
958    double B[] = { -0.172, -0.601, 0.542, 0.25, 0.746, 0.55 };
959    int ldb = 2;
960    double B_expected[] = { 0.172, 0.605128, -0.542, -0.263008, -0.746, -0.567904 };
961    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
962    {
963      int i;
964      for (i = 0; i < 6; i++) {
965        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1861)");
966      }
967    };
968   };
969
970
971   {
972    int order = 101;
973    int side = 142;
974    int uplo = 121;
975    int trans = 111;
976    int diag = 131;
977    int M = 2;
978    int N = 3;
979    double alpha = -1;
980    double A[] = { 0.544, 0.721, 0.623, 0.392, -0.808, -0.022, -0.665, -0.616, -0.735 };
981    int lda = 3;
982    double B[] = { -0.526, -0.486, -0.716, 0.361, 0.365, -0.492 };
983    int ldb = 3;
984    double B_expected[] = { 0.966911764706, 0.261316067268, -0.162398536147, -0.663602941176, -0.140417971025, -1.22766726121 };
985    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
986    {
987      int i;
988      for (i = 0; i < 6; i++) {
989        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1862)");
990      }
991    };
992   };
993
994
995   {
996    int order = 101;
997    int side = 142;
998    int uplo = 121;
999    int trans = 111;
1000    int diag = 132;
1001    int M = 2;
1002    int N = 3;
1003    double alpha = -1;
1004    double A[] = { 0.907, 0.558, -0.233, 0.073, -0.734, -0.058, -0.115, 0.513, 0.503 };
1005    int lda = 3;
1006    double B[] = { -0.606, -0.124, 0.641, -0.074, -0.053, -0.734 };
1007    int ldb = 3;
1008    double B_expected[] = { 0.606, -0.214148, -0.512222584, 0.074, 0.011708, 0.751921064 };
1009    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1010    {
1011      int i;
1012      for (i = 0; i < 6; i++) {
1013        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1863)");
1014      }
1015    };
1016   };
1017
1018
1019   {
1020    int order = 101;
1021    int side = 142;
1022    int uplo = 122;
1023    int trans = 111;
1024    int diag = 131;
1025    int M = 2;
1026    int N = 3;
1027    double alpha = -1;
1028    double A[] = { 0.9, 0.063, -0.652, -0.841, 0.251, -0.8, 0.365, 0.809, 0.336 };
1029    int lda = 3;
1030    double B[] = { -0.584, -0.058, -0.964, -0.214, -0.632, -0.611 };
1031    int ldb = 3;
1032    double B_expected[] = { -8.93978245747, -9.01617340163, 2.86904761905, -3.62368367799, -3.34313934737, 1.81845238095 };
1033    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1034    {
1035      int i;
1036      for (i = 0; i < 6; i++) {
1037        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1864)");
1038      }
1039    };
1040   };
1041
1042
1043   {
1044    int order = 101;
1045    int side = 142;
1046    int uplo = 122;
1047    int trans = 111;
1048    int diag = 132;
1049    int M = 2;
1050    int N = 3;
1051    double alpha = -1;
1052    double A[] = { 0.934, -0.608, 0.49, 0.351, -0.301, 0.602, 0.873, 0.031, -0.2 };
1053    int lda = 3;
1054    double B[] = { -0.541, -0.729, -0.382, 0.741, 0.546, -0.833 };
1055    int ldb = 3;
1056    double B_expected[] = { -0.044208458, 0.717158, 0.382, -1.267499127, -0.571823, 0.833 };
1057    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1058    {
1059      int i;
1060      for (i = 0; i < 6; i++) {
1061        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1865)");
1062      }
1063    };
1064   };
1065
1066
1067   {
1068    int order = 102;
1069    int side = 142;
1070    int uplo = 121;
1071    int trans = 111;
1072    int diag = 131;
1073    int M = 2;
1074    int N = 3;
1075    double alpha = -1;
1076    double A[] = { -0.339, 0.049, 0.734, -0.182, 0.427, 0.193, -0.959, -0.679, 0.269 };
1077    int lda = 3;
1078    double B[] = { 0.824, 0.907, 0.632, -0.348, -0.646, 0.741 };
1079    int ldb = 2;
1080    double B_expected[] = { 2.43067846608, 2.67551622419, -0.444066789635, 1.95537225481, 9.9460940476, 11.7193971004 };
1081    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1082    {
1083      int i;
1084      for (i = 0; i < 6; i++) {
1085        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1866)");
1086      }
1087    };
1088   };
1089
1090
1091   {
1092    int order = 102;
1093    int side = 142;
1094    int uplo = 121;
1095    int trans = 111;
1096    int diag = 132;
1097    int M = 2;
1098    int N = 3;
1099    double alpha = -1;
1100    double A[] = { 0.766, -0.422, -0.518, 0.517, 0.669, 0.337, -0.579, 0.885, -0.677 };
1101    int lda = 3;
1102    double B[] = { 0.211, -0.911, -0.685, -0.777, -0.919, 0.282 };
1103    int ldb = 2;
1104    double B_expected[] = { -0.211, 0.911, 0.794087, 0.306013, 0.094064005, -0.025352505 };
1105    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1106    {
1107      int i;
1108      for (i = 0; i < 6; i++) {
1109        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1867)");
1110      }
1111    };
1112   };
1113
1114
1115   {
1116    int order = 102;
1117    int side = 142;
1118    int uplo = 122;
1119    int trans = 111;
1120    int diag = 131;
1121    int M = 2;
1122    int N = 3;
1123    double alpha = -1;
1124    double A[] = { -0.686, -0.256, 0.028, 0.371, 0.469, 0.115, 0.284, 0.139, 0.677 };
1125    int lda = 3;
1126    double B[] = { -0.877, -0.818, 0.191, 0.468, 0.889, -0.002 };
1127    int ldb = 2;
1128    double B_expected[] = { -1.30020532939, -0.819646768394, -0.0852626506631, -0.998592183627, -1.31314623338, 0.00295420974889 };
1129    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1130    {
1131      int i;
1132      for (i = 0; i < 6; i++) {
1133        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1868)");
1134      }
1135    };
1136   };
1137
1138
1139   {
1140    int order = 102;
1141    int side = 142;
1142    int uplo = 122;
1143    int trans = 111;
1144    int diag = 132;
1145    int M = 2;
1146    int N = 3;
1147    double alpha = -1;
1148    double A[] = { -0.819, -0.523, 0.042, 0.545, -0.292, 0.283, 0.224, 0.247, -0.325 };
1149    int lda = 3;
1150    double B[] = { 0.153, -0.272, -0.226, 0.987, -0.216, -0.218 };
1151    int ldb = 2;
1152    double B_expected[] = { -0.075843944, -0.285622962, 0.164872, -1.048694, 0.216, 0.218 };
1153    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1154    {
1155      int i;
1156      for (i = 0; i < 6; i++) {
1157        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1869)");
1158      }
1159    };
1160   };
1161
1162
1163   {
1164    int order = 101;
1165    int side = 141;
1166    int uplo = 121;
1167    int trans = 112;
1168    int diag = 131;
1169    int M = 2;
1170    int N = 3;
1171    double alpha = -1;
1172    double A[] = { 0.164, 0.486, 0.891, -0.508 };
1173    int lda = 2;
1174    double B[] = { 0.368, 0.761, -0.349, 0.324, 0.241, 0.561 };
1175    int ldb = 3;
1176    double B_expected[] = { -2.24390243902, -4.64024390244, 2.12804878049, -1.50893028615, -3.96487900903, 3.14021989629 };
1177    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1178    {
1179      int i;
1180      for (i = 0; i < 6; i++) {
1181        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1870)");
1182      }
1183    };
1184   };
1185
1186
1187   {
1188    int order = 101;
1189    int side = 141;
1190    int uplo = 121;
1191    int trans = 112;
1192    int diag = 132;
1193    int M = 2;
1194    int N = 3;
1195    double alpha = -1;
1196    double A[] = { -0.019, -0.382, -0.579, 0.76 };
1197    int lda = 2;
1198    double B[] = { -0.596, -0.074, 0.576, 0.861, -0.44, 0.842 };
1199    int ldb = 3;
1200    double B_expected[] = { 0.596, 0.074, -0.576, -0.633328, 0.468268, -1.062032 };
1201    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1202    {
1203      int i;
1204      for (i = 0; i < 6; i++) {
1205        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1871)");
1206      }
1207    };
1208   };
1209
1210
1211   {
1212    int order = 101;
1213    int side = 141;
1214    int uplo = 122;
1215    int trans = 112;
1216    int diag = 131;
1217    int M = 2;
1218    int N = 3;
1219    double alpha = -1;
1220    double A[] = { 0.449, -0.367, -0.268, 0.1 };
1221    int lda = 2;
1222    double B[] = { 0.58, -0.203, 0.053, 0.792, 0.355, -0.685 };
1223    int ldb = 3;
1224    double B_expected[] = { -6.01906458797, -1.66681514477, 3.9706013363, -7.92, -3.55, 6.85 };
1225    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1226    {
1227      int i;
1228      for (i = 0; i < 6; i++) {
1229        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1872)");
1230      }
1231    };
1232   };
1233
1234
1235   {
1236    int order = 101;
1237    int side = 141;
1238    int uplo = 122;
1239    int trans = 112;
1240    int diag = 132;
1241    int M = 2;
1242    int N = 3;
1243    double alpha = -1;
1244    double A[] = { 0.159, 0.333, 0.515, 0.715 };
1245    int lda = 2;
1246    double B[] = { -0.631, 0.472, 0.796, 0.278, 0.802, 0.298 };
1247    int ldb = 3;
1248    double B_expected[] = { 0.77417, -0.05897, -0.64253, -0.278, -0.802, -0.298 };
1249    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1250    {
1251      int i;
1252      for (i = 0; i < 6; i++) {
1253        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1873)");
1254      }
1255    };
1256   };
1257
1258
1259   {
1260    int order = 102;
1261    int side = 141;
1262    int uplo = 121;
1263    int trans = 112;
1264    int diag = 131;
1265    int M = 2;
1266    int N = 3;
1267    double alpha = -1;
1268    double A[] = { 0.056, -0.493, 0.619, -0.028 };
1269    int lda = 2;
1270    double B[] = { -0.32, -0.217, 0.301, 0.729, -0.847, -0.577 };
1271    int ldb = 2;
1272    double B_expected[] = { 5.71428571429, 118.576530612, -5.375, -92.7901785714, 15.125, 313.763392857 };
1273    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1274    {
1275      int i;
1276      for (i = 0; i < 6; i++) {
1277        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1874)");
1278      }
1279    };
1280   };
1281
1282
1283   {
1284    int order = 102;
1285    int side = 141;
1286    int uplo = 121;
1287    int trans = 112;
1288    int diag = 132;
1289    int M = 2;
1290    int N = 3;
1291    double alpha = -1;
1292    double A[] = { -0.595, 0.64, 0.109, 0.969 };
1293    int lda = 2;
1294    double B[] = { 0.186, -0.435, -0.747, 0.212, 0.257, 0.804 };
1295    int ldb = 2;
1296    double B_expected[] = { -0.186, 0.455274, 0.747, -0.293423, -0.257, -0.775987 };
1297    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1298    {
1299      int i;
1300      for (i = 0; i < 6; i++) {
1301        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1875)");
1302      }
1303    };
1304   };
1305
1306
1307   {
1308    int order = 102;
1309    int side = 141;
1310    int uplo = 122;
1311    int trans = 112;
1312    int diag = 131;
1313    int M = 2;
1314    int N = 3;
1315    double alpha = -1;
1316    double A[] = { 0.484, 0.769, 0.91, 0.817 };
1317    int lda = 2;
1318    double B[] = { -0.668, 0.544, 0.753, 0.796, -0.74, -0.091 };
1319    int ldb = 2;
1320    double B_expected[] = { 2.4380974539, -0.665850673195, -0.0077814418807, -0.97429620563, 1.35195534965, 0.111383108935 };
1321    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1322    {
1323      int i;
1324      for (i = 0; i < 6; i++) {
1325        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1876)");
1326      }
1327    };
1328   };
1329
1330
1331   {
1332    int order = 102;
1333    int side = 141;
1334    int uplo = 122;
1335    int trans = 112;
1336    int diag = 132;
1337    int M = 2;
1338    int N = 3;
1339    double alpha = -1;
1340    double A[] = { -0.725, 0.73, -0.095, 0.123 };
1341    int lda = 2;
1342    double B[] = { -0.26, 0.579, 0.393, -0.18, 0.358, 0.839 };
1343    int ldb = 2;
1344    double B_expected[] = { 0.68267, -0.579, -0.5244, 0.18, 0.25447, -0.839 };
1345    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1346    {
1347      int i;
1348      for (i = 0; i < 6; i++) {
1349        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1877)");
1350      }
1351    };
1352   };
1353
1354
1355   {
1356    int order = 101;
1357    int side = 142;
1358    int uplo = 121;
1359    int trans = 112;
1360    int diag = 131;
1361    int M = 2;
1362    int N = 3;
1363    double alpha = -1;
1364    double A[] = { -0.009, 0.237, -0.563, 0.993, 0.508, 0.771, 0.745, 0.233, 0.255 };
1365    int lda = 3;
1366    double B[] = { -0.328, -0.482, 0.083, -0.125, -0.712, -0.757 };
1367    int ldb = 3;
1368    double B_expected[] = { 21.9110553583, 1.44282075035, -0.325490196078, -281.330646047, -3.10396016674, 2.96862745098 };
1369    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1370    {
1371      int i;
1372      for (i = 0; i < 6; i++) {
1373        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1878)");
1374      }
1375    };
1376   };
1377
1378
1379   {
1380    int order = 101;
1381    int side = 142;
1382    int uplo = 121;
1383    int trans = 112;
1384    int diag = 132;
1385    int M = 2;
1386    int N = 3;
1387    double alpha = -1;
1388    double A[] = { -0.484, -0.131, 0.563, -0.095, 0.012, -0.988, -0.722, 0.738, 0.05 };
1389    int lda = 3;
1390    double B[] = { -0.069, -0.137, -0.45, -0.24, 0.221, -0.509 };
1391    int ldb = 3;
1392    double B_expected[] = { -0.1081604, 0.5816, 0.45, -0.009639148, 0.281892, 0.509 };
1393    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1394    {
1395      int i;
1396      for (i = 0; i < 6; i++) {
1397        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1879)");
1398      }
1399    };
1400   };
1401
1402
1403   {
1404    int order = 101;
1405    int side = 142;
1406    int uplo = 122;
1407    int trans = 112;
1408    int diag = 131;
1409    int M = 2;
1410    int N = 3;
1411    double alpha = -1;
1412    double A[] = { 0.521, 0.487, -0.961, 0.903, -0.045, 0.059, -0.61, -0.328, 0.883 };
1413    int lda = 3;
1414    double B[] = { -0.772, 0.079, -0.227, 0.998, 0.302, -0.099 };
1415    int ldb = 3;
1416    double B_expected[] = { 1.48176583493, 31.4896566432, 12.9778986844, -1.91554702495, -31.7275325229, -12.9967319963 };
1417    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1418    {
1419      int i;
1420      for (i = 0; i < 6; i++) {
1421        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1880)");
1422      }
1423    };
1424   };
1425
1426
1427   {
1428    int order = 101;
1429    int side = 142;
1430    int uplo = 122;
1431    int trans = 112;
1432    int diag = 132;
1433    int M = 2;
1434    int N = 3;
1435    double alpha = -1;
1436    double A[] = { 0.642, 0.511, 0.762, 0.804, -0.28, -0.318, 0.382, -0.165, -0.007 };
1437    int lda = 3;
1438    double B[] = { 0.987, 0.436, -0.783, 0.175, -0.973, -0.319 };
1439    int ldb = 3;
1440    double B_expected[] = { -0.987, 0.357548, 1.21902942, -0.175, 1.1137, 0.5696105 };
1441    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1442    {
1443      int i;
1444      for (i = 0; i < 6; i++) {
1445        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1881)");
1446      }
1447    };
1448   };
1449
1450
1451   {
1452    int order = 102;
1453    int side = 142;
1454    int uplo = 121;
1455    int trans = 112;
1456    int diag = 131;
1457    int M = 2;
1458    int N = 3;
1459    double alpha = -1;
1460    double A[] = { -0.995, 0.625, 0.16, -0.127, -0.722, -0.355, -0.14, -0.146, -0.756 };
1461    int lda = 3;
1462    double B[] = { 0.676, 0.038, 0.543, 0.296, -0.44, 0.751 };
1463    int ldb = 2;
1464    double B_expected[] = { 0.650272121575, -0.128270318012, 0.869769452872, 0.209093640534, -0.582010582011, 0.993386243386 };
1465    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1466    {
1467      int i;
1468      for (i = 0; i < 6; i++) {
1469        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1882)");
1470      }
1471    };
1472   };
1473
1474
1475   {
1476    int order = 102;
1477    int side = 142;
1478    int uplo = 121;
1479    int trans = 112;
1480    int diag = 132;
1481    int M = 2;
1482    int N = 3;
1483    double alpha = -1;
1484    double A[] = { -0.619, 0.548, 0.064, -0.483, -0.508, -0.819, 0.237, 0.852, -0.512 };
1485    int lda = 3;
1486    double B[] = { -0.169, 0.429, -0.789, 0.79, 0.479, 0.817 };
1487    int ldb = 2;
1488    double B_expected[] = { 0.860726164, -0.280732428, 1.197108, -0.093916, -0.479, -0.817 };
1489    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1490    {
1491      int i;
1492      for (i = 0; i < 6; i++) {
1493        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1883)");
1494      }
1495    };
1496   };
1497
1498
1499   {
1500    int order = 102;
1501    int side = 142;
1502    int uplo = 122;
1503    int trans = 112;
1504    int diag = 131;
1505    int M = 2;
1506    int N = 3;
1507    double alpha = -1;
1508    double A[] = { 0.794, -0.098, 0.442, -0.991, 0.049, 0.079, -0.8, -0.762, 0.395 };
1509    int lda = 3;
1510    double B[] = { 0.496, -0.734, -0.679, -0.697, 0.426, 0.094 };
1511    int ldb = 2;
1512    double B_expected[] = { -0.624685138539, 0.92443324937, 12.6077725801, 16.0733562947, -2.90102076605, -4.48707504683 };
1513    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1514    {
1515      int i;
1516      for (i = 0; i < 6; i++) {
1517        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1884)");
1518      }
1519    };
1520   };
1521
1522
1523   {
1524    int order = 102;
1525    int side = 142;
1526    int uplo = 122;
1527    int trans = 112;
1528    int diag = 132;
1529    int M = 2;
1530    int N = 3;
1531    double alpha = -1;
1532    double A[] = { 0.848, -0.765, 0.528, -0.693, 0.252, -0.135, -0.507, 0.954, -0.056 };
1533    int lda = 3;
1534    double B[] = { 0.791, -0.787, 0.636, 0.271, -0.905, -0.974 };
1535    int ldb = 2;
1536    double B_expected[] = { -0.791, 0.787, -1.241115, 0.331055, 1.155097475, 0.603156425 };
1537    cblas_dtrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1538    {
1539      int i;
1540      for (i = 0; i < 6; i++) {
1541        gsl_test_rel(B[i], B_expected[i], dbleps, "dtrsm(case 1885)");
1542      }
1543    };
1544   };
1545
1546
1547   {
1548    int order = 101;
1549    int side = 141;
1550    int uplo = 121;
1551    int trans = 111;
1552    int diag = 131;
1553    int M = 2;
1554    int N = 3;
1555    float alpha[2] = {0.0f, 0.0f};
1556    float A[] = { 0.491f, -0.317f, -0.14f, -0.739f, -0.969f, -0.518f, 0.702f, -0.287f };
1557    int lda = 2;
1558    float B[] = { -0.962f, -0.38f, 0.656f, 0.587f, -0.195f, -0.862f, -0.679f, 0.598f, 0.919f, 0.714f, -0.513f, 0.726f };
1559    int ldb = 3;
1560    float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
1561    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1562    {
1563      int i;
1564      for (i = 0; i < 6; i++) {
1565        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1886) real");
1566        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1886) imag");
1567      };
1568    };
1569   };
1570
1571
1572   {
1573    int order = 101;
1574    int side = 141;
1575    int uplo = 121;
1576    int trans = 111;
1577    int diag = 132;
1578    int M = 2;
1579    int N = 3;
1580    float alpha[2] = {0.0f, 0.0f};
1581    float A[] = { -0.6f, 0.338f, -0.048f, -0.926f, 0.236f, 0.362f, 0.605f, 0.562f };
1582    int lda = 2;
1583    float B[] = { -0.009f, 0.371f, -0.989f, 0.728f, -0.062f, 0.113f, 0.714f, 0.604f, -0.293f, 0.859f, -0.875f, 0.216f };
1584    int ldb = 3;
1585    float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
1586    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1587    {
1588      int i;
1589      for (i = 0; i < 6; i++) {
1590        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1887) real");
1591        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1887) imag");
1592      };
1593    };
1594   };
1595
1596
1597   {
1598    int order = 101;
1599    int side = 141;
1600    int uplo = 122;
1601    int trans = 111;
1602    int diag = 131;
1603    int M = 2;
1604    int N = 3;
1605    float alpha[2] = {0.0f, 0.0f};
1606    float A[] = { -0.889f, -0.479f, -0.526f, 0.077f, -0.704f, 0.242f, 0.458f, -0.553f };
1607    int lda = 2;
1608    float B[] = { -0.554f, 0.966f, 0.076f, 0.42f, 0.85f, 0.369f, 0.124f, -0.476f, -0.007f, 0.428f, 0.452f, -0.214f };
1609    int ldb = 3;
1610    float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
1611    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1612    {
1613      int i;
1614      for (i = 0; i < 6; i++) {
1615        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1888) real");
1616        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1888) imag");
1617      };
1618    };
1619   };
1620
1621
1622   {
1623    int order = 101;
1624    int side = 141;
1625    int uplo = 122;
1626    int trans = 111;
1627    int diag = 132;
1628    int M = 2;
1629    int N = 3;
1630    float alpha[2] = {0.0f, 0.0f};
1631    float A[] = { 0.947f, 0.444f, 0.079f, -0.597f, 0.978f, -0.64f, 0.82f, 0.808f };
1632    int lda = 2;
1633    float B[] = { -0.899f, -0.964f, -0.714f, 0.422f, -0.084f, -0.78f, -0.609f, -0.595f, 0.748f, -0.926f, 0.242f, -0.474f };
1634    int ldb = 3;
1635    float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
1636    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1637    {
1638      int i;
1639      for (i = 0; i < 6; i++) {
1640        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1889) real");
1641        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1889) imag");
1642      };
1643    };
1644   };
1645
1646
1647   {
1648    int order = 102;
1649    int side = 141;
1650    int uplo = 121;
1651    int trans = 111;
1652    int diag = 131;
1653    int M = 2;
1654    int N = 3;
1655    float alpha[2] = {0.0f, 0.0f};
1656    float A[] = { -0.547f, -0.763f, -0.805f, 0.498f, 0.786f, -0.082f, 0.922f, 0.538f };
1657    int lda = 2;
1658    float B[] = { -0.074f, -0.617f, 0.359f, -0.383f, -0.172f, 0.911f, -0.934f, 0.066f, -0.67f, 0.895f, 0.92f, 0.255f };
1659    int ldb = 2;
1660    float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
1661    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1662    {
1663      int i;
1664      for (i = 0; i < 6; i++) {
1665        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1890) real");
1666        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1890) imag");
1667      };
1668    };
1669   };
1670
1671
1672   {
1673    int order = 102;
1674    int side = 141;
1675    int uplo = 121;
1676    int trans = 111;
1677    int diag = 132;
1678    int M = 2;
1679    int N = 3;
1680    float alpha[2] = {0.0f, 0.0f};
1681    float A[] = { -0.096f, -0.362f, -0.311f, -0.347f, 0.161f, -0.517f, -0.393f, 0.572f };
1682    int lda = 2;
1683    float B[] = { 0.742f, -0.419f, -0.391f, 0.846f, -0.255f, -0.364f, 0.006f, -0.496f, 0.118f, -0.593f, 0.773f, 0.053f };
1684    int ldb = 2;
1685    float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
1686    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1687    {
1688      int i;
1689      for (i = 0; i < 6; i++) {
1690        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1891) real");
1691        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1891) imag");
1692      };
1693    };
1694   };
1695
1696
1697   {
1698    int order = 102;
1699    int side = 141;
1700    int uplo = 122;
1701    int trans = 111;
1702    int diag = 131;
1703    int M = 2;
1704    int N = 3;
1705    float alpha[2] = {0.0f, 0.0f};
1706    float A[] = { 0.669f, 0.845f, 0.657f, -0.43f, 0.19f, 0.206f, -0.305f, 0.761f };
1707    int lda = 2;
1708    float B[] = { -0.457f, 0.857f, -0.203f, 0.942f, 0.462f, 0.52f, 0.521f, -0.609f, 0.069f, 0.005f, -0.419f, 0.806f };
1709    int ldb = 2;
1710    float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
1711    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1712    {
1713      int i;
1714      for (i = 0; i < 6; i++) {
1715        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1892) real");
1716        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1892) imag");
1717      };
1718    };
1719   };
1720
1721
1722   {
1723    int order = 102;
1724    int side = 141;
1725    int uplo = 122;
1726    int trans = 111;
1727    int diag = 132;
1728    int M = 2;
1729    int N = 3;
1730    float alpha[2] = {0.0f, 0.0f};
1731    float A[] = { -0.269f, -0.87f, -0.592f, 0.813f, 0.977f, -0.848f, 0.282f, -0.311f };
1732    int lda = 2;
1733    float B[] = { -0.654f, 0.857f, -0.834f, 0.796f, 0.414f, -0.499f, 0.961f, 0.643f, 0.117f, 0.758f, -0.189f, -0.768f };
1734    int ldb = 2;
1735    float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
1736    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1737    {
1738      int i;
1739      for (i = 0; i < 6; i++) {
1740        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1893) real");
1741        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1893) imag");
1742      };
1743    };
1744   };
1745
1746
1747   {
1748    int order = 101;
1749    int side = 142;
1750    int uplo = 121;
1751    int trans = 111;
1752    int diag = 131;
1753    int M = 2;
1754    int N = 3;
1755    float alpha[2] = {0.0f, 0.0f};
1756    float A[] = { 0.361f, -0.818f, 0.039f, 0.275f, 0.541f, -0.615f, 0.025f, -0.691f, -0.697f, 0.976f, 0.746f, 0.607f, 0.651f, -0.918f, -0.702f, 0.37f, -0.668f, -0.114f };
1757    int lda = 3;
1758    float B[] = { 0.218f, 0.75f, 0.575f, -0.702f, 0.7f, -0.41f, 0.374f, 0.489f, -0.876f, 0.842f, -0.848f, 0.901f };
1759    int ldb = 3;
1760    float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
1761    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1762    {
1763      int i;
1764      for (i = 0; i < 6; i++) {
1765        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1894) real");
1766        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1894) imag");
1767      };
1768    };
1769   };
1770
1771
1772   {
1773    int order = 101;
1774    int side = 142;
1775    int uplo = 121;
1776    int trans = 111;
1777    int diag = 132;
1778    int M = 2;
1779    int N = 3;
1780    float alpha[2] = {0.0f, 0.0f};
1781    float A[] = { 0.483f, 0.088f, -0.192f, 0.17f, 0.683f, 0.293f, -0.773f, 0.365f, -0.28f, 0.257f, 0.818f, 0.45f, -0.551f, -0.051f, 0.899f, -0.127f, -0.915f, 0.152f };
1782    int lda = 3;
1783    float B[] = { 0.732f, -0.394f, 0.073f, -0.082f, 0.918f, -0.53f, 0.67f, 0.149f, -0.344f, -0.65f, -0.62f, -0.632f };
1784    int ldb = 3;
1785    float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
1786    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1787    {
1788      int i;
1789      for (i = 0; i < 6; i++) {
1790        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1895) real");
1791        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1895) imag");
1792      };
1793    };
1794   };
1795
1796
1797   {
1798    int order = 101;
1799    int side = 142;
1800    int uplo = 122;
1801    int trans = 111;
1802    int diag = 131;
1803    int M = 2;
1804    int N = 3;
1805    float alpha[2] = {0.0f, 0.0f};
1806    float A[] = { 0.508f, -0.251f, 0.655f, -0.315f, -0.26f, 0.229f, 0.05f, -0.276f, -0.993f, 0.647f, -0.547f, -0.34f, 0.781f, -0.819f, 0.865f, 0.361f, -0.028f, 0.178f };
1807    int lda = 3;
1808    float B[] = { 0.972f, 0.048f, 0.71f, -0.168f, -0.274f, 0.92f, 0.789f, 0.485f, 0.578f, 0.73f, -0.931f, 0.288f };
1809    int ldb = 3;
1810    float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
1811    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1812    {
1813      int i;
1814      for (i = 0; i < 6; i++) {
1815        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1896) real");
1816        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1896) imag");
1817      };
1818    };
1819   };
1820
1821
1822   {
1823    int order = 101;
1824    int side = 142;
1825    int uplo = 122;
1826    int trans = 111;
1827    int diag = 132;
1828    int M = 2;
1829    int N = 3;
1830    float alpha[2] = {0.0f, 0.0f};
1831    float A[] = { -0.874f, 0.651f, 0.074f, -0.862f, -0.42f, 0.066f, -0.845f, 0.482f, -0.44f, 0.724f, 0.137f, -0.123f, -0.63f, -0.011f, -0.187f, -0.205f, 0.976f, -0.81f };
1832    int lda = 3;
1833    float B[] = { 0.539f, 0.131f, 0.986f, 0.615f, 0.983f, -0.22f, 0.144f, 0.677f, 0.561f, -0.494f, -0.433f, -0.089f };
1834    int ldb = 3;
1835    float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
1836    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1837    {
1838      int i;
1839      for (i = 0; i < 6; i++) {
1840        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1897) real");
1841        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1897) imag");
1842      };
1843    };
1844   };
1845
1846
1847   {
1848    int order = 102;
1849    int side = 142;
1850    int uplo = 121;
1851    int trans = 111;
1852    int diag = 131;
1853    int M = 2;
1854    int N = 3;
1855    float alpha[2] = {0.0f, 0.0f};
1856    float A[] = { 0.284f, 0.871f, -0.835f, 0.926f, 0.459f, -0.889f, 0.387f, 0.319f, -0.366f, 0.884f, 0.236f, 0.921f, 0.619f, -0.41f, -0.709f, -0.372f, 0.06f, 0.551f };
1857    int lda = 3;
1858    float B[] = { 0.354f, 0.245f, 0.552f, 0.77f, -0.524f, -0.973f, -0.814f, -0.835f, -0.976f, 0.396f, -0.726f, -0.204f };
1859    int ldb = 2;
1860    float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
1861    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1862    {
1863      int i;
1864      for (i = 0; i < 6; i++) {
1865        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1898) real");
1866        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1898) imag");
1867      };
1868    };
1869   };
1870
1871
1872   {
1873    int order = 102;
1874    int side = 142;
1875    int uplo = 121;
1876    int trans = 111;
1877    int diag = 132;
1878    int M = 2;
1879    int N = 3;
1880    float alpha[2] = {0.0f, 0.0f};
1881    float A[] = { -0.98f, -0.854f, -0.832f, 0.514f, -0.028f, -0.857f, 0.066f, 0.415f, -0.316f, 0.538f, -0.465f, -0.691f, 0.286f, 0.954f, -0.486f, -0.574f, -0.429f, 0.992f };
1882    int lda = 3;
1883    float B[] = { 0.295f, 0.578f, -0.167f, 0.106f, -0.782f, 0.668f, 0.278f, 0.855f, 0.038f, 0.976f, 0.167f, -0.777f };
1884    int ldb = 2;
1885    float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
1886    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1887    {
1888      int i;
1889      for (i = 0; i < 6; i++) {
1890        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1899) real");
1891        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1899) imag");
1892      };
1893    };
1894   };
1895
1896
1897   {
1898    int order = 102;
1899    int side = 142;
1900    int uplo = 122;
1901    int trans = 111;
1902    int diag = 131;
1903    int M = 2;
1904    int N = 3;
1905    float alpha[2] = {0.0f, 0.0f};
1906    float A[] = { 0.534f, 0.782f, 0.282f, 0.581f, 0.804f, -0.68f, 0.234f, -0.758f, 0.033f, -0.503f, 0.981f, -0.839f, 0.919f, 0.175f, 0.152f, -0.683f, -0.346f, -0.279f };
1907    int lda = 3;
1908    float B[] = { 0.135f, -0.969f, -0.314f, -0.026f, -0.284f, 0.529f, 0.781f, -0.413f, -0.018f, -0.859f, -0.817f, -0.849f };
1909    int ldb = 2;
1910    float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
1911    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1912    {
1913      int i;
1914      for (i = 0; i < 6; i++) {
1915        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1900) real");
1916        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1900) imag");
1917      };
1918    };
1919   };
1920
1921
1922   {
1923    int order = 102;
1924    int side = 142;
1925    int uplo = 122;
1926    int trans = 111;
1927    int diag = 132;
1928    int M = 2;
1929    int N = 3;
1930    float alpha[2] = {0.0f, 0.0f};
1931    float A[] = { -0.426f, 0.148f, 0.889f, 0.217f, 0.779f, -0.963f, -0.516f, -0.366f, 0.721f, 0.4f, -0.976f, -0.365f, 0.532f, 0.188f, 0.176f, 0.082f, -0.691f, -0.833f };
1932    int lda = 3;
1933    float B[] = { -0.71f, 0.72f, 0.533f, 0.395f, -0.749f, 0.151f, 0.871f, 0.445f, 0.195f, -0.38f, -0.318f, -0.833f };
1934    int ldb = 2;
1935    float B_expected[] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
1936    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1937    {
1938      int i;
1939      for (i = 0; i < 6; i++) {
1940        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1901) real");
1941        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1901) imag");
1942      };
1943    };
1944   };
1945
1946
1947   {
1948    int order = 101;
1949    int side = 141;
1950    int uplo = 121;
1951    int trans = 112;
1952    int diag = 131;
1953    int M = 2;
1954    int N = 3;
1955    float alpha[2] = {0.0f, 1.0f};
1956    float A[] = { -0.068f, 0.806f, -0.621f, 0.037f, 0.096f, -0.312f, 0.416f, 0.428f };
1957    int lda = 2;
1958    float B[] = { 0.481f, 0.192f, -0.954f, -0.958f, -0.015f, -0.203f, -0.352f, 0.08f, -0.662f, 0.681f, -0.571f, 0.146f };
1959    int ldb = 3;
1960    float B_expected[] = { 0.612512f, 0.186537f, -1.27483f, -1.08103f, -0.0395775f, -0.248522f, 0.0478574f, -0.671409f, -3.31165f, 0.315466f, -1.07961f, -0.629312f };
1961    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1962    {
1963      int i;
1964      for (i = 0; i < 6; i++) {
1965        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1902) real");
1966        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1902) imag");
1967      };
1968    };
1969   };
1970
1971
1972   {
1973    int order = 101;
1974    int side = 141;
1975    int uplo = 121;
1976    int trans = 112;
1977    int diag = 132;
1978    int M = 2;
1979    int N = 3;
1980    float alpha[2] = {0.0f, 1.0f};
1981    float A[] = { 0.863f, 0.689f, 0.171f, -0.164f, 0.065f, -0.727f, -0.245f, -0.556f };
1982    int lda = 2;
1983    float B[] = { 0.711f, -0.616f, -0.684f, 0.823f, 0.491f, 0.06f, -0.776f, 0.768f, 0.391f, 0.897f, 0.779f, -0.875f };
1984    int ldb = 3;
1985    float B_expected[] = { 0.616f, 0.711f, -0.823f, -0.684f, -0.06f, 0.491f, -0.98994f, -0.796557f, -0.644091f, 0.372992f, 0.804736f, 0.685199f };
1986    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
1987    {
1988      int i;
1989      for (i = 0; i < 6; i++) {
1990        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1903) real");
1991        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1903) imag");
1992      };
1993    };
1994   };
1995
1996
1997   {
1998    int order = 101;
1999    int side = 141;
2000    int uplo = 122;
2001    int trans = 112;
2002    int diag = 131;
2003    int M = 2;
2004    int N = 3;
2005    float alpha[2] = {0.0f, 1.0f};
2006    float A[] = { 0.718f, -0.323f, 0.264f, 0.081f, -0.73f, 0.809f, -0.349f, -0.543f };
2007    int lda = 2;
2008    float B[] = { 0.862f, 0.676f, -0.085f, 0.204f, 0.063f, -0.124f, 0.162f, 0.754f, -0.978f, -0.097f, 0.986f, 0.943f };
2009    int ldb = 3;
2010    float B_expected[] = { -1.32203f, -1.00495f, 1.84655f, 0.329156f, -1.66053f, -2.19061f, 0.420449f, -1.11835f, 1.19333f, 0.945621f, -0.495118f, -2.05487f };
2011    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2012    {
2013      int i;
2014      for (i = 0; i < 6; i++) {
2015        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1904) real");
2016        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1904) imag");
2017      };
2018    };
2019   };
2020
2021
2022   {
2023    int order = 101;
2024    int side = 141;
2025    int uplo = 122;
2026    int trans = 112;
2027    int diag = 132;
2028    int M = 2;
2029    int N = 3;
2030    float alpha[2] = {0.0f, 1.0f};
2031    float A[] = { -0.515f, -0.166f, -0.364f, 0.24f, 0.056f, 0.023f, 0.05f, 0.853f };
2032    int lda = 2;
2033    float B[] = { 0.779f, 0.443f, -0.852f, 0.037f, -0.649f, 0.554f, 0.469f, 0.632f, 0.224f, -0.148f, 0.457f, -0.78f };
2034    int ldb = 3;
2035    float B_expected[] = { -0.396821f, 0.767272f, -0.040136f, -0.867948f, -0.587169f, -0.692532f, -0.632f, 0.469f, 0.148f, 0.224f, 0.78f, 0.457f };
2036    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2037    {
2038      int i;
2039      for (i = 0; i < 6; i++) {
2040        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1905) real");
2041        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1905) imag");
2042      };
2043    };
2044   };
2045
2046
2047   {
2048    int order = 102;
2049    int side = 141;
2050    int uplo = 121;
2051    int trans = 112;
2052    int diag = 131;
2053    int M = 2;
2054    int N = 3;
2055    float alpha[2] = {0.0f, 1.0f};
2056    float A[] = { 0.576f, 0.785f, 0.297f, -0.561f, -0.164f, 0.463f, -0.454f, 0.803f };
2057    int lda = 2;
2058    float B[] = { -0.78f, -0.792f, 0.223f, 0.206f, -0.097f, 0.504f, 0.721f, 0.205f, 0.508f, -0.8f, -0.469f, 0.283f };
2059    int ldb = 2;
2060    float B_expected[] = { -0.164671f, -1.12975f, 0.510941f, 0.652691f, -0.386549f, 0.358405f, 0.959415f, -0.414847f, 0.906729f, -0.353789f, -0.734462f, 0.786484f };
2061    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2062    {
2063      int i;
2064      for (i = 0; i < 6; i++) {
2065        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1906) real");
2066        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1906) imag");
2067      };
2068    };
2069   };
2070
2071
2072   {
2073    int order = 102;
2074    int side = 141;
2075    int uplo = 121;
2076    int trans = 112;
2077    int diag = 132;
2078    int M = 2;
2079    int N = 3;
2080    float alpha[2] = {0.0f, 1.0f};
2081    float A[] = { -0.04f, 0.917f, 0.327f, -0.115f, -0.656f, -0.811f, -0.646f, 0.78f };
2082    int lda = 2;
2083    float B[] = { 0.131f, 0.677f, -0.431f, -0.652f, -0.415f, 0.094f, -0.253f, 0.496f, 0.797f, 0.166f, 0.737f, -0.685f };
2084    int ldb = 2;
2085    float B_expected[] = { -0.677f, 0.131f, 0.101647f, -0.894111f, -0.094f, -0.415f, -0.221099f, -0.601474f, -0.166f, 0.797f, -0.070263f, 1.12521f };
2086    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2087    {
2088      int i;
2089      for (i = 0; i < 6; i++) {
2090        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1907) real");
2091        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1907) imag");
2092      };
2093    };
2094   };
2095
2096
2097   {
2098    int order = 102;
2099    int side = 141;
2100    int uplo = 122;
2101    int trans = 112;
2102    int diag = 131;
2103    int M = 2;
2104    int N = 3;
2105    float alpha[2] = {0.0f, 1.0f};
2106    float A[] = { 0.769f, -0.384f, -0.522f, -0.086f, -0.129f, -0.574f, 0.56f, -0.809f };
2107    int lda = 2;
2108    float B[] = { 0.367f, 0.169f, -0.321f, -0.982f, -0.563f, -0.051f, -0.742f, 0.595f, 0.067f, -0.183f, -0.524f, 0.77f };
2109    int ldb = 2;
2110    float B_expected[] = { -0.178752f, 0.912513f, 0.836303f, 0.634945f, 0.817549f, -0.921899f, 0.275884f, -0.926446f, 0.49345f, -0.309856f, -0.00752416f, -0.946584f };
2111    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2112    {
2113      int i;
2114      for (i = 0; i < 6; i++) {
2115        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1908) real");
2116        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1908) imag");
2117      };
2118    };
2119   };
2120
2121
2122   {
2123    int order = 102;
2124    int side = 141;
2125    int uplo = 122;
2126    int trans = 112;
2127    int diag = 132;
2128    int M = 2;
2129    int N = 3;
2130    float alpha[2] = {0.0f, 1.0f};
2131    float A[] = { 0.758f, 0.228f, 0.263f, 0.731f, 0.171f, 0.051f, 0.968f, 0.731f };
2132    int lda = 2;
2133    float B[] = { 0.783f, 0.422f, -0.649f, -0.428f, 0.216f, 0.659f, -0.608f, -0.239f, -0.588f, 0.01f, -0.009f, -0.374f };
2134    int ldb = 2;
2135    float B_expected[] = { -1.00898f, 0.640819f, 0.428f, -0.649f, -1.1663f, 0.201195f, 0.239f, -0.608f, -0.114941f, -0.859027f, 0.374f, -0.009f };
2136    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2137    {
2138      int i;
2139      for (i = 0; i < 6; i++) {
2140        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1909) real");
2141        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1909) imag");
2142      };
2143    };
2144   };
2145
2146
2147   {
2148    int order = 101;
2149    int side = 142;
2150    int uplo = 121;
2151    int trans = 112;
2152    int diag = 131;
2153    int M = 2;
2154    int N = 3;
2155    float alpha[2] = {0.0f, 1.0f};
2156    float A[] = { 0.601f, -0.017f, 0.518f, -0.975f, -0.394f, 0.396f, 0.395f, -0.374f, -0.321f, 0.221f, 0.809f, 0.74f, -0.009f, 0.88f, 0.057f, 0.65f, 0.761f, -0.839f };
2157    int lda = 3;
2158    float B[] = { -0.644f, 0.29f, 0.458f, 0.755f, -0.725f, 0.313f, 0.537f, 0.945f, 0.377f, 0.776f, -0.686f, -0.561f };
2159    int ldb = 3;
2160    float B_expected[] = { -5.28862f, 4.51343f, 4.18447f, 0.519474f, 0.288441f, -0.634688f, -7.53878f, 2.5597f, 2.79299f, 2.44873f, 0.781327f, -0.0400353f };
2161    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2162    {
2163      int i;
2164      for (i = 0; i < 6; i++) {
2165        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1910) real");
2166        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1910) imag");
2167      };
2168    };
2169   };
2170
2171
2172   {
2173    int order = 101;
2174    int side = 142;
2175    int uplo = 121;
2176    int trans = 112;
2177    int diag = 132;
2178    int M = 2;
2179    int N = 3;
2180    float alpha[2] = {0.0f, 1.0f};
2181    float A[] = { 0.746f, 0.079f, -0.151f, -0.433f, 0.524f, -0.201f, 0.198f, -0.368f, -0.449f, 0.693f, -0.14f, -0.574f, -0.242f, -0.584f, -0.298f, 0.41f, -0.234f, 0.92f };
2182    int lda = 3;
2183    float B[] = { -0.787f, 0.186f, -0.104f, -0.142f, -0.548f, 0.332f, -0.66f, 0.413f, 0.046f, 0.818f, -0.783f, -0.376f };
2184    int ldb = 3;
2185    float B_expected[] = { 0.320805f, -0.445083f, 0.410072f, -0.371288f, -0.332f, -0.548f, -0.566249f, -0.287942f, -0.315918f, 0.152204f, 0.376f, -0.783f };
2186    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2187    {
2188      int i;
2189      for (i = 0; i < 6; i++) {
2190        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1911) real");
2191        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1911) imag");
2192      };
2193    };
2194   };
2195
2196
2197   {
2198    int order = 101;
2199    int side = 142;
2200    int uplo = 122;
2201    int trans = 112;
2202    int diag = 131;
2203    int M = 2;
2204    int N = 3;
2205    float alpha[2] = {0.0f, 1.0f};
2206    float A[] = { -0.623f, -0.229f, 0.653f, -0.19f, 0.42f, -0.181f, -0.061f, 0.963f, 0.422f, 0.989f, 0.919f, -0.352f, -0.849f, 0.052f, 0.02f, -0.771f, -0.38f, -0.566f };
2207    int lda = 3;
2208    float B[] = { 0.018f, 0.461f, -0.184f, 0.334f, 0.075f, 0.694f, 0.022f, 0.239f, 0.971f, -0.339f, 0.203f, 0.083f };
2209    int ldb = 3;
2210    float B_expected[] = { 0.642534f, -0.265073f, -0.901268f, 0.171623f, 1.29999f, 0.384146f, 0.326529f, -0.155337f, 0.629902f, 0.0571184f, -0.761884f, -0.282697f };
2211    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2212    {
2213      int i;
2214      for (i = 0; i < 6; i++) {
2215        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1912) real");
2216        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1912) imag");
2217      };
2218    };
2219   };
2220
2221
2222   {
2223    int order = 101;
2224    int side = 142;
2225    int uplo = 122;
2226    int trans = 112;
2227    int diag = 132;
2228    int M = 2;
2229    int N = 3;
2230    float alpha[2] = {0.0f, 1.0f};
2231    float A[] = { 0.35f, 0.154f, 0.397f, -0.709f, 0.587f, -0.895f, -0.848f, 0.933f, -0.887f, -0.393f, 0.824f, 0.182f, 0.159f, 0.303f, -0.011f, -0.363f, 0.875f, 0.991f };
2232    int lda = 3;
2233    float B[] = { -0.513f, 0.564f, 0.404f, -0.635f, 0.924f, 0.238f, -0.059f, 0.96f, 0.341f, 0.483f, -0.844f, 0.84f };
2234    int ldb = 3;
2235    float B_expected[] = { -0.564f, -0.513f, -0.321901f, 0.495188f, -0.487057f, 1.06506f, -0.96f, -0.059f, -1.35213f, 1.18665f, -1.15086f, -1.02151f };
2236    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2237    {
2238      int i;
2239      for (i = 0; i < 6; i++) {
2240        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1913) real");
2241        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1913) imag");
2242      };
2243    };
2244   };
2245
2246
2247   {
2248    int order = 102;
2249    int side = 142;
2250    int uplo = 121;
2251    int trans = 112;
2252    int diag = 131;
2253    int M = 2;
2254    int N = 3;
2255    float alpha[2] = {0.0f, 1.0f};
2256    float A[] = { 0.87f, 0.914f, -0.097f, -0.138f, 0.894f, -0.173f, 0.648f, -0.327f, 0.7f, 0.816f, 0.63f, 0.637f, -0.671f, 0.322f, -0.922f, 0.618f, 0.93f, 0.654f };
2257    int lda = 3;
2258    float B[] = { -0.347f, -0.273f, -0.384f, 0.02f, 0.392f, -0.206f, 0.347f, 0.269f, 0.016f, 0.797f, 0.699f, -0.966f };
2259    int ldb = 2;
2260    float B_expected[] = { -0.443754f, 0.343363f, 0.300599f, -0.548484f, 0.757674f, 0.722159f, 0.224607f, -0.673284f, -0.565323f, 0.414754f, 1.04867f, 0.014162f };
2261    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2262    {
2263      int i;
2264      for (i = 0; i < 6; i++) {
2265        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1914) real");
2266        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1914) imag");
2267      };
2268    };
2269   };
2270
2271
2272   {
2273    int order = 102;
2274    int side = 142;
2275    int uplo = 121;
2276    int trans = 112;
2277    int diag = 132;
2278    int M = 2;
2279    int N = 3;
2280    float alpha[2] = {0.0f, 1.0f};
2281    float A[] = { 0.965f, -0.191f, 0.489f, 0.84f, 0.011f, -0.951f, 0.067f, -0.21f, -0.911f, 0.767f, -0.162f, 0.274f, -0.502f, -0.445f, 0.492f, 0.023f, -0.818f, 0.859f };
2282    int lda = 3;
2283    float B[] = { 0.66f, -0.303f, 0.223f, 0.261f, -0.252f, -0.238f, -0.012f, -0.485f, 0.783f, -0.196f, -0.57f, 0.929f };
2284    int ldb = 2;
2285    float B_expected[] = { 0.177032f, 1.21679f, -0.596808f, -0.300881f, 0.159577f, -0.641744f, 0.928958f, 0.289807f, 0.196f, 0.783f, -0.929f, -0.57f };
2286    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2287    {
2288      int i;
2289      for (i = 0; i < 6; i++) {
2290        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1915) real");
2291        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1915) imag");
2292      };
2293    };
2294   };
2295
2296
2297   {
2298    int order = 102;
2299    int side = 142;
2300    int uplo = 122;
2301    int trans = 112;
2302    int diag = 131;
2303    int M = 2;
2304    int N = 3;
2305    float alpha[2] = {0.0f, 1.0f};
2306    float A[] = { -0.652f, 0.046f, -0.229f, 0.473f, -0.783f, -0.211f, 0.698f, 0.201f, -0.153f, 0.918f, -0.996f, -0.186f, 0.84f, -0.545f, -0.457f, 0.057f, 0.649f, 0.77f };
2307    int lda = 3;
2308    float B[] = { -0.227f, 0.14f, 0.165f, -0.945f, -0.212f, -0.522f, 0.908f, 0.722f, -0.208f, 0.969f, 0.721f, -0.816f };
2309    int ldb = 2;
2310    float B_expected[] = { 0.189219f, 0.361509f, -1.42444f, -0.353565f, -0.361882f, -0.741783f, 1.80537f, 1.02311f, -1.24128f, 0.407779f, 2.0229f, -0.0912412f };
2311    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2312    {
2313      int i;
2314      for (i = 0; i < 6; i++) {
2315        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1916) real");
2316        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1916) imag");
2317      };
2318    };
2319   };
2320
2321
2322   {
2323    int order = 102;
2324    int side = 142;
2325    int uplo = 122;
2326    int trans = 112;
2327    int diag = 132;
2328    int M = 2;
2329    int N = 3;
2330    float alpha[2] = {0.0f, 1.0f};
2331    float A[] = { -0.945f, 0.36f, 0.3f, 0.128f, -0.27f, -0.834f, 0.349f, -0.6f, -0.293f, 0.122f, -0.481f, -0.681f, -0.815f, -0.195f, 0.728f, 0.016f, 0.037f, 0.989f };
2332    int lda = 3;
2333    float B[] = { -0.97f, 0.784f, 0.488f, 0.39f, -0.482f, -0.518f, -0.797f, 0.271f, 0.257f, 0.637f, 0.118f, -0.993f };
2334    int ldb = 2;
2335    float B_expected[] = { -0.784f, -0.97f, -0.39f, 0.488f, 0.62904f, -0.090648f, -0.091536f, -0.89348f, 0.3246f, -0.273981f, 1.04514f, -0.5676f };
2336    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2337    {
2338      int i;
2339      for (i = 0; i < 6; i++) {
2340        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1917) real");
2341        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1917) imag");
2342      };
2343    };
2344   };
2345
2346
2347   {
2348    int order = 101;
2349    int side = 141;
2350    int uplo = 121;
2351    int trans = 113;
2352    int diag = 131;
2353    int M = 2;
2354    int N = 3;
2355    float alpha[2] = {0.0f, 0.1f};
2356    float A[] = { 0.795f, 0.073f, 0.104f, -0.261f, -0.712f, 0.881f, -0.474f, -0.906f };
2357    int lda = 2;
2358    float B[] = { -0.41f, -0.191f, -0.359f, -0.718f, -0.902f, 0.646f, -0.703f, -0.809f, -0.342f, -0.783f, -0.053f, 0.917f };
2359    int ldb = 3;
2360    float B_expected[] = { 0.0285203f, -0.0489535f, 0.0936712f, -0.036556f, -0.0702473f, -0.11991f, -0.0924979f, -0.0235243f, -0.0742841f, -0.0262764f, 0.074552f, 0.0886899f };
2361    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2362    {
2363      int i;
2364      for (i = 0; i < 6; i++) {
2365        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1918) real");
2366        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1918) imag");
2367      };
2368    };
2369   };
2370
2371
2372   {
2373    int order = 101;
2374    int side = 141;
2375    int uplo = 121;
2376    int trans = 113;
2377    int diag = 132;
2378    int M = 2;
2379    int N = 3;
2380    float alpha[2] = {0.0f, 0.1f};
2381    float A[] = { -0.281f, -0.111f, 0.055f, -0.643f, 0.33f, -0.663f, 0.32f, 0.423f };
2382    int lda = 2;
2383    float B[] = { 0.103f, 0.357f, -0.591f, 0.833f, -0.906f, -0.192f, -0.391f, -0.622f, -0.345f, -0.58f, -0.132f, -0.874f };
2384    int ldb = 3;
2385    float B_expected[] = { -0.0357f, 0.0103f, -0.0833f, -0.0591f, 0.0192f, -0.0906f, 0.0707864f, -0.0167114f, 0.0245802f, 0.0223124f, 0.0280882f, -0.0205626f };
2386    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2387    {
2388      int i;
2389      for (i = 0; i < 6; i++) {
2390        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1919) real");
2391        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1919) imag");
2392      };
2393    };
2394   };
2395
2396
2397   {
2398    int order = 101;
2399    int side = 141;
2400    int uplo = 122;
2401    int trans = 113;
2402    int diag = 131;
2403    int M = 2;
2404    int N = 3;
2405    float alpha[2] = {0.0f, 0.1f};
2406    float A[] = { 0.311f, -0.648f, -0.732f, 0.825f, 0.152f, -0.529f, -0.353f, 0.568f };
2407    int lda = 2;
2408    float B[] = { 0.86f, -0.991f, -0.992f, -0.617f, 0.137f, -0.585f, -0.467f, 0.632f, 0.672f, 0.777f, -0.609f, 0.511f };
2409    int ldb = 3;
2410    float B_expected[] = { 0.0795347f, -0.0537122f, -0.0885393f, -0.0194836f, -0.0386006f, -0.0674606f, 0.109194f, -0.0434058f, -0.0240177f, -0.151722f, 0.117678f, -0.0168304f };
2411    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2412    {
2413      int i;
2414      for (i = 0; i < 6; i++) {
2415        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1920) real");
2416        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1920) imag");
2417      };
2418    };
2419   };
2420
2421
2422   {
2423    int order = 101;
2424    int side = 141;
2425    int uplo = 122;
2426    int trans = 113;
2427    int diag = 132;
2428    int M = 2;
2429    int N = 3;
2430    float alpha[2] = {0.0f, 0.1f};
2431    float A[] = { 0.318f, -0.946f, -0.389f, 0.051f, 0.322f, -0.626f, -0.839f, -0.252f };
2432    int lda = 2;
2433    float B[] = { 0.372f, -0.23f, 0.515f, 0.213f, 0.222f, 0.296f, -0.524f, 0.442f, -0.581f, -0.409f, 0.894f, -0.246f };
2434    int ldb = 3;
2435    float B_expected[] = { 0.00443f, 0.081742f, -0.0708404f, 0.0446048f, 0.0184432f, -0.0219864f, -0.0442f, -0.0524f, 0.0409f, -0.0581f, 0.0246f, 0.0894f };
2436    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2437    {
2438      int i;
2439      for (i = 0; i < 6; i++) {
2440        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1921) real");
2441        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1921) imag");
2442      };
2443    };
2444   };
2445
2446
2447   {
2448    int order = 102;
2449    int side = 141;
2450    int uplo = 121;
2451    int trans = 113;
2452    int diag = 131;
2453    int M = 2;
2454    int N = 3;
2455    float alpha[2] = {0.0f, 0.1f};
2456    float A[] = { -0.411f, 0.34f, -0.85f, 0.557f, -0.918f, 0.484f, -0.889f, 0.561f };
2457    int lda = 2;
2458    float B[] = { -0.763f, -0.514f, -0.744f, -0.948f, -0.312f, 0.818f, -0.686f, 0.341f, -0.043f, 0.235f, -0.201f, 0.874f };
2459    int ldb = 2;
2460    float B_expected[] = { 0.0169288f, 0.17164f, -0.0683166f, -0.0596556f, 0.155447f, -0.0526808f, -0.086698f, 0.101645f, 0.039085f, -0.0218708f, 0.0437248f, -0.0036776f };
2461    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2462    {
2463      int i;
2464      for (i = 0; i < 6; i++) {
2465        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1922) real");
2466        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1922) imag");
2467      };
2468    };
2469   };
2470
2471
2472   {
2473    int order = 102;
2474    int side = 141;
2475    int uplo = 121;
2476    int trans = 113;
2477    int diag = 132;
2478    int M = 2;
2479    int N = 3;
2480    float alpha[2] = {0.0f, 0.1f};
2481    float A[] = { 0.046f, 0.571f, 0.825f, 0.665f, 0.658f, -0.977f, 0.247f, -0.944f };
2482    int lda = 2;
2483    float B[] = { -0.342f, 0.089f, -0.975f, 0.027f, -0.621f, -0.127f, 0.937f, -0.332f, -0.357f, -0.213f, 0.57f, 0.134f };
2484    int ldb = 2;
2485    float B_expected[] = { -0.0089f, -0.0342f, -0.0302572f, -0.0663011f, 0.0127f, -0.0621f, -0.0358283f, 0.122154f, 0.0213f, -0.0357f, -0.0622943f, 0.0596805f };
2486    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2487    {
2488      int i;
2489      for (i = 0; i < 6; i++) {
2490        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1923) real");
2491        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1923) imag");
2492      };
2493    };
2494   };
2495
2496
2497   {
2498    int order = 102;
2499    int side = 141;
2500    int uplo = 122;
2501    int trans = 113;
2502    int diag = 131;
2503    int M = 2;
2504    int N = 3;
2505    float alpha[2] = {0.0f, 0.1f};
2506    float A[] = { 0.655f, 0.051f, -0.864f, 0.04f, -0.45f, 0.276f, -0.365f, 0.766f };
2507    int lda = 2;
2508    float B[] = { 0.12f, 0.036f, 0.425f, -0.145f, -0.772f, -0.483f, -0.154f, -0.327f, 0.532f, 0.59f, 0.305f, 0.443f };
2509    int ldb = 2;
2510    float B_expected[] = { -0.0745593f, 0.00123365f, -0.0525674f, -0.00611891f, 0.0752311f, -0.0558274f, -0.0001932f, 0.0425972f, -0.0986826f, -0.00963885f, -0.00999124f, -0.0625937f };
2511    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2512    {
2513      int i;
2514      for (i = 0; i < 6; i++) {
2515        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1924) real");
2516        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1924) imag");
2517      };
2518    };
2519   };
2520
2521
2522   {
2523    int order = 102;
2524    int side = 141;
2525    int uplo = 122;
2526    int trans = 113;
2527    int diag = 132;
2528    int M = 2;
2529    int N = 3;
2530    float alpha[2] = {0.0f, 0.1f};
2531    float A[] = { 0.253f, -0.163f, -0.061f, -0.032f, -0.764f, 0.863f, 0.051f, 0.669f };
2532    int lda = 2;
2533    float B[] = { 0.966f, 0.42f, -0.765f, 0.186f, -0.798f, 0.278f, -0.37f, -0.484f, -0.724f, -0.682f, 0.034f, 0.352f };
2534    int ldb = 2;
2535    float B_expected[] = { -0.0455826f, 0.0925287f, -0.0186f, -0.0765f, -0.0260316f, -0.0836058f, 0.0484f, -0.037f, 0.0661616f, -0.0710662f, -0.0352f, 0.0034f };
2536    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2537    {
2538      int i;
2539      for (i = 0; i < 6; i++) {
2540        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1925) real");
2541        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1925) imag");
2542      };
2543    };
2544   };
2545
2546
2547   {
2548    int order = 101;
2549    int side = 142;
2550    int uplo = 121;
2551    int trans = 113;
2552    int diag = 131;
2553    int M = 2;
2554    int N = 3;
2555    float alpha[2] = {0.0f, 0.1f};
2556    float A[] = { 0.017f, -0.631f, -0.052f, 0.296f, -0.486f, -0.279f, -0.378f, 0.997f, 0.533f, 0.87f, 0.808f, 0.007f, 0.185f, -0.263f, -0.757f, -0.856f, 0.575f, -0.81f };
2557    int lda = 3;
2558    float B[] = { -0.238f, -0.924f, 0.494f, -0.089f, 0.96f, 0.959f, 0.415f, 0.39f, -0.744f, -0.881f, -0.594f, 0.629f };
2559    int ldb = 3;
2560    float B_expected[] = { 0.0798921f, -0.243487f, 0.0441094f, -0.0391653f, 0.0229218f, 0.134667f, 0.192099f, 0.152741f, 0.154557f, 0.0857677f, -0.0854154f, 0.0170199f };
2561    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2562    {
2563      int i;
2564      for (i = 0; i < 6; i++) {
2565        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1926) real");
2566        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1926) imag");
2567      };
2568    };
2569   };
2570
2571
2572   {
2573    int order = 101;
2574    int side = 142;
2575    int uplo = 121;
2576    int trans = 113;
2577    int diag = 132;
2578    int M = 2;
2579    int N = 3;
2580    float alpha[2] = {0.0f, 0.1f};
2581    float A[] = { -0.977f, -0.949f, 0.192f, 0.803f, -0.964f, -0.162f, 0.799f, -0.081f, -0.055f, 0.014f, 0.99f, 0.804f, 0.913f, -0.898f, -0.057f, 0.51f, 0.453f, 0.622f };
2582    int lda = 3;
2583    float B[] = { -0.852f, -0.001f, -0.955f, -0.97f, -0.071f, -0.664f, -0.077f, -0.746f, 0.228f, -0.948f, 0.476f, -0.285f };
2584    int ldb = 3;
2585    float B_expected[] = { 0.0840343f, -0.066376f, 0.0369724f, -0.0350854f, 0.0664f, -0.0071f, 0.105481f, 0.0565767f, 0.0283146f, -0.00141f, 0.0285f, 0.0476f };
2586    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2587    {
2588      int i;
2589      for (i = 0; i < 6; i++) {
2590        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1927) real");
2591        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1927) imag");
2592      };
2593    };
2594   };
2595
2596
2597   {
2598    int order = 101;
2599    int side = 142;
2600    int uplo = 122;
2601    int trans = 113;
2602    int diag = 131;
2603    int M = 2;
2604    int N = 3;
2605    float alpha[2] = {0.0f, 0.1f};
2606    float A[] = { 0.822f, 0.618f, -0.935f, 0.49f, 0.885f, -0.488f, 0.412f, 0.861f, -0.144f, 0.906f, -0.054f, 0.455f, 0.213f, 0.34f, -0.465f, 0.107f, -0.611f, 0.088f };
2607    int lda = 3;
2608    float B[] = { 0.476f, -0.297f, -0.966f, -0.038f, -0.346f, -0.81f, -0.749f, -0.065f, -0.225f, -0.663f, 0.073f, -0.379f };
2609    int ldb = 3;
2610    float B_expected[] = { -0.00473086f, 0.0543508f, 0.139511f, -0.0231317f, -0.199775f, 0.100154f, 0.0488188f, -0.054416f, -0.0610839f, 0.0929832f, -0.0289368f, -0.113983f };
2611    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2612    {
2613      int i;
2614      for (i = 0; i < 6; i++) {
2615        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1928) real");
2616        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1928) imag");
2617      };
2618    };
2619   };
2620
2621
2622   {
2623    int order = 101;
2624    int side = 142;
2625    int uplo = 122;
2626    int trans = 113;
2627    int diag = 132;
2628    int M = 2;
2629    int N = 3;
2630    float alpha[2] = {0.0f, 0.1f};
2631    float A[] = { -0.188f, 0.741f, 0.583f, 0.527f, 0.025f, 0.216f, -0.44f, -0.071f, -0.126f, -0.093f, 0.743f, -0.476f, 0.661f, -0.66f, 0.564f, -0.943f, -0.976f, -0.035f };
2632    int lda = 3;
2633    float B[] = { -0.648f, -0.367f, -0.402f, -0.309f, 0.412f, 0.531f, -0.248f, 0.181f, 0.507f, 0.502f, -0.593f, 0.404f };
2634    int ldb = 3;
2635    float B_expected[] = { 0.0367f, -0.0648f, 0.0424472f, -0.0713177f, -0.21132f, 0.0600063f, -0.0181f, -0.0248f, -0.0599248f, 0.0410731f, 0.0277256f, 0.00238266f };
2636    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2637    {
2638      int i;
2639      for (i = 0; i < 6; i++) {
2640        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1929) real");
2641        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1929) imag");
2642      };
2643    };
2644   };
2645
2646
2647   {
2648    int order = 102;
2649    int side = 142;
2650    int uplo = 121;
2651    int trans = 113;
2652    int diag = 131;
2653    int M = 2;
2654    int N = 3;
2655    float alpha[2] = {0.0f, 0.1f};
2656    float A[] = { 0.76f, -0.021f, -0.011f, 0.14f, 0.699f, 0.94f, 0.296f, 0.333f, 0.654f, -0.917f, 0.008f, -0.999f, -0.963f, 0.687f, -0.481f, 0.106f, 0.128f, -0.165f };
2657    int lda = 3;
2658    float B[] = { -0.742f, 0.774f, -0.335f, -0.99f, 0.799f, 0.901f, 0.753f, -0.085f, -0.042f, -0.591f, 0.202f, 0.515f };
2659    int ldb = 2;
2660    float B_expected[] = { 0.313744f, -0.259345f, -0.290807f, 0.212822f, -0.00668591f, -0.0164417f, 0.10903f, 0.137068f, 0.157578f, -0.23594f, -0.0747323f, 0.254147f };
2661    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2662    {
2663      int i;
2664      for (i = 0; i < 6; i++) {
2665        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1930) real");
2666        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1930) imag");
2667      };
2668    };
2669   };
2670
2671
2672   {
2673    int order = 102;
2674    int side = 142;
2675    int uplo = 121;
2676    int trans = 113;
2677    int diag = 132;
2678    int M = 2;
2679    int N = 3;
2680    float alpha[2] = {0.0f, 0.1f};
2681    float A[] = { 0.582f, -0.175f, -0.48f, 0.567f, -0.571f, 0.062f, 0.038f, -0.625f, 0.737f, 0.799f, -0.569f, -0.932f, 0.522f, -0.763f, 0.156f, -0.524f, 0.138f, 0.007f };
2682    int lda = 3;
2683    float B[] = { 0.998f, 0.6f, 0.555f, -0.737f, -0.162f, 0.263f, 0.317f, -0.092f, 0.302f, -0.671f, 0.418f, -0.814f };
2684    int ldb = 2;
2685    float B_expected[] = { -0.106233f, 0.0480583f, 0.0514817f, -0.0392668f, -0.0209428f, -0.0560716f, 0.0184048f, -0.0174744f, 0.0671f, 0.0302f, 0.0814f, 0.0418f };
2686    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2687    {
2688      int i;
2689      for (i = 0; i < 6; i++) {
2690        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1931) real");
2691        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1931) imag");
2692      };
2693    };
2694   };
2695
2696
2697   {
2698    int order = 102;
2699    int side = 142;
2700    int uplo = 122;
2701    int trans = 113;
2702    int diag = 131;
2703    int M = 2;
2704    int N = 3;
2705    float alpha[2] = {0.0f, 0.1f};
2706    float A[] = { 0.964f, 0.509f, 0.48f, -0.833f, 0.867f, 0.51f, -0.643f, 0.115f, -0.594f, -0.409f, -0.174f, 0.527f, 0.676f, 0.431f, 0.261f, -0.239f, 0.816f, -0.231f };
2707    int lda = 3;
2708    float B[] = { -0.659f, -0.029f, -0.581f, -0.938f, -0.904f, -0.445f, 0.119f, 0.709f, -0.649f, 0.825f, 0.532f, -0.453f };
2709    int ldb = 2;
2710    float B_expected[] = { 0.0305784f, -0.0522153f, 0.100975f, -0.00695419f, -0.055793f, 0.11446f, 0.0887801f, 0.177079f, -0.177262f, 0.0336107f, -0.0717714f, 0.251108f };
2711    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2712    {
2713      int i;
2714      for (i = 0; i < 6; i++) {
2715        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1932) real");
2716        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1932) imag");
2717      };
2718    };
2719   };
2720
2721
2722   {
2723    int order = 102;
2724    int side = 142;
2725    int uplo = 122;
2726    int trans = 113;
2727    int diag = 132;
2728    int M = 2;
2729    int N = 3;
2730    float alpha[2] = {0.0f, 0.1f};
2731    float A[] = { 0.859f, 0.745f, 0.03f, -0.98f, -0.402f, 0.38f, -0.214f, 0.605f, 0.342f, -0.059f, -0.096f, 0.606f, -0.543f, 0.503f, 0.63f, -0.269f, 0.252f, 0.626f };
2732    int lda = 3;
2733    float B[] = { 0.85f, 0.642f, 0.679f, -0.254f, 0.192f, 0.766f, -0.869f, -0.09f, 0.68f, -0.898f, 0.272f, -0.651f };
2734    int ldb = 2;
2735    float B_expected[] = { -0.0642f, 0.085f, 0.0254f, 0.0679f, 0.008626f, 0.079566f, 0.07478f, -0.113829f, -0.0156973f, 0.0906397f, 0.125668f, 0.0985369f };
2736    cblas_ctrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2737    {
2738      int i;
2739      for (i = 0; i < 6; i++) {
2740        gsl_test_rel(B[2*i], B_expected[2*i], flteps, "ctrsm(case 1933) real");
2741        gsl_test_rel(B[2*i+1], B_expected[2*i+1], flteps, "ctrsm(case 1933) imag");
2742      };
2743    };
2744   };
2745
2746
2747   {
2748    int order = 101;
2749    int side = 141;
2750    int uplo = 121;
2751    int trans = 111;
2752    int diag = 131;
2753    int M = 2;
2754    int N = 3;
2755    double alpha[2] = {0, 0};
2756    double A[] = { 0.189, 0.519, -0.455, -0.444, -0.21, -0.507, -0.591, 0.859 };
2757    int lda = 2;
2758    double B[] = { -0.779, -0.484, 0.249, -0.107, -0.755, -0.047, 0.941, 0.675, -0.757, 0.645, -0.649, 0.242 };
2759    int ldb = 3;
2760    double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
2761    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2762    {
2763      int i;
2764      for (i = 0; i < 6; i++) {
2765        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1934) real");
2766        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1934) imag");
2767      };
2768    };
2769   };
2770
2771
2772   {
2773    int order = 101;
2774    int side = 141;
2775    int uplo = 121;
2776    int trans = 111;
2777    int diag = 132;
2778    int M = 2;
2779    int N = 3;
2780    double alpha[2] = {0, 0};
2781    double A[] = { -0.988, 0.73, 0.279, -0.967, -0.288, -0.095, -0.821, 0.178 };
2782    int lda = 2;
2783    double B[] = { 0.702, 0.943, -0.235, -0.565, 0.279, -0.146, 0.816, 0.473, 0.893, 0.877, -0.797, -0.159 };
2784    int ldb = 3;
2785    double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
2786    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2787    {
2788      int i;
2789      for (i = 0; i < 6; i++) {
2790        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1935) real");
2791        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1935) imag");
2792      };
2793    };
2794   };
2795
2796
2797   {
2798    int order = 101;
2799    int side = 141;
2800    int uplo = 122;
2801    int trans = 111;
2802    int diag = 131;
2803    int M = 2;
2804    int N = 3;
2805    double alpha[2] = {0, 0};
2806    double A[] = { 0.716, -0.549, 0.436, -0.822, -0.029, -0.586, 0.791, -0.159 };
2807    int lda = 2;
2808    double B[] = { 0.021, 0.391, 0.296, -0.154, -0.513, 0.738, -0.336, 0.317, 0.502, 0.543, 0.027, 0.802 };
2809    int ldb = 3;
2810    double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
2811    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2812    {
2813      int i;
2814      for (i = 0; i < 6; i++) {
2815        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1936) real");
2816        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1936) imag");
2817      };
2818    };
2819   };
2820
2821
2822   {
2823    int order = 101;
2824    int side = 141;
2825    int uplo = 122;
2826    int trans = 111;
2827    int diag = 132;
2828    int M = 2;
2829    int N = 3;
2830    double alpha[2] = {0, 0};
2831    double A[] = { 0.715, -0.875, -0.501, 0.425, -0.928, -0.929, -0.542, 0.915 };
2832    int lda = 2;
2833    double B[] = { 0.065, 0.679, -0.545, 0.042, 0.199, -0.86, 0.159, 0.943, 0.19, 0.403, 0.994, 0.76 };
2834    int ldb = 3;
2835    double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
2836    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2837    {
2838      int i;
2839      for (i = 0; i < 6; i++) {
2840        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1937) real");
2841        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1937) imag");
2842      };
2843    };
2844   };
2845
2846
2847   {
2848    int order = 102;
2849    int side = 141;
2850    int uplo = 121;
2851    int trans = 111;
2852    int diag = 131;
2853    int M = 2;
2854    int N = 3;
2855    double alpha[2] = {0, 0};
2856    double A[] = { -0.936, -0.989, -0.57, 0.018, -0.821, 0.516, -0.479, 0.209 };
2857    int lda = 2;
2858    double B[] = { 0.722, -0.756, -0.828, -0.191, -0.981, -0.466, 0.347, 0.85, -0.596, -0.826, -0.182, -0.321 };
2859    int ldb = 2;
2860    double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
2861    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2862    {
2863      int i;
2864      for (i = 0; i < 6; i++) {
2865        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1938) real");
2866        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1938) imag");
2867      };
2868    };
2869   };
2870
2871
2872   {
2873    int order = 102;
2874    int side = 141;
2875    int uplo = 121;
2876    int trans = 111;
2877    int diag = 132;
2878    int M = 2;
2879    int N = 3;
2880    double alpha[2] = {0, 0};
2881    double A[] = { 0.693, 0.976, -0.356, -0.313, 0.926, -0.164, -0.337, 0.056 };
2882    int lda = 2;
2883    double B[] = { -0.988, -0.633, -0.745, -0.392, -0.362, -0.708, -0.706, -0.093, -0.177, 0.837, 0.391, -0.853 };
2884    int ldb = 2;
2885    double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
2886    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2887    {
2888      int i;
2889      for (i = 0; i < 6; i++) {
2890        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1939) real");
2891        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1939) imag");
2892      };
2893    };
2894   };
2895
2896
2897   {
2898    int order = 102;
2899    int side = 141;
2900    int uplo = 122;
2901    int trans = 111;
2902    int diag = 131;
2903    int M = 2;
2904    int N = 3;
2905    double alpha[2] = {0, 0};
2906    double A[] = { -0.483, -0.383, 0.357, 0.889, 0.523, -0.148, -0.592, 0.481 };
2907    int lda = 2;
2908    double B[] = { -0.41, 0.994, -0.779, -0.354, 0.571, 0.51, -0.526, 0.934, 0.469, 0.735, -0.47, -0.164 };
2909    int ldb = 2;
2910    double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
2911    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2912    {
2913      int i;
2914      for (i = 0; i < 6; i++) {
2915        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1940) real");
2916        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1940) imag");
2917      };
2918    };
2919   };
2920
2921
2922   {
2923    int order = 102;
2924    int side = 141;
2925    int uplo = 122;
2926    int trans = 111;
2927    int diag = 132;
2928    int M = 2;
2929    int N = 3;
2930    double alpha[2] = {0, 0};
2931    double A[] = { -0.576, -0.089, 0.953, -0.317, 0.408, 0.618, 0.092, -0.84 };
2932    int lda = 2;
2933    double B[] = { 0.141, -0.32, -0.007, -0.682, -0.068, -0.412, 0.675, -0.809, 0.931, -0.257, -0.048, 0.633 };
2934    int ldb = 2;
2935    double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
2936    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2937    {
2938      int i;
2939      for (i = 0; i < 6; i++) {
2940        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1941) real");
2941        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1941) imag");
2942      };
2943    };
2944   };
2945
2946
2947   {
2948    int order = 101;
2949    int side = 142;
2950    int uplo = 121;
2951    int trans = 111;
2952    int diag = 131;
2953    int M = 2;
2954    int N = 3;
2955    double alpha[2] = {0, 0};
2956    double A[] = { 0.269, 0.567, 0.497, -0.969, 0.957, 0.538, -0.921, 0.639, 0.599, -0.436, -0.045, 0.164, 0.827, 0.489, -0.729, 0.723, -0.01, 0.934 };
2957    int lda = 3;
2958    double B[] = { -0.391, 0.434, -0.349, -0.456, -0.541, 0.289, 0.31, 0.447, 0.971, -0.626, -0.77, -0.882 };
2959    int ldb = 3;
2960    double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
2961    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2962    {
2963      int i;
2964      for (i = 0; i < 6; i++) {
2965        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1942) real");
2966        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1942) imag");
2967      };
2968    };
2969   };
2970
2971
2972   {
2973    int order = 101;
2974    int side = 142;
2975    int uplo = 121;
2976    int trans = 111;
2977    int diag = 132;
2978    int M = 2;
2979    int N = 3;
2980    double alpha[2] = {0, 0};
2981    double A[] = { -0.523, -0.364, -0.492, 0.294, 0.71, -0.401, 0.947, -0.008, 0.235, -0.47, 0.298, -0.603, -0.193, 0.598, 0.122, -0.733, -0.827, 0.491 };
2982    int lda = 3;
2983    double B[] = { 0.872, 0.441, 0.518, 0.607, -0.04, -0.976, 0.201, -0.136, -0.958, -0.501, -0.549, -0.4 };
2984    int ldb = 3;
2985    double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
2986    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
2987    {
2988      int i;
2989      for (i = 0; i < 6; i++) {
2990        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1943) real");
2991        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1943) imag");
2992      };
2993    };
2994   };
2995
2996
2997   {
2998    int order = 101;
2999    int side = 142;
3000    int uplo = 122;
3001    int trans = 111;
3002    int diag = 131;
3003    int M = 2;
3004    int N = 3;
3005    double alpha[2] = {0, 0};
3006    double A[] = { -0.177, -0.965, 0.589, -0.236, -0.303, -0.301, 0.982, 0.006, -0.73, 0.241, 0.636, -0.672, 0.886, 0.952, 0.501, -0.803, -0.823, -0.09 };
3007    int lda = 3;
3008    double B[] = { -0.475, -0.646, -0.666, -0.886, 0.04, -0.736, -0.592, -0.995, 0.259, 0.701, -0.033, 0.616 };
3009    int ldb = 3;
3010    double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
3011    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3012    {
3013      int i;
3014      for (i = 0; i < 6; i++) {
3015        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1944) real");
3016        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1944) imag");
3017      };
3018    };
3019   };
3020
3021
3022   {
3023    int order = 101;
3024    int side = 142;
3025    int uplo = 122;
3026    int trans = 111;
3027    int diag = 132;
3028    int M = 2;
3029    int N = 3;
3030    double alpha[2] = {0, 0};
3031    double A[] = { -0.76, -0.29, -0.601, 0.327, 0.383, 0.883, 0.589, -0.708, 0.912, -0.982, 0.629, 0.879, -0.578, -0.814, 0.168, 0.91, 0.328, 0.223 };
3032    int lda = 3;
3033    double B[] = { 0.381, 0.829, 0.096, 0.382, 0.664, 0.006, -0.376, -0.338, 0.344, -0.889, -0.175, 0.083 };
3034    int ldb = 3;
3035    double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
3036    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3037    {
3038      int i;
3039      for (i = 0; i < 6; i++) {
3040        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1945) real");
3041        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1945) imag");
3042      };
3043    };
3044   };
3045
3046
3047   {
3048    int order = 102;
3049    int side = 142;
3050    int uplo = 121;
3051    int trans = 111;
3052    int diag = 131;
3053    int M = 2;
3054    int N = 3;
3055    double alpha[2] = {0, 0};
3056    double A[] = { 0.129, -0.161, 0.102, 0.443, -0.138, 0.677, -0.87, 0.327, 0.917, 0.446, 0.798, -0.91, -0.574, 0.333, -0.626, 0.14, 0.109, 0.161 };
3057    int lda = 3;
3058    double B[] = { -0.689, -0.94, -0.814, 0.761, 0.389, 0.03, -0.175, -0.739, -0.904, 0.463, -0.511, 0.615 };
3059    int ldb = 2;
3060    double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
3061    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3062    {
3063      int i;
3064      for (i = 0; i < 6; i++) {
3065        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1946) real");
3066        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1946) imag");
3067      };
3068    };
3069   };
3070
3071
3072   {
3073    int order = 102;
3074    int side = 142;
3075    int uplo = 121;
3076    int trans = 111;
3077    int diag = 132;
3078    int M = 2;
3079    int N = 3;
3080    double alpha[2] = {0, 0};
3081    double A[] = { 0.062, 0.756, 0.179, 0.359, -0.047, -0.197, 0.678, 0.873, 0.003, -0.996, 0.507, -0.491, -0.726, -0.833, -0.118, -0.71, 0.714, 0.638 };
3082    int lda = 3;
3083    double B[] = { -0.614, 0.193, 0.881, 0.538, 0.183, -0.034, 0.099, -0.154, -0.121, 0.842, -0.182, -0.229 };
3084    int ldb = 2;
3085    double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
3086    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3087    {
3088      int i;
3089      for (i = 0; i < 6; i++) {
3090        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1947) real");
3091        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1947) imag");
3092      };
3093    };
3094   };
3095
3096
3097   {
3098    int order = 102;
3099    int side = 142;
3100    int uplo = 122;
3101    int trans = 111;
3102    int diag = 131;
3103    int M = 2;
3104    int N = 3;
3105    double alpha[2] = {0, 0};
3106    double A[] = { -0.874, 0.171, 0.637, 0.554, 0.852, -0.203, 0.455, 0.619, -0.128, 0.759, 0.342, 0.372, 0.669, -0.537, -0.76, -0.348, -0.714, 0.573 };
3107    int lda = 3;
3108    double B[] = { -0.434, 0.921, -0.949, 0.282, -0.665, 0.223, -0.633, 0.921, -0.73, 0.457, -0.021, -0.844 };
3109    int ldb = 2;
3110    double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
3111    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3112    {
3113      int i;
3114      for (i = 0; i < 6; i++) {
3115        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1948) real");
3116        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1948) imag");
3117      };
3118    };
3119   };
3120
3121
3122   {
3123    int order = 102;
3124    int side = 142;
3125    int uplo = 122;
3126    int trans = 111;
3127    int diag = 132;
3128    int M = 2;
3129    int N = 3;
3130    double alpha[2] = {0, 0};
3131    double A[] = { -0.189, -0.931, 0.414, 0.288, -0.245, 0.252, -0.465, -0.073, 0.327, 0.176, -0.067, 0.1, 0.124, 0.885, -0.731, -0.303, 0.954, -0.763 };
3132    int lda = 3;
3133    double B[] = { 0.818, 0.948, -0.749, 0.808, -0.959, -0.797, 0.727, 0.701, 0.244, -0.801, 0.354, -0.781 };
3134    int ldb = 2;
3135    double B_expected[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
3136    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3137    {
3138      int i;
3139      for (i = 0; i < 6; i++) {
3140        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1949) real");
3141        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1949) imag");
3142      };
3143    };
3144   };
3145
3146
3147   {
3148    int order = 101;
3149    int side = 141;
3150    int uplo = 121;
3151    int trans = 112;
3152    int diag = 131;
3153    int M = 2;
3154    int N = 3;
3155    double alpha[2] = {-1, 0};
3156    double A[] = { -0.65, -0.279, -0.543, -0.097, -0.641, 0.984, 0.507, -0.809 };
3157    int lda = 2;
3158    double B[] = { -0.176, 0.87, -0.681, 0.409, -0.878, 0.522, 0.348, 0.679, -0.975, -0.815, -0.608, 0.86 };
3159    int ldb = 3;
3160    double B_expected[] = { 0.256485077177, 1.22837025149, -0.656630178218, 0.911076645728, -0.849544610576, 1.16772760977, -0.193804546743, -0.283833884163, -0.811035478317, 1.16349859839, 0.292241175557, -0.141827660937 };
3161    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3162    {
3163      int i;
3164      for (i = 0; i < 6; i++) {
3165        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1950) real");
3166        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1950) imag");
3167      };
3168    };
3169   };
3170
3171
3172   {
3173    int order = 101;
3174    int side = 141;
3175    int uplo = 121;
3176    int trans = 112;
3177    int diag = 132;
3178    int M = 2;
3179    int N = 3;
3180    double alpha[2] = {-1, 0};
3181    double A[] = { 0.23, -0.597, 0.068, 0.945, 0.045, -0.436, 0.113, 0.035 };
3182    int lda = 2;
3183    double B[] = { -0.744, -0.465, -0.742, 0.996, -0.835, 0.712, -0.968, 0.053, -0.813, 0.36, 0.572, -0.489 };
3184    int ldb = 3;
3185    double B_expected[] = { 0.744, 0.465, 0.742, -0.996, 0.835, -0.712, 1.356833, -0.7877, -0.178676, -0.993462, -1.30162, -0.251659 };
3186    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3187    {
3188      int i;
3189      for (i = 0; i < 6; i++) {
3190        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1951) real");
3191        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1951) imag");
3192      };
3193    };
3194   };
3195
3196
3197   {
3198    int order = 101;
3199    int side = 141;
3200    int uplo = 122;
3201    int trans = 112;
3202    int diag = 131;
3203    int M = 2;
3204    int N = 3;
3205    double alpha[2] = {-1, 0};
3206    double A[] = { -0.689, -0.396, 0.415, -0.567, 0.001, 0.513, 0.837, 0.045 };
3207    int lda = 2;
3208    double B[] = { -0.012, 0.2, 0.22, 0.81, -0.586, -0.198, 0.16, -0.958, -0.125, 0.833, 0.344, 0.213 };
3209    int ldb = 3;
3210    double B_expected[] = { -0.573154258944, 0.525131422048, 1.33801555643, 0.47629585874, -0.770607912552, -0.160087833623, -0.129249609305, 1.15151282248, 0.0955601670381, -1.00035867087, -0.423449388979, -0.231714190557 };
3211    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3212    {
3213      int i;
3214      for (i = 0; i < 6; i++) {
3215        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1952) real");
3216        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1952) imag");
3217      };
3218    };
3219   };
3220
3221
3222   {
3223    int order = 101;
3224    int side = 141;
3225    int uplo = 122;
3226    int trans = 112;
3227    int diag = 132;
3228    int M = 2;
3229    int N = 3;
3230    double alpha[2] = {-1, 0};
3231    double A[] = { 0.102, 0.86, -0.067, 0.12, 0.92, 0.441, 0.367, -0.104 };
3232    int lda = 2;
3233    double B[] = { 0.386, 0.59, 0.222, 0.824, 0.091, 0.486, 0.43, 0.766, 0.576, 0.042, 0.013, -0.008 };
3234    int ldb = 3;
3235    double B_expected[] = { -0.328206, 0.30435, 0.289398, -0.531344, -0.075512, -0.487627, -0.43, -0.766, -0.576, -0.042, -0.013, 0.008 };
3236    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3237    {
3238      int i;
3239      for (i = 0; i < 6; i++) {
3240        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1953) real");
3241        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1953) imag");
3242      };
3243    };
3244   };
3245
3246
3247   {
3248    int order = 102;
3249    int side = 141;
3250    int uplo = 121;
3251    int trans = 112;
3252    int diag = 131;
3253    int M = 2;
3254    int N = 3;
3255    double alpha[2] = {-1, 0};
3256    double A[] = { -0.087, 0.925, -0.315, 0.251, 0.7, -0.223, 0.448, 0.373 };
3257    int lda = 2;
3258    double B[] = { -0.333, -0.495, 0.995, -0.229, 0.425, -0.269, -0.756, -0.783, -0.214, 0.582, -0.351, -0.095 };
3259    int ldb = 2;
3260    double B_expected[] = { 0.496880191475, -0.406733596387, -0.965186357327, 2.19761676664, 0.331095906598, 0.428318547163, 1.17655095681, 0.263745306399, -0.645240814927, -0.170663836866, 1.18578937767, -0.829739852214 };
3261    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3262    {
3263      int i;
3264      for (i = 0; i < 6; i++) {
3265        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1954) real");
3266        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1954) imag");
3267      };
3268    };
3269   };
3270
3271
3272   {
3273    int order = 102;
3274    int side = 141;
3275    int uplo = 121;
3276    int trans = 112;
3277    int diag = 132;
3278    int M = 2;
3279    int N = 3;
3280    double alpha[2] = {-1, 0};
3281    double A[] = { 0.717, 0.572, -0.304, 0.878, 0.625, -0.615, -0.565, -0.643 };
3282    int lda = 2;
3283    double B[] = { -0.383, -0.669, -0.043, -0.09, -0.999, -0.427, 0.834, 0.539, -0.973, -0.481, 0.071, -0.71 };
3284    int ldb = 2;
3285    double B_expected[] = { 0.383, 0.669, -0.60781, -0.09258, 0.999, 0.427, -1.72098, -0.19149, 0.973, 0.481, -0.97494, 1.00777 };
3286    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3287    {
3288      int i;
3289      for (i = 0; i < 6; i++) {
3290        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1955) real");
3291        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1955) imag");
3292      };
3293    };
3294   };
3295
3296
3297   {
3298    int order = 102;
3299    int side = 141;
3300    int uplo = 122;
3301    int trans = 112;
3302    int diag = 131;
3303    int M = 2;
3304    int N = 3;
3305    double alpha[2] = {-1, 0};
3306    double A[] = { 0.143, -0.022, 0.487, 0.444, 0.138, -0.871, 0.572, -0.093 };
3307    int lda = 2;
3308    double B[] = { -0.073, -0.9, -0.688, 0.436, -0.213, -0.733, 0.809, -0.618, 0.696, 0.259, 0.494, 0.162 };
3309    int ldb = 2;
3310    double B_expected[] = { -6.10129128737, 3.22195959384, 1.29255909931, -0.552083922664, 8.05253150033, 8.35261031753, -1.54904967648, 0.828563601552, -3.66721033067, 1.50334288416, -0.796532800529, -0.412722990296 };
3311    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3312    {
3313      int i;
3314      for (i = 0; i < 6; i++) {
3315        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1956) real");
3316        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1956) imag");
3317      };
3318    };
3319   };
3320
3321
3322   {
3323    int order = 102;
3324    int side = 141;
3325    int uplo = 122;
3326    int trans = 112;
3327    int diag = 132;
3328    int M = 2;
3329    int N = 3;
3330    double alpha[2] = {-1, 0};
3331    double A[] = { 0.544, 0.918, -0.524, 0.547, -0.839, 0.4, -0.548, 0.49 };
3332    int lda = 2;
3333    double B[] = { 0.475, -0.594, 0.252, -0.717, 0.867, 0.07, 0.264, 0.538, 0.028, 0.482, -0.59, -0.533 };
3334    int ldb = 2;
3335    double B_expected[] = { -0.214849, 1.107552, -0.252, 0.717, -1.299622, -0.207504, -0.264, -0.538, 0.572711, -0.525438, 0.59, 0.533 };
3336    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3337    {
3338      int i;
3339      for (i = 0; i < 6; i++) {
3340        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1957) real");
3341        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1957) imag");
3342      };
3343    };
3344   };
3345
3346
3347   {
3348    int order = 101;
3349    int side = 142;
3350    int uplo = 121;
3351    int trans = 112;
3352    int diag = 131;
3353    int M = 2;
3354    int N = 3;
3355    double alpha[2] = {-1, 0};
3356    double A[] = { -0.038, -0.116, -0.476, -0.818, 0.961, 0.271, -0.593, 0.548, -0.86, 0.429, -0.396, -0.559, 0.766, -0.326, -0.335, 0.633, -0.532, 0.317 };
3357    int lda = 3;
3358    double B[] = { -0.459, 0.904, 0.887, 0.07, -0.497, -0.48, -0.313, 0.864, -0.029, -0.754, -0.566, -0.108 };
3359    int ldb = 3;
3360    double B_expected[] = { -4.58258258525, -3.00717937382, 0.0668903493808, 0.800759804641, -0.292673260098, -1.0766492922, -0.911020412982, 7.68812066826, -0.0359723342287, -0.157963939743, -0.695872108638, -0.617653117365 };
3361    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3362    {
3363      int i;
3364      for (i = 0; i < 6; i++) {
3365        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1958) real");
3366        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1958) imag");
3367      };
3368    };
3369   };
3370
3371
3372   {
3373    int order = 101;
3374    int side = 142;
3375    int uplo = 121;
3376    int trans = 112;
3377    int diag = 132;
3378    int M = 2;
3379    int N = 3;
3380    double alpha[2] = {-1, 0};
3381    double A[] = { 0.886, 0.945, 0.065, 0.882, -0.46, -0.095, 0.823, -0.245, -0.825, 0.904, -0.214, -0.268, -0.935, -0.017, 0.902, 0.561, 0.954, -0.665 };
3382    int lda = 3;
3383    double B[] = { 0.076, -0.043, 0.873, -0.831, -0.329, -0.896, -0.174, 0.653, 0.489, 0.25, -0.896, 0.609 };
3384    int ldb = 3;
3385    double B_expected[] = { 1.037824842, 1.333886264, -1.042722, 1.110916, 0.329, 0.896, 0.529073224, -0.720680322, -0.134044, -0.140198, 0.896, -0.609 };
3386    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3387    {
3388      int i;
3389      for (i = 0; i < 6; i++) {
3390        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1959) real");
3391        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1959) imag");
3392      };
3393    };
3394   };
3395
3396
3397   {
3398    int order = 101;
3399    int side = 142;
3400    int uplo = 122;
3401    int trans = 112;
3402    int diag = 131;
3403    int M = 2;
3404    int N = 3;
3405    double alpha[2] = {-1, 0};
3406    double A[] = { -0.691, -0.056, -0.339, -0.483, -0.975, -0.052, -0.198, 0.576, -0.075, 0.718, -0.321, 0.728, -0.124, 0.774, 0.685, -0.112, 0.178, 0.275 };
3407    int lda = 3;
3408    double B[] = { -0.062, -0.391, 0.326, 0.42, -0.203, 0.45, 0.338, 0.991, -0.47, -0.363, 0.766, -0.961 };
3409    int ldb = 3;
3410    double B_expected[] = { -0.134697690677, -0.554930433172, -0.526377715671, 0.991348747823, -2.94323584375, -1.92805449726, 0.601422754501, 1.38541291715, 0.201151053335, -1.95287726277, 5.96201044303, 2.1797020274 };
3411    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3412    {
3413      int i;
3414      for (i = 0; i < 6; i++) {
3415        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1960) real");
3416        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1960) imag");
3417      };
3418    };
3419   };
3420
3421
3422   {
3423    int order = 101;
3424    int side = 142;
3425    int uplo = 122;
3426    int trans = 112;
3427    int diag = 132;
3428    int M = 2;
3429    int N = 3;
3430    double alpha[2] = {-1, 0};
3431    double A[] = { -0.318, 0.067, -0.097, 0.359, -0.688, 0.307, -0.63, -0.616, 0.193, 0.817, -0.792, -0.117, -0.501, -0.929, -0.595, -0.144, 0.453, 0.658 };
3432    int lda = 3;
3433    double B[] = { -0.249, -0.206, 0.424, -0.681, -0.464, 0.21, 0.541, 0.082, 0.803, -0.461, -0.638, 0.358 };
3434    int ldb = 3;
3435    double B_expected[] = { 0.249, 0.206, -0.394026, 0.964164, 0.024089914, 0.641464836, -0.541, -0.082, -1.093318, 0.076084, -0.218343306, -1.013838812 };
3436    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3437    {
3438      int i;
3439      for (i = 0; i < 6; i++) {
3440        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1961) real");
3441        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1961) imag");
3442      };
3443    };
3444   };
3445
3446
3447   {
3448    int order = 102;
3449    int side = 142;
3450    int uplo = 121;
3451    int trans = 112;
3452    int diag = 131;
3453    int M = 2;
3454    int N = 3;
3455    double alpha[2] = {-1, 0};
3456    double A[] = { 0.691, 0.808, -0.178, 0.489, 0.159, -0.646, -0.692, -0.968, -0.146, -0.281, -0.385, 0.773, 0.704, 0.782, 0.551, -0.727, 0.669, 0.858 };
3457    int lda = 3;
3458    double B[] = { -0.657, -0.69, -0.051, 0.28, -0.846, 0.304, 0.052, 0.543, 0.613, -0.98, 0.983, -0.484 };
3459    int ldb = 2;
3460    double B_expected[] = { 2.42007211075, -0.148130095453, 4.93683906416, -0.804178199722, 1.76852672271, 0.633536755193, 4.41638755104, -0.0400468884046, 0.363887727302, 0.998182854971, -0.204739276437, 0.986048279795 };
3461    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3462    {
3463      int i;
3464      for (i = 0; i < 6; i++) {
3465        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1962) real");
3466        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1962) imag");
3467      };
3468    };
3469   };
3470
3471
3472   {
3473    int order = 102;
3474    int side = 142;
3475    int uplo = 121;
3476    int trans = 112;
3477    int diag = 132;
3478    int M = 2;
3479    int N = 3;
3480    double alpha[2] = {-1, 0};
3481    double A[] = { -0.244, -0.925, -0.539, 0.422, 0.285, -0.954, -0.347, -0.255, -0.616, -0.979, 0.631, -0.864, -0.053, -0.715, -0.749, -0.973, -0.409, -0.247 };
3482    int lda = 3;
3483    double B[] = { 0.922, -0.728, 0.588, -0.715, -0.92, -0.065, -0.583, 0.178, 0.996, 0.215, -0.614, -0.443 };
3484    int ldb = 2;
3485    double B_expected[] = { -0.416484258, -0.267425916, -0.851455486, 1.594186448, 0.383191, -1.065143, 0.611847, 0.751229, -0.996, -0.215, 0.614, 0.443 };
3486    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3487    {
3488      int i;
3489      for (i = 0; i < 6; i++) {
3490        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1963) real");
3491        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1963) imag");
3492      };
3493    };
3494   };
3495
3496
3497   {
3498    int order = 102;
3499    int side = 142;
3500    int uplo = 122;
3501    int trans = 112;
3502    int diag = 131;
3503    int M = 2;
3504    int N = 3;
3505    double alpha[2] = {-1, 0};
3506    double A[] = { 0.992, 0.172, -0.646, 0.067, -0.823, -0.013, -0.55, -0.438, -0.44, -0.302, 0.99, -0.373, 0.513, -0.106, -0.591, -0.504, 0.929, -0.318 };
3507    int lda = 3;
3508    double B[] = { 0.467, 0.227, 0.988, -0.709, -0.272, -0.601, 0.719, -0.133, 0.203, 0.937, -0.382, -0.334 };
3509    int ldb = 2;
3510    double B_expected[] = { -0.495544804508, -0.142909570186, -0.846593689328, 0.861506163875, -0.485462670276, -0.898345893497, 1.07522946065, -2.43403194583, 0.315527055267, -0.271726799352, -1.73234815305, 3.5434654009 };
3511    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3512    {
3513      int i;
3514      for (i = 0; i < 6; i++) {
3515        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1964) real");
3516        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1964) imag");
3517      };
3518    };
3519   };
3520
3521
3522   {
3523    int order = 102;
3524    int side = 142;
3525    int uplo = 122;
3526    int trans = 112;
3527    int diag = 132;
3528    int M = 2;
3529    int N = 3;
3530    double alpha[2] = {-1, 0};
3531    double A[] = { -0.692, -0.245, -0.874, 0.77, 0.07, 0.01, 0.018, -0.42, -0.405, -0.387, 0.888, -0.912, -0.81, 0.314, 0.66, -0.895, -0.556, 0.157 };
3532    int lda = 3;
3533    double B[] = { -0.801, 0.542, 0.699, 0.574, -0.56, 0.043, 0.742, -0.331, -0.614, 0.776, -0.335, 0.131 };
3534    int ldb = 2;
3535    double B_expected[] = { 0.801, -0.542, -0.699, -0.574, 0.842734, -1.133478, -1.794906, 0.367554, 0.837894144, 1.029031872, 1.63685728, -2.047172224 };
3536    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3537    {
3538      int i;
3539      for (i = 0; i < 6; i++) {
3540        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1965) real");
3541        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1965) imag");
3542      };
3543    };
3544   };
3545
3546
3547   {
3548    int order = 101;
3549    int side = 141;
3550    int uplo = 121;
3551    int trans = 113;
3552    int diag = 131;
3553    int M = 2;
3554    int N = 3;
3555    double alpha[2] = {0, 0.1};
3556    double A[] = { -0.035, -0.456, 0.152, 0.976, 0.687, -0.527, -0.571, 0.832 };
3557    int lda = 2;
3558    double B[] = { -0.868, 0.033, -0.131, -0.936, 0.993, 0.104, -0.684, 0.851, 0.523, 0.836, -0.205, 0.319 };
3559    int ldb = 3;
3560    double B_expected[] = { -0.188683836853, 0.0217191541444, -0.044222393276, -0.201868895253, 0.218228063549, 0.00605705652583, 0.252579293874, 0.0800538768738, -0.099911150161, 0.0758372341381, -0.116723296822, -0.16542230206 };
3561    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3562    {
3563      int i;
3564      for (i = 0; i < 6; i++) {
3565        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1966) real");
3566        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1966) imag");
3567      };
3568    };
3569   };
3570
3571
3572   {
3573    int order = 101;
3574    int side = 141;
3575    int uplo = 121;
3576    int trans = 113;
3577    int diag = 132;
3578    int M = 2;
3579    int N = 3;
3580    double alpha[2] = {0, 0.1};
3581    double A[] = { -0.481, -0.442, 0.69, 0.415, 0.983, -0.466, 0.503, -0.147 };
3582    int lda = 2;
3583    double B[] = { -0.287, -0.777, -0.187, 0.061, 0.631, 0.797, 0.833, -0.49, -0.188, 0.386, -0.904, -0.793 };
3584    int ldb = 3;
3585    double B_expected[] = { 0.0777, -0.0287, -0.0061, -0.0187, -0.0797, 0.0631, 0.0072975, 0.1353485, -0.0266305, -0.0084285, 0.1081065, -0.1670145 };
3586    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3587    {
3588      int i;
3589      for (i = 0; i < 6; i++) {
3590        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1967) real");
3591        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1967) imag");
3592      };
3593    };
3594   };
3595
3596
3597   {
3598    int order = 101;
3599    int side = 141;
3600    int uplo = 122;
3601    int trans = 113;
3602    int diag = 131;
3603    int M = 2;
3604    int N = 3;
3605    double alpha[2] = {0, 0.1};
3606    double A[] = { -0.286, 0.025, -0.111, 0.724, -0.973, -0.071, 0.527, -0.334 };
3607    int lda = 2;
3608    double B[] = { -0.381, -0.131, 0.33, 0.09, 0.35, 0.062, -0.874, 0.252, 0.924, 0.251, 0.559, -0.619 };
3609    int ldb = 3;
3610    double B_expected[] = { 0.38447496828, 0.401499279514, -0.210140860451, -0.584596680596, -0.443343106286, -0.127686958741, -0.109102585509, -0.096697792106, 0.045298174859, 0.146623168116, 0.131759250934, 0.0225662432408 };
3611    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3612    {
3613      int i;
3614      for (i = 0; i < 6; i++) {
3615        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1968) real");
3616        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1968) imag");
3617      };
3618    };
3619   };
3620
3621
3622   {
3623    int order = 101;
3624    int side = 141;
3625    int uplo = 122;
3626    int trans = 113;
3627    int diag = 132;
3628    int M = 2;
3629    int N = 3;
3630    double alpha[2] = {0, 0.1};
3631    double A[] = { -0.862, -0.003, 0.975, 0.364, -0.996, 0.909, -0.316, -0.816 };
3632    int lda = 2;
3633    double B[] = { 0.167, 0.961, 0.116, 0.675, 0.086, 0.259, -0.483, 0.898, 0.434, 0.723, 0.505, 0.042 };
3634    int ldb = 3;
3635    double B_expected[] = { -0.1416361, -0.113035, -0.1789614, -0.0108943, -0.0759877, 0.0550802, -0.0898, -0.0483, -0.0723, 0.0434, -0.0042, 0.0505 };
3636    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3637    {
3638      int i;
3639      for (i = 0; i < 6; i++) {
3640        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1969) real");
3641        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1969) imag");
3642      };
3643    };
3644   };
3645
3646
3647   {
3648    int order = 102;
3649    int side = 141;
3650    int uplo = 121;
3651    int trans = 113;
3652    int diag = 131;
3653    int M = 2;
3654    int N = 3;
3655    double alpha[2] = {0, 0.1};
3656    double A[] = { -0.826, -0.025, 0.638, -0.183, -0.184, 0.806, 0.131, 0.764 };
3657    int lda = 2;
3658    double B[] = { -0.038, 0.14, -0.31, -0.494, -0.974, -0.396, -0.217, 0.519, -0.656, -0.737, 0.383, -0.03 };
3659    int ldb = 2;
3660    double B_expected[] = { 0.0167945280502, 0.00510879322186, 0.0315562985639, 0.0579039669012, -0.0514636821443, 0.116360058046, 0.0192833017545, -0.206389577002, -0.0915450409357, 0.0766481525141, 0.0107002286761, -0.100817314679 };
3661    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3662    {
3663      int i;
3664      for (i = 0; i < 6; i++) {
3665        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1970) real");
3666        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1970) imag");
3667      };
3668    };
3669   };
3670
3671
3672   {
3673    int order = 102;
3674    int side = 141;
3675    int uplo = 121;
3676    int trans = 113;
3677    int diag = 132;
3678    int M = 2;
3679    int N = 3;
3680    double alpha[2] = {0, 0.1};
3681    double A[] = { 0.282, -0.433, -0.793, -0.008, -0.999, 0.377, -0.979, 0.421 };
3682    int lda = 2;
3683    double B[] = { 0.622, -0.722, 0.605, -0.877, 0.935, -0.906, 0.719, -0.607, 0.022, -0.326, -0.905, 0.323 };
3684    int ldb = 2;
3685    double B_expected[] = { 0.0722, 0.0622, 0.1363784, 0.1498572, 0.0906, 0.0935, 0.1159599, 0.1994627, 0.0326, 0.0022, -0.000562, -0.076012 };
3686    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3687    {
3688      int i;
3689      for (i = 0; i < 6; i++) {
3690        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1971) real");
3691        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1971) imag");
3692      };
3693    };
3694   };
3695
3696
3697   {
3698    int order = 102;
3699    int side = 141;
3700    int uplo = 122;
3701    int trans = 113;
3702    int diag = 131;
3703    int M = 2;
3704    int N = 3;
3705    double alpha[2] = {0, 0.1};
3706    double A[] = { 0.934, 0.007, -0.958, 0.434, 0.263, 0.776, 0.097, 0.83 };
3707    int lda = 2;
3708    double B[] = { -0.405, 0.251, 0.13, 0.388, -0.664, -0.732, -0.779, -0.5, 0.775, -0.299, -0.45, 0.923 };
3709    int ldb = 2;
3710    double B_expected[] = { -0.026920633021, -0.0986978374343, -0.020841203536, -0.0443113292253, 0.157683298836, 0.0261984465224, 0.099536165222, 0.0486084240644, 0.127725373746, -0.0161073528761, 0.0406652355905, -0.115957262473 };
3711    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3712    {
3713      int i;
3714      for (i = 0; i < 6; i++) {
3715        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1972) real");
3716        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1972) imag");
3717      };
3718    };
3719   };
3720
3721
3722   {
3723    int order = 102;
3724    int side = 141;
3725    int uplo = 122;
3726    int trans = 113;
3727    int diag = 132;
3728    int M = 2;
3729    int N = 3;
3730    double alpha[2] = {0, 0.1};
3731    double A[] = { -0.169, -0.768, -0.529, 0.236, -0.506, 0.691, -0.786, -0.36 };
3732    int lda = 2;
3733    double B[] = { 0.289, -0.985, 0.931, 0.652, -0.861, -0.51, -0.753, -0.542, -0.822, 0.174, 0.799, 0.8 };
3734    int ldb = 2;
3735    double B_expected[] = { 0.0420376, 0.0627627, -0.0652, 0.0931, 0.0974426, -0.1131425, 0.0542, -0.0753, -0.0785764, -0.0588129, -0.08, 0.0799 };
3736    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3737    {
3738      int i;
3739      for (i = 0; i < 6; i++) {
3740        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1973) real");
3741        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1973) imag");
3742      };
3743    };
3744   };
3745
3746
3747   {
3748    int order = 101;
3749    int side = 142;
3750    int uplo = 121;
3751    int trans = 113;
3752    int diag = 131;
3753    int M = 2;
3754    int N = 3;
3755    double alpha[2] = {0, 0.1};
3756    double A[] = { 0.834, 0.53, 0.278, 0.293, 0.66, 0.497, -0.664, 0.429, -0.294, -0.661, 0.52, -0.247, 0.392, -0.227, 0.209, -0.902, 0.843, 0.37 };
3757    int lda = 3;
3758    double B[] = { -0.738, 0.166, 0.721, -0.541, -0.963, -0.832, -0.376, -0.718, 0.765, -0.547, 0.451, -0.581 };
3759    int ldb = 3;
3760    double B_expected[] = { -0.115188282202, -0.000411685478887, 0.105497263516, -0.0083759187965, 0.124793492766, -0.0594619308146, 0.0499107469, -0.0152598288542, 0.00927285309719, -0.0831454824908, 0.0380996260983, 0.0702216627003 };
3761    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3762    {
3763      int i;
3764      for (i = 0; i < 6; i++) {
3765        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1974) real");
3766        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1974) imag");
3767      };
3768    };
3769   };
3770
3771
3772   {
3773    int order = 101;
3774    int side = 142;
3775    int uplo = 121;
3776    int trans = 113;
3777    int diag = 132;
3778    int M = 2;
3779    int N = 3;
3780    double alpha[2] = {0, 0.1};
3781    double A[] = { 0.531, -0.691, 0.801, 0.437, 0.402, 0.788, 0.824, 0.599, -0.362, 0.076, 0.192, 0.229, -0.259, -0.279, 0.79, -0.797, 0.728, 0.397 };
3782    int lda = 3;
3783    double B[] = { -0.049, 0.642, 0.36, 0.428, 0.523, -0.612, 0.459, -0.664, 0.328, 0.513, -0.225, 0.273 };
3784    int ldb = 3;
3785    double B_expected[] = { -0.0941948813, -0.0387898759, -0.0665271, 0.0399732, 0.0612, 0.0523, 0.1143807788, -0.0091687866, -0.0409059, 0.0308683, -0.0273, -0.0225 };
3786    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3787    {
3788      int i;
3789      for (i = 0; i < 6; i++) {
3790        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1975) real");
3791        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1975) imag");
3792      };
3793    };
3794   };
3795
3796
3797   {
3798    int order = 101;
3799    int side = 142;
3800    int uplo = 122;
3801    int trans = 113;
3802    int diag = 131;
3803    int M = 2;
3804    int N = 3;
3805    double alpha[2] = {0, 0.1};
3806    double A[] = { 0.169, -0.092, -0.13, 0.001, 0.573, 0.256, 0.632, -0.09, -0.942, 0.948, 0.595, -0.337, 0.01, -0.786, 0.944, 0.906, -0.832, -0.566 };
3807    int lda = 3;
3808    double B[] = { -0.461, -0.112, 0.674, -0.268, -0.286, -0.657, 0.329, 0.91, 0.73, 0.488, -0.363, -0.01 };
3809    int ldb = 3;
3810    double B_expected[] = { -0.0634274139095, -0.238252532073, -0.142693434208, -0.0938542376785, -0.0907100858097, -0.0412217911039, -0.333617825793, 0.376288993923, -0.0317846476268, 0.175075250306, -0.125200687799, -0.118937960805 };
3811    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3812    {
3813      int i;
3814      for (i = 0; i < 6; i++) {
3815        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1976) real");
3816        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1976) imag");
3817      };
3818    };
3819   };
3820
3821
3822   {
3823    int order = 101;
3824    int side = 142;
3825    int uplo = 122;
3826    int trans = 113;
3827    int diag = 132;
3828    int M = 2;
3829    int N = 3;
3830    double alpha[2] = {0, 0.1};
3831    double A[] = { -0.53, 0.141, 0.235, 0.474, -0.964, -0.441, 0.197, -0.703, 0.942, 0.98, 0.741, 0.499, -0.738, 0.234, -0.27, -0.158, 0.804, -0.878 };
3832    int lda = 3;
3833    double B[] = { 0.46, -0.508, 0.918, -0.516, 0.012, -0.451, -0.676, 0.551, -0.38, 0.053, 0.645, 0.785 };
3834    int ldb = 3;
3835    double B_expected[] = { 0.0508, 0.046, 0.0739304, 0.0470256, 0.0992176528, 0.0480511088, -0.0551, -0.0676, -0.0419681, 0.0140525, -0.112456492, 0.0121429348 };
3836    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3837    {
3838      int i;
3839      for (i = 0; i < 6; i++) {
3840        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1977) real");
3841        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1977) imag");
3842      };
3843    };
3844   };
3845
3846
3847   {
3848    int order = 102;
3849    int side = 142;
3850    int uplo = 121;
3851    int trans = 113;
3852    int diag = 131;
3853    int M = 2;
3854    int N = 3;
3855    double alpha[2] = {0, 0.1};
3856    double A[] = { 0.286, 0.548, 0.637, -0.856, -0.739, 0.307, -0.049, -0.342, -0.39, 0.618, -0.757, -0.453, -0.533, 0.131, 0.431, 0.087, -0.776, -0.439 };
3857    int lda = 3;
3858    double B[] = { 0.968, 0.032, 0.013, 0.684, -0.485, 0.613, 0.316, 0.812, -0.459, 0.34, -0.268, -0.565 };
3859    int ldb = 2;
3860    double B_expected[] = { -0.126374952238, 0.0484874156039, -0.0755178690743, -0.200973083054, 0.138328459491, -0.0263170966956, 0.00492064241274, -0.0787874374991, 0.00784239970713, 0.0635860998343, -0.0699577429529, -0.00504052726328 };
3861    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3862    {
3863      int i;
3864      for (i = 0; i < 6; i++) {
3865        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1978) real");
3866        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1978) imag");
3867      };
3868    };
3869   };
3870
3871
3872   {
3873    int order = 102;
3874    int side = 142;
3875    int uplo = 121;
3876    int trans = 113;
3877    int diag = 132;
3878    int M = 2;
3879    int N = 3;
3880    double alpha[2] = {0, 0.1};
3881    double A[] = { -0.911, 0.645, -0.525, 0.045, -0.654, -0.896, -0.39, 0.419, 0.867, 0.561, -0.842, -0.835, -0.249, -0.384, 0.575, -0.41, 0.105, -0.282 };
3882    int lda = 3;
3883    double B[] = { 0.777, 0.361, 0.535, 0.441, 0.508, 0.439, -0.347, 0.131, -0.874, 0.646, 0.917, 0.746 };
3884    int ldb = 2;
3885    double B_expected[] = { -0.155796389, 0.112639999, 0.0226368685, 0.111048763, -0.042589, 0.127541, 0.067392, -0.0568415, -0.0646, -0.0874, -0.0746, 0.0917 };
3886    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3887    {
3888      int i;
3889      for (i = 0; i < 6; i++) {
3890        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1979) real");
3891        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1979) imag");
3892      };
3893    };
3894   };
3895
3896
3897   {
3898    int order = 102;
3899    int side = 142;
3900    int uplo = 122;
3901    int trans = 113;
3902    int diag = 131;
3903    int M = 2;
3904    int N = 3;
3905    double alpha[2] = {0, 0.1};
3906    double A[] = { -0.519, 0.318, -0.318, 0.73, 0.721, 0.302, -0.604, 0.721, 0.387, 0.673, -0.549, -0.136, 0.101, 0.676, -0.064, -0.659, -0.141, 0.991 };
3907    int lda = 3;
3908    double B[] = { -0.856, -0.128, 0.721, -0.511, 0.175, -0.341, 0.832, -0.662, 0.652, -0.939, -0.775, -0.899 };
3909    int ldb = 2;
3910    double B_expected[] = { 0.055542329649, 0.130900846188, -0.133470180979, -0.0571415846795, -0.13942012508, 0.0150972236507, 0.0782230770838, 0.0522994181773, -0.00621452256957, -0.0615971232698, 0.0222285648871, 0.258910370231 };
3911    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3912    {
3913      int i;
3914      for (i = 0; i < 6; i++) {
3915        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1980) real");
3916        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1980) imag");
3917      };
3918    };
3919   };
3920
3921
3922   {
3923    int order = 102;
3924    int side = 142;
3925    int uplo = 122;
3926    int trans = 113;
3927    int diag = 132;
3928    int M = 2;
3929    int N = 3;
3930    double alpha[2] = {0, 0.1};
3931    double A[] = { -0.092, -0.392, 0.108, -0.918, 0.505, -0.974, 0.213, 0.97, -0.465, 0.604, -0.737, -0.578, -0.051, -0.43, 0.066, -0.934, -0.347, 0.157 };
3932    int lda = 3;
3933    double B[] = { -0.489, 0.673, -0.232, 0.668, -0.396, -0.569, 0.763, 0.581, 0.117, -0.249, 0.272, -0.832 };
3934    int ldb = 2;
3935    double B_expected[] = { -0.0673, -0.0489, -0.0668, -0.0232, 0.0192782, 0.0274626, -0.0721832, 0.140128, 0.0413393162, 0.1110418366, 0.1221321656, 0.2489754256 };
3936    cblas_ztrsm(order, side, uplo, trans, diag, M, N, alpha, A, lda, B, ldb);
3937    {
3938      int i;
3939      for (i = 0; i < 6; i++) {
3940        gsl_test_rel(B[2*i], B_expected[2*i], dbleps, "ztrsm(case 1981) real");
3941        gsl_test_rel(B[2*i+1], B_expected[2*i+1], dbleps, "ztrsm(case 1981) imag");
3942      };
3943    };
3944   };
3945
3946
3947 }