151 g##N = -g##N; \
152 } \
153 if (n##N & 1) { \
154 *s = g##N; \
155 *c = -f##N; \
156 } else { \
157 *s = f##N; \
158 *c = g##N; \
159 } \
160 s += strides; \
161 c += stridec
162
163 void
164 __vsincosf(int n, float *restrict x, int stridex,
165 float *restrict s, int strides, float *restrict c, int stridec)
166 {
167 double y0, y1, y2, y3;
168 double z0, z1, z2, z3;
169 float f0, f1, f2, f3, t;
170 float g0, g1, g2, g3;
171 int n0, n1, n2, n3, hx, ix, medium;
172
173 s -= strides;
174 c -= stridec;
175
176 for (;;) {
177 begin:
178 s += strides;
179 c += stridec;
180
181 if (--n < 0)
182 break;
183
184 medium = 0;
185 PREPROCESS(0, 0, 0, begin);
186
187 if (--n < 0)
188 goto process1;
189
190 PREPROCESS(1, strides, stridec, process1);
191
|
151 g##N = -g##N; \
152 } \
153 if (n##N & 1) { \
154 *s = g##N; \
155 *c = -f##N; \
156 } else { \
157 *s = f##N; \
158 *c = g##N; \
159 } \
160 s += strides; \
161 c += stridec
162
163 void
164 __vsincosf(int n, float *restrict x, int stridex,
165 float *restrict s, int strides, float *restrict c, int stridec)
166 {
167 double y0, y1, y2, y3;
168 double z0, z1, z2, z3;
169 float f0, f1, f2, f3, t;
170 float g0, g1, g2, g3;
171 int n0 = 0, n1 = 0, n2 = 0, n3, hx, ix, medium;
172
173 s -= strides;
174 c -= stridec;
175
176 for (;;) {
177 begin:
178 s += strides;
179 c += stridec;
180
181 if (--n < 0)
182 break;
183
184 medium = 0;
185 PREPROCESS(0, 0, 0, begin);
186
187 if (--n < 0)
188 goto process1;
189
190 PREPROCESS(1, strides, stridec, process1);
191
|