Added script front-end for primer-design code
[htsworkflow.git] / htswanalysis / MACS / lib / gsl / gsl-1.11 / cblas / test_hbmv.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_hbmv (void) {
10 const double flteps = 1e-4, dbleps = 1e-6;
11   {
12    int order = 101;
13    int uplo = 121;
14    float alpha[2] = {0.0f, 1.0f};
15    float beta[2] = {-0.3f, 0.1f};
16    int N = 3;
17    int k = 1;
18    int lda = 3;
19    float A[] = { 0.937f, -0.035f, 0.339f, 0.847f, 0.022f, 0.153f, -0.785f, 0.193f, -0.731f, -0.166f, -0.243f, -0.319f, 0.173f, -0.24f, 0.079f, -0.058f, 0.124f, 0.445f };
20    float X[] = { -0.093f, -0.103f, -0.537f, -0.151f, 0.094f, 0.954f };
21    int incX = -1;
22    float Y[] = { 0.029f, -0.391f, -0.256f, 0.031f, -0.478f, 0.098f };
23    int incY = -1;
24    float y_expected[] = { 0.02698f, 0.521724f, -0.379354f, 1.27743f, -0.25427f, -0.043268f };
25    cblas_chbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
26    {
27      int i;
28      for (i = 0; i < 3; i++) {
29        gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chbmv(case 1086) real");
30        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chbmv(case 1086) imag");
31      };
32    };
33   };
34
35
36   {
37    int order = 101;
38    int uplo = 121;
39    float alpha[2] = {0.0f, 1.0f};
40    float beta[2] = {-0.3f, 0.1f};
41    int N = 3;
42    int k = 1;
43    int lda = 3;
44    float A[] = { 0.937f, -0.035f, 0.339f, 0.847f, 0.022f, 0.153f, -0.785f, 0.193f, -0.731f, -0.166f, -0.243f, -0.319f, 0.173f, -0.24f, 0.079f, -0.058f, 0.124f, 0.445f };
45    float X[] = { -0.093f, -0.103f, -0.537f, -0.151f, 0.094f, 0.954f };
46    int incX = -1;
47    float Y[] = { 0.029f, -0.391f, -0.256f, 0.031f, -0.478f, 0.098f };
48    int incY = -1;
49    float y_expected[] = { 0.02698f, 0.521724f, -0.379354f, 1.27743f, -0.25427f, -0.043268f };
50    cblas_chbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
51    {
52      int i;
53      for (i = 0; i < 3; i++) {
54        gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chbmv(case 1087) real");
55        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chbmv(case 1087) imag");
56      };
57    };
58   };
59
60
61   {
62    int order = 101;
63    int uplo = 122;
64    float alpha[2] = {0.0f, 1.0f};
65    float beta[2] = {-0.3f, 0.1f};
66    int N = 3;
67    int k = 1;
68    int lda = 3;
69    float A[] = { 0.937f, -0.035f, 0.339f, 0.847f, 0.022f, 0.153f, -0.785f, 0.193f, -0.731f, -0.166f, -0.243f, -0.319f, 0.173f, -0.24f, 0.079f, -0.058f, 0.124f, 0.445f };
70    float X[] = { -0.093f, -0.103f, -0.537f, -0.151f, 0.094f, 0.954f };
71    int incX = -1;
72    float Y[] = { 0.029f, -0.391f, -0.256f, 0.031f, -0.478f, 0.098f };
73    int incY = -1;
74    float y_expected[] = { -0.06422f, -0.016288f, 0.734206f, 0.108366f, -0.411982f, 0.347068f };
75    cblas_chbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
76    {
77      int i;
78      for (i = 0; i < 3; i++) {
79        gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chbmv(case 1088) real");
80        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chbmv(case 1088) imag");
81      };
82    };
83   };
84
85
86   {
87    int order = 101;
88    int uplo = 122;
89    float alpha[2] = {0.0f, 1.0f};
90    float beta[2] = {-0.3f, 0.1f};
91    int N = 3;
92    int k = 1;
93    int lda = 3;
94    float A[] = { 0.937f, -0.035f, 0.339f, 0.847f, 0.022f, 0.153f, -0.785f, 0.193f, -0.731f, -0.166f, -0.243f, -0.319f, 0.173f, -0.24f, 0.079f, -0.058f, 0.124f, 0.445f };
95    float X[] = { -0.093f, -0.103f, -0.537f, -0.151f, 0.094f, 0.954f };
96    int incX = -1;
97    float Y[] = { 0.029f, -0.391f, -0.256f, 0.031f, -0.478f, 0.098f };
98    int incY = -1;
99    float y_expected[] = { -0.06422f, -0.016288f, 0.734206f, 0.108366f, -0.411982f, 0.347068f };
100    cblas_chbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
101    {
102      int i;
103      for (i = 0; i < 3; i++) {
104        gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chbmv(case 1089) real");
105        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chbmv(case 1089) imag");
106      };
107    };
108   };
109
110
111   {
112    int order = 102;
113    int uplo = 121;
114    float alpha[2] = {0.0f, 1.0f};
115    float beta[2] = {-0.3f, 0.1f};
116    int N = 3;
117    int k = 1;
118    int lda = 3;
119    float A[] = { 0.937f, -0.035f, 0.339f, 0.847f, 0.022f, 0.153f, -0.785f, 0.193f, -0.731f, -0.166f, -0.243f, -0.319f, 0.173f, -0.24f, 0.079f, -0.058f, 0.124f, 0.445f };
120    float X[] = { -0.093f, -0.103f, -0.537f, -0.151f, 0.094f, 0.954f };
121    int incX = -1;
122    float Y[] = { 0.029f, -0.391f, -0.256f, 0.031f, -0.478f, 0.098f };
123    int incY = -1;
124    float y_expected[] = { 0.19354f, 0.056192f, 0.72585f, 0.42717f, -0.2047f, 0.405354f };
125    cblas_chbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
126    {
127      int i;
128      for (i = 0; i < 3; i++) {
129        gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chbmv(case 1090) real");
130        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chbmv(case 1090) imag");
131      };
132    };
133   };
134
135
136   {
137    int order = 102;
138    int uplo = 121;
139    float alpha[2] = {0.0f, 1.0f};
140    float beta[2] = {-0.3f, 0.1f};
141    int N = 3;
142    int k = 1;
143    int lda = 3;
144    float A[] = { 0.937f, -0.035f, 0.339f, 0.847f, 0.022f, 0.153f, -0.785f, 0.193f, -0.731f, -0.166f, -0.243f, -0.319f, 0.173f, -0.24f, 0.079f, -0.058f, 0.124f, 0.445f };
145    float X[] = { -0.093f, -0.103f, -0.537f, -0.151f, 0.094f, 0.954f };
146    int incX = -1;
147    float Y[] = { 0.029f, -0.391f, -0.256f, 0.031f, -0.478f, 0.098f };
148    int incY = -1;
149    float y_expected[] = { 0.19354f, 0.056192f, 0.72585f, 0.42717f, -0.2047f, 0.405354f };
150    cblas_chbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
151    {
152      int i;
153      for (i = 0; i < 3; i++) {
154        gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chbmv(case 1091) real");
155        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chbmv(case 1091) imag");
156      };
157    };
158   };
159
160
161   {
162    int order = 102;
163    int uplo = 122;
164    float alpha[2] = {0.0f, 1.0f};
165    float beta[2] = {-0.3f, 0.1f};
166    int N = 3;
167    int k = 1;
168    int lda = 3;
169    float A[] = { 0.937f, -0.035f, 0.339f, 0.847f, 0.022f, 0.153f, -0.785f, 0.193f, -0.731f, -0.166f, -0.243f, -0.319f, 0.173f, -0.24f, 0.079f, -0.058f, 0.124f, 0.445f };
170    float X[] = { -0.093f, -0.103f, -0.537f, -0.151f, 0.094f, 0.954f };
171    int incX = -1;
172    float Y[] = { 0.029f, -0.391f, -0.256f, 0.031f, -0.478f, 0.098f };
173    int incY = -1;
174    float y_expected[] = { -0.151304f, 0.471592f, -0.507714f, -0.304446f, -1.16395f, -0.299062f };
175    cblas_chbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
176    {
177      int i;
178      for (i = 0; i < 3; i++) {
179        gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chbmv(case 1092) real");
180        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chbmv(case 1092) imag");
181      };
182    };
183   };
184
185
186   {
187    int order = 102;
188    int uplo = 122;
189    float alpha[2] = {0.0f, 1.0f};
190    float beta[2] = {-0.3f, 0.1f};
191    int N = 3;
192    int k = 1;
193    int lda = 3;
194    float A[] = { 0.937f, -0.035f, 0.339f, 0.847f, 0.022f, 0.153f, -0.785f, 0.193f, -0.731f, -0.166f, -0.243f, -0.319f, 0.173f, -0.24f, 0.079f, -0.058f, 0.124f, 0.445f };
195    float X[] = { -0.093f, -0.103f, -0.537f, -0.151f, 0.094f, 0.954f };
196    int incX = -1;
197    float Y[] = { 0.029f, -0.391f, -0.256f, 0.031f, -0.478f, 0.098f };
198    int incY = -1;
199    float y_expected[] = { -0.151304f, 0.471592f, -0.507714f, -0.304446f, -1.16395f, -0.299062f };
200    cblas_chbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
201    {
202      int i;
203      for (i = 0; i < 3; i++) {
204        gsl_test_rel(Y[2*i], y_expected[2*i], flteps, "chbmv(case 1093) real");
205        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], flteps, "chbmv(case 1093) imag");
206      };
207    };
208   };
209
210
211   {
212    int order = 101;
213    int uplo = 121;
214    double alpha[2] = {1, 0};
215    double beta[2] = {1, 0};
216    int N = 3;
217    int k = 1;
218    int lda = 3;
219    double A[] = { 0.662, 0.24, -0.311, -0.345, -0.782, 0.904, -0.842, 0.065, -0.168, -0.855, -0.692, 0.113, 0.009, -0.707, -0.981, 0.019, -0.687, 0.861 };
220    double X[] = { 0.873, -0.509, 0.398, 0.471, 0.214, 0.878 };
221    int incX = -1;
222    double Y[] = { -0.441, -0.781, 0.979, -0.911, 0.879, 0.807 };
223    int incY = -1;
224    double y_expected[] = { -0.902712, -0.524419, -0.307439, -2.167713, 1.059385, 1.104445 };
225    cblas_zhbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
226    {
227      int i;
228      for (i = 0; i < 3; i++) {
229        gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhbmv(case 1094) real");
230        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhbmv(case 1094) imag");
231      };
232    };
233   };
234
235
236   {
237    int order = 101;
238    int uplo = 121;
239    double alpha[2] = {1, 0};
240    double beta[2] = {1, 0};
241    int N = 3;
242    int k = 1;
243    int lda = 3;
244    double A[] = { 0.662, 0.24, -0.311, -0.345, -0.782, 0.904, -0.842, 0.065, -0.168, -0.855, -0.692, 0.113, 0.009, -0.707, -0.981, 0.019, -0.687, 0.861 };
245    double X[] = { 0.873, -0.509, 0.398, 0.471, 0.214, 0.878 };
246    int incX = -1;
247    double Y[] = { -0.441, -0.781, 0.979, -0.911, 0.879, 0.807 };
248    int incY = -1;
249    double y_expected[] = { -0.902712, -0.524419, -0.307439, -2.167713, 1.059385, 1.104445 };
250    cblas_zhbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
251    {
252      int i;
253      for (i = 0; i < 3; i++) {
254        gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhbmv(case 1095) real");
255        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhbmv(case 1095) imag");
256      };
257    };
258   };
259
260
261   {
262    int order = 101;
263    int uplo = 122;
264    double alpha[2] = {1, 0};
265    double beta[2] = {1, 0};
266    int N = 3;
267    int k = 1;
268    int lda = 3;
269    double A[] = { 0.662, 0.24, -0.311, -0.345, -0.782, 0.904, -0.842, 0.065, -0.168, -0.855, -0.692, 0.113, 0.009, -0.707, -0.981, 0.019, -0.687, 0.861 };
270    double X[] = { 0.873, -0.509, 0.398, 0.471, 0.214, 0.878 };
271    int incX = -1;
272    double Y[] = { -0.441, -0.781, 0.979, -0.911, 0.879, 0.807 };
273    int incY = -1;
274    double y_expected[] = { -0.960834, -0.558818, 1.042598, -1.102864, 0.507945, 0.11149 };
275    cblas_zhbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
276    {
277      int i;
278      for (i = 0; i < 3; i++) {
279        gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhbmv(case 1096) real");
280        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhbmv(case 1096) imag");
281      };
282    };
283   };
284
285
286   {
287    int order = 101;
288    int uplo = 122;
289    double alpha[2] = {1, 0};
290    double beta[2] = {1, 0};
291    int N = 3;
292    int k = 1;
293    int lda = 3;
294    double A[] = { 0.662, 0.24, -0.311, -0.345, -0.782, 0.904, -0.842, 0.065, -0.168, -0.855, -0.692, 0.113, 0.009, -0.707, -0.981, 0.019, -0.687, 0.861 };
295    double X[] = { 0.873, -0.509, 0.398, 0.471, 0.214, 0.878 };
296    int incX = -1;
297    double Y[] = { -0.441, -0.781, 0.979, -0.911, 0.879, 0.807 };
298    int incY = -1;
299    double y_expected[] = { -0.960834, -0.558818, 1.042598, -1.102864, 0.507945, 0.11149 };
300    cblas_zhbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
301    {
302      int i;
303      for (i = 0; i < 3; i++) {
304        gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhbmv(case 1097) real");
305        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhbmv(case 1097) imag");
306      };
307    };
308   };
309
310
311   {
312    int order = 102;
313    int uplo = 121;
314    double alpha[2] = {1, 0};
315    double beta[2] = {1, 0};
316    int N = 3;
317    int k = 1;
318    int lda = 3;
319    double A[] = { 0.662, 0.24, -0.311, -0.345, -0.782, 0.904, -0.842, 0.065, -0.168, -0.855, -0.692, 0.113, 0.009, -0.707, -0.981, 0.019, -0.687, 0.861 };
320    double X[] = { 0.873, -0.509, 0.398, 0.471, 0.214, 0.878 };
321    int incX = -1;
322    double Y[] = { -0.441, -0.781, 0.979, -0.911, 0.879, 0.807 };
323    int incY = -1;
324    double y_expected[] = { -1.626828, 0.003954, 0.437012, -2.365106, 0.446715, 0.16323 };
325    cblas_zhbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
326    {
327      int i;
328      for (i = 0; i < 3; i++) {
329        gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhbmv(case 1098) real");
330        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhbmv(case 1098) imag");
331      };
332    };
333   };
334
335
336   {
337    int order = 102;
338    int uplo = 121;
339    double alpha[2] = {1, 0};
340    double beta[2] = {1, 0};
341    int N = 3;
342    int k = 1;
343    int lda = 3;
344    double A[] = { 0.662, 0.24, -0.311, -0.345, -0.782, 0.904, -0.842, 0.065, -0.168, -0.855, -0.692, 0.113, 0.009, -0.707, -0.981, 0.019, -0.687, 0.861 };
345    double X[] = { 0.873, -0.509, 0.398, 0.471, 0.214, 0.878 };
346    int incX = -1;
347    double Y[] = { -0.441, -0.781, 0.979, -0.911, 0.879, 0.807 };
348    int incY = -1;
349    double y_expected[] = { -1.626828, 0.003954, 0.437012, -2.365106, 0.446715, 0.16323 };
350    cblas_zhbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
351    {
352      int i;
353      for (i = 0; i < 3; i++) {
354        gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhbmv(case 1099) real");
355        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhbmv(case 1099) imag");
356      };
357    };
358   };
359
360
361   {
362    int order = 102;
363    int uplo = 122;
364    double alpha[2] = {1, 0};
365    double beta[2] = {1, 0};
366    int N = 3;
367    int k = 1;
368    int lda = 3;
369    double A[] = { 0.662, 0.24, -0.311, -0.345, -0.782, 0.904, -0.842, 0.065, -0.168, -0.855, -0.692, 0.113, 0.009, -0.707, -0.981, 0.019, -0.687, 0.861 };
370    double X[] = { 0.873, -0.509, 0.398, 0.471, 0.214, 0.878 };
371    int incX = -1;
372    double Y[] = { -0.441, -0.781, 0.979, -0.911, 0.879, 0.807 };
373    int incY = -1;
374    double y_expected[] = { -0.097302, -1.204999, 1.168771, -0.822543, 0.734395, 1.379065 };
375    cblas_zhbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
376    {
377      int i;
378      for (i = 0; i < 3; i++) {
379        gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhbmv(case 1100) real");
380        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhbmv(case 1100) imag");
381      };
382    };
383   };
384
385
386   {
387    int order = 102;
388    int uplo = 122;
389    double alpha[2] = {1, 0};
390    double beta[2] = {1, 0};
391    int N = 3;
392    int k = 1;
393    int lda = 3;
394    double A[] = { 0.662, 0.24, -0.311, -0.345, -0.782, 0.904, -0.842, 0.065, -0.168, -0.855, -0.692, 0.113, 0.009, -0.707, -0.981, 0.019, -0.687, 0.861 };
395    double X[] = { 0.873, -0.509, 0.398, 0.471, 0.214, 0.878 };
396    int incX = -1;
397    double Y[] = { -0.441, -0.781, 0.979, -0.911, 0.879, 0.807 };
398    int incY = -1;
399    double y_expected[] = { -0.097302, -1.204999, 1.168771, -0.822543, 0.734395, 1.379065 };
400    cblas_zhbmv(order, uplo, N, k, alpha, A, lda, X, incX, beta, Y, incY);
401    {
402      int i;
403      for (i = 0; i < 3; i++) {
404        gsl_test_rel(Y[2*i], y_expected[2*i], dbleps, "zhbmv(case 1101) real");
405        gsl_test_rel(Y[2*i+1], y_expected[2*i+1], dbleps, "zhbmv(case 1101) imag");
406      };
407    };
408   };
409
410
411 }