1 #include <gsl/gsl_test.h>
2 #include <gsl/gsl_ieee_utils.h>
3 #include <gsl/gsl_math.h>
4 #include <gsl/gsl_cblas.h>
5
6 #include "tests.h"
7
8 void
test_axpy(void)9 test_axpy (void) {
10 const double flteps = 1e-4, dbleps = 1e-6;
11 {
12 int N = 1;
13 float alpha = 0.0f;
14 float X[] = { 0.018f };
15 int incX = 1;
16 float Y[] = { -0.417f };
17 int incY = -1;
18 float expected[] = { -0.417f };
19 cblas_saxpy(N, alpha, X, incX, Y, incY);
20 {
21 int i;
22 for (i = 0; i < 1; i++) {
23 gsl_test_rel(Y[i], expected[i], flteps, "saxpy(case 64)");
24 }
25 };
26 };
27
28
29 {
30 int N = 1;
31 double alpha = 0;
32 double X[] = { 0.071 };
33 int incX = 1;
34 double Y[] = { -0.888 };
35 int incY = -1;
36 double expected[] = { -0.888 };
37 cblas_daxpy(N, alpha, X, incX, Y, incY);
38 {
39 int i;
40 for (i = 0; i < 1; i++) {
41 gsl_test_rel(Y[i], expected[i], dbleps, "daxpy(case 65)");
42 }
43 };
44 };
45
46
47 {
48 int N = 1;
49 float alpha[2] = {1.0f, 0.0f};
50 float X[] = { -0.542f, -0.362f };
51 int incX = 1;
52 float Y[] = { -0.459f, -0.433f };
53 int incY = -1;
54 float expected[] = { -1.001f, -0.795f };
55 cblas_caxpy(N, alpha, X, incX, Y, incY);
56 {
57 int i;
58 for (i = 0; i < 1; i++) {
59 gsl_test_rel(Y[2*i], expected[2*i], flteps, "caxpy(case 66) real");
60 gsl_test_rel(Y[2*i+1], expected[2*i+1], flteps, "caxpy(case 66) imag");
61 };
62 };
63 };
64
65
66 {
67 int N = 1;
68 double alpha[2] = {-1, 0};
69 double X[] = { 0.003, -0.514 };
70 int incX = 1;
71 double Y[] = { -0.529, 0.743 };
72 int incY = -1;
73 double expected[] = { -0.532, 1.257 };
74 cblas_zaxpy(N, alpha, X, incX, Y, incY);
75 {
76 int i;
77 for (i = 0; i < 1; i++) {
78 gsl_test_rel(Y[2*i], expected[2*i], dbleps, "zaxpy(case 67) real");
79 gsl_test_rel(Y[2*i+1], expected[2*i+1], dbleps, "zaxpy(case 67) imag");
80 };
81 };
82 };
83
84
85 {
86 int N = 1;
87 float alpha = 0.1f;
88 float X[] = { 0.771f };
89 int incX = -1;
90 float Y[] = { 0.507f };
91 int incY = 1;
92 float expected[] = { 0.5841f };
93 cblas_saxpy(N, alpha, X, incX, Y, incY);
94 {
95 int i;
96 for (i = 0; i < 1; i++) {
97 gsl_test_rel(Y[i], expected[i], flteps, "saxpy(case 68)");
98 }
99 };
100 };
101
102
103 {
104 int N = 1;
105 double alpha = -0.3;
106 double X[] = { 0.029 };
107 int incX = -1;
108 double Y[] = { -0.992 };
109 int incY = 1;
110 double expected[] = { -1.0007 };
111 cblas_daxpy(N, alpha, X, incX, Y, incY);
112 {
113 int i;
114 for (i = 0; i < 1; i++) {
115 gsl_test_rel(Y[i], expected[i], dbleps, "daxpy(case 69)");
116 }
117 };
118 };
119
120
121 {
122 int N = 1;
123 float alpha[2] = {-0.3f, 0.1f};
124 float X[] = { 0.194f, -0.959f };
125 int incX = -1;
126 float Y[] = { 0.096f, 0.032f };
127 int incY = 1;
128 float expected[] = { 0.1337f, 0.3391f };
129 cblas_caxpy(N, alpha, X, incX, Y, incY);
130 {
131 int i;
132 for (i = 0; i < 1; i++) {
133 gsl_test_rel(Y[2*i], expected[2*i], flteps, "caxpy(case 70) real");
134 gsl_test_rel(Y[2*i+1], expected[2*i+1], flteps, "caxpy(case 70) imag");
135 };
136 };
137 };
138
139
140 {
141 int N = 1;
142 double alpha[2] = {0, 1};
143 double X[] = { 0.776, -0.671 };
144 int incX = -1;
145 double Y[] = { 0.39, 0.404 };
146 int incY = 1;
147 double expected[] = { 1.061, 1.18 };
148 cblas_zaxpy(N, alpha, X, incX, Y, incY);
149 {
150 int i;
151 for (i = 0; i < 1; i++) {
152 gsl_test_rel(Y[2*i], expected[2*i], dbleps, "zaxpy(case 71) real");
153 gsl_test_rel(Y[2*i+1], expected[2*i+1], dbleps, "zaxpy(case 71) imag");
154 };
155 };
156 };
157
158
159 {
160 int N = 1;
161 float alpha = 1.0f;
162 float X[] = { 0.647f };
163 int incX = -1;
164 float Y[] = { 0.016f };
165 int incY = -1;
166 float expected[] = { 0.663f };
167 cblas_saxpy(N, alpha, X, incX, Y, incY);
168 {
169 int i;
170 for (i = 0; i < 1; i++) {
171 gsl_test_rel(Y[i], expected[i], flteps, "saxpy(case 72)");
172 }
173 };
174 };
175
176
177 {
178 int N = 1;
179 double alpha = -1;
180 double X[] = { -0.558 };
181 int incX = -1;
182 double Y[] = { 0.308 };
183 int incY = -1;
184 double expected[] = { 0.866 };
185 cblas_daxpy(N, alpha, X, incX, Y, incY);
186 {
187 int i;
188 for (i = 0; i < 1; i++) {
189 gsl_test_rel(Y[i], expected[i], dbleps, "daxpy(case 73)");
190 }
191 };
192 };
193
194
195 {
196 int N = 1;
197 float alpha[2] = {-0.3f, 0.1f};
198 float X[] = { 0.899f, -0.624f };
199 int incX = -1;
200 float Y[] = { 0.155f, -0.33f };
201 int incY = -1;
202 float expected[] = { -0.0523f, -0.0529f };
203 cblas_caxpy(N, alpha, X, incX, Y, incY);
204 {
205 int i;
206 for (i = 0; i < 1; i++) {
207 gsl_test_rel(Y[2*i], expected[2*i], flteps, "caxpy(case 74) real");
208 gsl_test_rel(Y[2*i+1], expected[2*i+1], flteps, "caxpy(case 74) imag");
209 };
210 };
211 };
212
213
214 {
215 int N = 1;
216 double alpha[2] = {0, 1};
217 double X[] = { -0.451, 0.768 };
218 int incX = -1;
219 double Y[] = { 0.007, 0.732 };
220 int incY = -1;
221 double expected[] = { -0.761, 0.281 };
222 cblas_zaxpy(N, alpha, X, incX, Y, incY);
223 {
224 int i;
225 for (i = 0; i < 1; i++) {
226 gsl_test_rel(Y[2*i], expected[2*i], dbleps, "zaxpy(case 75) real");
227 gsl_test_rel(Y[2*i+1], expected[2*i+1], dbleps, "zaxpy(case 75) imag");
228 };
229 };
230 };
231
232
233 }
234