Added MACS source
[htsworkflow.git] / htswanalysis / MACS / lib / gsl / gsl-1.11 / cblas / test_herk.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_herk (void) {
10 const double flteps = 1e-4, dbleps = 1e-6;
11   {
12    int order = 101;
13    int uplo = 121;
14    int trans = 111;
15    int N = 2;
16    int K = 1;
17    float alpha = 0.0f;
18    float beta = 0.1f;
19    float A[] = { -0.617f, 0.179f, -0.626f, 0.334f };
20    int lda = 1;
21    float C[] = { 0.346f, -0.903f, 0.022f, -0.839f, -0.715f, 0.049f, -0.338f, 0.149f };
22    int ldc = 2;
23    float C_expected[] = { 0.0346f, 0.0f, 0.0022f, -0.0839f, -0.715f, 0.049f, -0.0338f, 0.0f };
24    cblas_cherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
25    {
26      int i;
27      for (i = 0; i < 4; i++) {
28        gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cherk(case 1598) real");
29        gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cherk(case 1598) imag");
30      };
31    };
32   };
33
34
35   {
36    int order = 102;
37    int uplo = 121;
38    int trans = 111;
39    int N = 2;
40    int K = 1;
41    float alpha = 0.0f;
42    float beta = 0.1f;
43    float A[] = { -0.356f, -0.308f, 0.493f, -0.351f };
44    int lda = 2;
45    float C[] = { -0.898f, -0.905f, 0.002f, -0.219f, 0.881f, 0.879f, 0.275f, -0.351f };
46    int ldc = 2;
47    float C_expected[] = { -0.0898f, 0.0f, 0.002f, -0.219f, 0.0881f, 0.0879f, 0.0275f, 0.0f };
48    cblas_cherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
49    {
50      int i;
51      for (i = 0; i < 4; i++) {
52        gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cherk(case 1599) real");
53        gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cherk(case 1599) imag");
54      };
55    };
56   };
57
58
59   {
60    int order = 101;
61    int uplo = 121;
62    int trans = 113;
63    int N = 2;
64    int K = 1;
65    float alpha = 0.1f;
66    float beta = 1.0f;
67    float A[] = { -0.103f, -0.951f, -0.601f, -0.041f };
68    int lda = 2;
69    float C[] = { -0.918f, -0.018f, 0.991f, -0.789f, -0.698f, -0.067f, 0.956f, -0.599f };
70    int ldc = 2;
71    float C_expected[] = { -0.826499f, 0.0f, 1.00109f, -0.845733f, -0.698f, -0.067f, 0.992288f, 0.0f };
72    cblas_cherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
73    {
74      int i;
75      for (i = 0; i < 4; i++) {
76        gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cherk(case 1600) real");
77        gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cherk(case 1600) imag");
78      };
79    };
80   };
81
82
83   {
84    int order = 102;
85    int uplo = 121;
86    int trans = 113;
87    int N = 2;
88    int K = 1;
89    float alpha = 0.1f;
90    float beta = 1.0f;
91    float A[] = { -0.237f, 0.925f, -0.904f, -0.091f };
92    int lda = 1;
93    float C[] = { -0.572f, 0.915f, 0.398f, 0.222f, 0.016f, 0.288f, -0.078f, -0.507f };
94    int ldc = 2;
95    float C_expected[] = { -0.480821f, 0.0f, 0.398f, 0.222f, 0.0290073f, 0.373777f, 0.0045497f, 0.0f };
96    cblas_cherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
97    {
98      int i;
99      for (i = 0; i < 4; i++) {
100        gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cherk(case 1601) real");
101        gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cherk(case 1601) imag");
102      };
103    };
104   };
105
106
107   {
108    int order = 101;
109    int uplo = 122;
110    int trans = 111;
111    int N = 2;
112    int K = 1;
113    float alpha = -0.3f;
114    float beta = 0.0f;
115    float A[] = { 0.963f, -0.23f, -0.435f, 0.289f };
116    int lda = 1;
117    float C[] = { 0.282f, -0.272f, -0.516f, -0.594f, -0.001f, 0.155f, -0.39f, -0.354f };
118    int ldc = 2;
119    float C_expected[] = { -0.294081f, 0.0f, -0.516f, -0.594f, 0.145613f, -0.0534771f, -0.0818238f, 0.0f };
120    cblas_cherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
121    {
122      int i;
123      for (i = 0; i < 4; i++) {
124        gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cherk(case 1602) real");
125        gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cherk(case 1602) imag");
126      };
127    };
128   };
129
130
131   {
132    int order = 102;
133    int uplo = 122;
134    int trans = 111;
135    int N = 2;
136    int K = 1;
137    float alpha = -0.3f;
138    float beta = 0.0f;
139    float A[] = { 0.674f, 0.1f, -0.098f, 0.552f };
140    int lda = 2;
141    float C[] = { 0.089f, -0.523f, -0.551f, 0.618f, 0.67f, 0.247f, 0.975f, -0.714f };
142    int ldc = 2;
143    float C_expected[] = { -0.139283f, 0.0f, 0.0032556f, -0.114554f, 0.67f, 0.247f, -0.0942924f, 0.0f };
144    cblas_cherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
145    {
146      int i;
147      for (i = 0; i < 4; i++) {
148        gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cherk(case 1603) real");
149        gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cherk(case 1603) imag");
150      };
151    };
152   };
153
154
155   {
156    int order = 101;
157    int uplo = 122;
158    int trans = 113;
159    int N = 2;
160    int K = 1;
161    float alpha = 1.0f;
162    float beta = 0.1f;
163    float A[] = { 0.033f, -0.864f, 0.168f, 0.524f };
164    int lda = 2;
165    float C[] = { 0.788f, 0.016f, -0.436f, 0.749f, -0.89f, -0.87f, 0.421f, -0.203f };
166    int ldc = 2;
167    float C_expected[] = { 0.826385f, 0.0f, -0.436f, 0.749f, -0.536192f, -0.249444f, 0.3449f, 0.0f };
168    cblas_cherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
169    {
170      int i;
171      for (i = 0; i < 4; i++) {
172        gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cherk(case 1604) real");
173        gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cherk(case 1604) imag");
174      };
175    };
176   };
177
178
179   {
180    int order = 102;
181    int uplo = 122;
182    int trans = 113;
183    int N = 2;
184    int K = 1;
185    float alpha = 1.0f;
186    float beta = 0.1f;
187    float A[] = { 0.957f, -0.079f, 0.935f, 0.232f };
188    int lda = 1;
189    float C[] = { -0.744f, -0.061f, 0.195f, -0.574f, 0.551f, 0.478f, -0.337f, 0.1f };
190    int ldc = 2;
191    float C_expected[] = { 0.84769f, 0.0f, 0.895967f, -0.353289f, 0.551f, 0.478f, 0.894349f, 0.0f };
192    cblas_cherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
193    {
194      int i;
195      for (i = 0; i < 4; i++) {
196        gsl_test_rel(C[2*i], C_expected[2*i], flteps, "cherk(case 1605) real");
197        gsl_test_rel(C[2*i+1], C_expected[2*i+1], flteps, "cherk(case 1605) imag");
198      };
199    };
200   };
201
202
203   {
204    int order = 101;
205    int uplo = 121;
206    int trans = 111;
207    int N = 2;
208    int K = 1;
209    double alpha = 1;
210    double beta = 1;
211    double A[] = { 0.934, 0.664, 0.426, 0.263 };
212    int lda = 1;
213    double C[] = { 0.251, -0.97, 0.76, -0.349, 0.152, -0.899, -0.17, 0.707 };
214    int ldc = 2;
215    double C_expected[] = { 1.564252, 0.0, 1.332516, -0.311778, 0.152, -0.899, 0.080645, 0.0 };
216    cblas_zherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
217    {
218      int i;
219      for (i = 0; i < 4; i++) {
220        gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zherk(case 1606) real");
221        gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zherk(case 1606) imag");
222      };
223    };
224   };
225
226
227   {
228    int order = 102;
229    int uplo = 121;
230    int trans = 111;
231    int N = 2;
232    int K = 1;
233    double alpha = 1;
234    double beta = 1;
235    double A[] = { 0.16, 0.464, -0.623, 0.776 };
236    int lda = 2;
237    double C[] = { 0.771, -0.449, 0.776, 0.112, -0.134, 0.317, 0.547, -0.551 };
238    int ldc = 2;
239    double C_expected[] = { 1.011896, 0.0, 0.776, 0.112, 0.126384, -0.096232, 1.537305, 0.0 };
240    cblas_zherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
241    {
242      int i;
243      for (i = 0; i < 4; i++) {
244        gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zherk(case 1607) real");
245        gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zherk(case 1607) imag");
246      };
247    };
248   };
249
250
251   {
252    int order = 101;
253    int uplo = 121;
254    int trans = 113;
255    int N = 2;
256    int K = 1;
257    double alpha = 0.1;
258    double beta = 1;
259    double A[] = { 0.787, 0.057, -0.49, 0.47 };
260    int lda = 2;
261    double C[] = { -0.758, 0.912, 0.992, -0.356, 0.584, 0.806, 0.965, 0.674 };
262    int ldc = 2;
263    double C_expected[] = { -0.6957382, 0.0, 0.956116, -0.316218, 0.584, 0.806, 1.0111, 0.0 };
264    cblas_zherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
265    {
266      int i;
267      for (i = 0; i < 4; i++) {
268        gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zherk(case 1608) real");
269        gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zherk(case 1608) imag");
270      };
271    };
272   };
273
274
275   {
276    int order = 102;
277    int uplo = 121;
278    int trans = 113;
279    int N = 2;
280    int K = 1;
281    double alpha = 0.1;
282    double beta = 1;
283    double A[] = { 0.961, -0.384, 0.165, 0.395 };
284    int lda = 1;
285    double C[] = { -0.186, 0.404, -0.873, 0.09, -0.451, -0.972, -0.203, -0.304 };
286    int ldc = 2;
287    double C_expected[] = { -0.0789023, 0.0, -0.873, 0.09, -0.4503115, -0.9277045, -0.184675, 0.0 };
288    cblas_zherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
289    {
290      int i;
291      for (i = 0; i < 4; i++) {
292        gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zherk(case 1609) real");
293        gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zherk(case 1609) imag");
294      };
295    };
296   };
297
298
299   {
300    int order = 101;
301    int uplo = 122;
302    int trans = 111;
303    int N = 2;
304    int K = 1;
305    double alpha = 0;
306    double beta = -0.3;
307    double A[] = { 0.04, 0.608, 0.21, -0.44 };
308    int lda = 1;
309    double C[] = { 0.285, -0.943, 0.581, -0.56, 0.112, 0.529, 0.16, -0.913 };
310    int ldc = 2;
311    double C_expected[] = { -0.0855, 0.0, 0.581, -0.56, -0.0336, -0.1587, -0.048, 0.0 };
312    cblas_zherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
313    {
314      int i;
315      for (i = 0; i < 4; i++) {
316        gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zherk(case 1610) real");
317        gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zherk(case 1610) imag");
318      };
319    };
320   };
321
322
323   {
324    int order = 102;
325    int uplo = 122;
326    int trans = 111;
327    int N = 2;
328    int K = 1;
329    double alpha = 0;
330    double beta = -0.3;
331    double A[] = { -0.984, -0.398, -0.379, 0.919 };
332    int lda = 2;
333    double C[] = { -0.44, -0.087, 0.156, -0.945, -0.943, -0.355, 0.577, 0.053 };
334    int ldc = 2;
335    double C_expected[] = { 0.132, 0.0, -0.0468, 0.2835, -0.943, -0.355, -0.1731, 0.0 };
336    cblas_zherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
337    {
338      int i;
339      for (i = 0; i < 4; i++) {
340        gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zherk(case 1611) real");
341        gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zherk(case 1611) imag");
342      };
343    };
344   };
345
346
347   {
348    int order = 101;
349    int uplo = 122;
350    int trans = 113;
351    int N = 2;
352    int K = 1;
353    double alpha = 1;
354    double beta = -1;
355    double A[] = { 0.269, -0.428, -0.029, 0.964 };
356    int lda = 2;
357    double C[] = { 0.473, -0.932, -0.689, -0.072, -0.952, -0.862, 0.001, 0.282 };
358    int ldc = 2;
359    double C_expected[] = { -0.217455, 0.0, -0.689, -0.072, 0.531607, 0.615096, 0.929137, 0.0 };
360    cblas_zherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
361    {
362      int i;
363      for (i = 0; i < 4; i++) {
364        gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zherk(case 1612) real");
365        gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zherk(case 1612) imag");
366      };
367    };
368   };
369
370
371   {
372    int order = 102;
373    int uplo = 122;
374    int trans = 113;
375    int N = 2;
376    int K = 1;
377    double alpha = 1;
378    double beta = -1;
379    double A[] = { -0.303, -0.037, -0.411, -0.243 };
380    int lda = 1;
381    double C[] = { 0.652, -0.227, -0.849, 0.87, -0.051, -0.535, 0.418, -0.681 };
382    int ldc = 2;
383    double C_expected[] = { -0.558822, 0.0, 0.982524, -0.928422, -0.051, -0.535, -0.19003, 0.0 };
384    cblas_zherk(order, uplo, trans, N, K, alpha, A, lda, beta, C, ldc);
385    {
386      int i;
387      for (i = 0; i < 4; i++) {
388        gsl_test_rel(C[2*i], C_expected[2*i], dbleps, "zherk(case 1613) real");
389        gsl_test_rel(C[2*i+1], C_expected[2*i+1], dbleps, "zherk(case 1613) imag");
390      };
391    };
392   };
393
394
395 }