37 #ifndef TEMPLATE_BLAS_SYMV_HEADER
38 #define TEMPLATE_BLAS_SYMV_HEADER
43 const Treal *a,
const integer *lda,
const Treal *x,
const integer *incx,
const Treal
44 *beta, Treal *y,
const integer *incy)
47 integer a_dim1, a_offset, i__1, i__2;
53 #define a_ref(a_1,a_2) a[(a_2)*a_dim1 + a_1]
124 a_offset = 1 + a_dim1 * 1;
136 }
else if (*incx == 0) {
138 }
else if (*incy == 0) {
146 if (*n == 0 || (*alpha == 0. && *beta == 1.) ) {
153 kx = 1 - (*n - 1) * *incx;
158 ky = 1 - (*n - 1) * *incy;
168 for (i__ = 1; i__ <= i__1; ++i__) {
174 for (i__ = 1; i__ <= i__1; ++i__) {
175 y[i__] = *beta * y[i__];
183 for (i__ = 1; i__ <= i__1; ++i__) {
190 for (i__ = 1; i__ <= i__1; ++i__) {
191 y[iy] = *beta * y[iy];
203 if (*incx == 1 && *incy == 1) {
205 for (j = 1; j <= i__1; ++j) {
206 temp1 = *alpha * x[j];
209 for (i__ = 1; i__ <= i__2; ++i__) {
210 y[i__] += temp1 *
a_ref(i__, j);
211 temp2 +=
a_ref(i__, j) * x[i__];
214 y[j] = y[j] + temp1 *
a_ref(j, j) + *alpha * temp2;
221 for (j = 1; j <= i__1; ++j) {
222 temp1 = *alpha * x[jx];
227 for (i__ = 1; i__ <= i__2; ++i__) {
228 y[iy] += temp1 *
a_ref(i__, j);
229 temp2 +=
a_ref(i__, j) * x[ix];
234 y[jy] = y[jy] + temp1 *
a_ref(j, j) + *alpha * temp2;
242 if (*incx == 1 && *incy == 1) {
244 for (j = 1; j <= i__1; ++j) {
245 temp1 = *alpha * x[j];
247 y[j] += temp1 *
a_ref(j, j);
249 for (i__ = j + 1; i__ <= i__2; ++i__) {
250 y[i__] += temp1 *
a_ref(i__, j);
251 temp2 +=
a_ref(i__, j) * x[i__];
254 y[j] += *alpha * temp2;
261 for (j = 1; j <= i__1; ++j) {
262 temp1 = *alpha * x[jx];
264 y[jy] += temp1 *
a_ref(j, j);
268 for (i__ = j + 1; i__ <= i__2; ++i__) {
271 y[iy] += temp1 *
a_ref(i__, j);
272 temp2 +=
a_ref(i__, j) * x[ix];
275 y[jy] += *alpha * temp2;