Split g96 I/O routines from confio.cpp
[gromacs.git] / src / gromacs / linearalgebra / gmx_lapack / slabrd.c
blobdc09f524093b98263b17de4b7b9a9fe1fb55eb0e
1 #include <math.h>
2 #include "../gmx_blas.h"
3 #include "../gmx_lapack.h"
6 void
7 F77_FUNC(slabrd,SLABRD)(int *m,
8 int *n,
9 int *nb,
10 float *a,
11 int *lda,
12 float *d__,
13 float *e,
14 float *tauq,
15 float *taup,
16 float *x,
17 int *ldx,
18 float *y,
19 int *ldy)
21 int a_dim1, a_offset, x_dim1, x_offset, y_dim1, y_offset;
22 int i__1, i__2, i__3;
23 float one = 1.0;
24 float minusone = -1.0;
25 float zero = 0.0;
26 int c__1 = 1;
27 int i__;
29 a_dim1 = *lda;
30 a_offset = 1 + a_dim1;
31 a -= a_offset;
32 --d__;
33 --e;
34 --tauq;
35 --taup;
36 x_dim1 = *ldx;
37 x_offset = 1 + x_dim1;
38 x -= x_offset;
39 y_dim1 = *ldy;
40 y_offset = 1 + y_dim1;
41 y -= y_offset;
43 if (*m <= 0 || *n <= 0) {
44 return;
47 if (*m >= *n) {
49 i__1 = *nb;
50 for (i__ = 1; i__ <= i__1; ++i__) {
52 i__2 = *m - i__ + 1;
53 i__3 = i__ - 1;
54 F77_FUNC(sgemv,SGEMV)("No transpose", &i__2, &i__3, &minusone, &a[i__ + a_dim1], lda,
55 &y[i__ + y_dim1], ldy, &one, &a[i__ + i__ * a_dim1], &c__1);
56 i__2 = *m - i__ + 1;
57 i__3 = i__ - 1;
58 F77_FUNC(sgemv,SGEMV)("No transpose", &i__2, &i__3, &minusone, &x[i__ + x_dim1], ldx,
59 &a[i__*a_dim1+1],&c__1,&one,&a[i__+i__*a_dim1],&c__1);
61 i__2 = *m - i__ + 1;
62 i__3 = i__ + 1;
63 if(*m<i__3)
64 i__3 = *m;
65 F77_FUNC(slarfg,SLARFG)(&i__2, &a[i__ + i__ * a_dim1], &a[i__3 + i__ * a_dim1],
66 &c__1, &tauq[i__]);
67 d__[i__] = a[i__ + i__ * a_dim1];
68 if (i__ < *n) {
69 a[i__ + i__ * a_dim1] = 1.;
71 i__2 = *m - i__ + 1;
72 i__3 = *n - i__;
73 F77_FUNC(sgemv,SGEMV)("Transpose", &i__2, &i__3, &one, &a[i__ + (i__ + 1) *
74 a_dim1], lda, &a[i__ + i__ * a_dim1], &c__1, &zero, &
75 y[i__ + 1 + i__ * y_dim1], &c__1);
76 i__2 = *m - i__ + 1;
77 i__3 = i__ - 1;
78 F77_FUNC(sgemv,SGEMV)("Transpose", &i__2, &i__3, &one, &a[i__ + a_dim1],
79 lda, &a[i__ + i__ * a_dim1], &c__1, &zero, &y[i__ *
80 y_dim1 + 1], &c__1);
81 i__2 = *n - i__;
82 i__3 = i__ - 1;
83 F77_FUNC(sgemv,SGEMV)("No transpose", &i__2, &i__3, &minusone, &y[i__ + 1 +
84 y_dim1], ldy, &y[i__ * y_dim1 + 1], &c__1, &one, &y[
85 i__ + 1 + i__ * y_dim1], &c__1);
86 i__2 = *m - i__ + 1;
87 i__3 = i__ - 1;
88 F77_FUNC(sgemv,SGEMV)("Transpose", &i__2, &i__3, &one, &x[i__ + x_dim1],
89 ldx, &a[i__ + i__ * a_dim1], &c__1, &zero, &y[i__ *
90 y_dim1 + 1], &c__1);
91 i__2 = i__ - 1;
92 i__3 = *n - i__;
93 F77_FUNC(sgemv,SGEMV)("Transpose", &i__2, &i__3, &minusone, &a[(i__ + 1) *
94 a_dim1 + 1], lda, &y[i__ * y_dim1 + 1], &c__1, &one,
95 &y[i__ + 1 + i__ * y_dim1], &c__1);
96 i__2 = *n - i__;
97 F77_FUNC(sscal,SSCAL)(&i__2, &tauq[i__], &y[i__ + 1 + i__ * y_dim1], &c__1);
99 i__2 = *n - i__;
100 F77_FUNC(sgemv,SGEMV)("No transpose", &i__2, &i__, &minusone, &y[i__ + 1 +
101 y_dim1], ldy, &a[i__ + a_dim1], lda, &one, &a[i__ + (
102 i__ + 1) * a_dim1], lda);
103 i__2 = i__ - 1;
104 i__3 = *n - i__;
105 F77_FUNC(sgemv,SGEMV)("Transpose", &i__2, &i__3, &minusone, &a[(i__ + 1) *
106 a_dim1 + 1], lda, &x[i__ + x_dim1], ldx, &one, &a[
107 i__ + (i__ + 1) * a_dim1], lda);
109 i__2 = *n - i__;
110 i__3 = i__ + 2;
111 if(*n<i__3)
112 i__3 = *n;
113 F77_FUNC(slarfg,SLARFG)(&i__2, &a[i__ + (i__ + 1) * a_dim1],
114 &a[i__ + i__3 * a_dim1], lda, &taup[i__]);
115 e[i__] = a[i__ + (i__ + 1) * a_dim1];
116 a[i__ + (i__ + 1) * a_dim1] = 1.;
118 i__2 = *m - i__;
119 i__3 = *n - i__;
120 F77_FUNC(sgemv,SGEMV)("No transpose", &i__2, &i__3, &one, &a[i__ + 1 + (i__
121 + 1) * a_dim1], lda, &a[i__ + (i__ + 1) * a_dim1],
122 lda, &zero, &x[i__ + 1 + i__ * x_dim1], &c__1);
123 i__2 = *n - i__;
124 F77_FUNC(sgemv,SGEMV)("Transpose", &i__2, &i__, &one, &y[i__ + 1 + y_dim1],
125 ldy, &a[i__ + (i__ + 1) * a_dim1], lda, &zero, &x[
126 i__ * x_dim1 + 1], &c__1);
127 i__2 = *m - i__;
128 F77_FUNC(sgemv,SGEMV)("No transpose", &i__2, &i__, &minusone, &a[i__ + 1 +
129 a_dim1], lda, &x[i__ * x_dim1 + 1], &c__1, &one, &x[
130 i__ + 1 + i__ * x_dim1], &c__1);
131 i__2 = i__ - 1;
132 i__3 = *n - i__;
133 F77_FUNC(sgemv,SGEMV)("No transpose", &i__2, &i__3, &one, &a[(i__ + 1) *
134 a_dim1 + 1], lda, &a[i__ + (i__ + 1) * a_dim1], lda, &
135 zero, &x[i__ * x_dim1 + 1], &c__1);
136 i__2 = *m - i__;
137 i__3 = i__ - 1;
138 F77_FUNC(sgemv,SGEMV)("No transpose", &i__2, &i__3, &minusone, &x[i__ + 1 +
139 x_dim1], ldx, &x[i__ * x_dim1 + 1], &c__1, &one, &x[
140 i__ + 1 + i__ * x_dim1], &c__1);
141 i__2 = *m - i__;
142 F77_FUNC(sscal,SSCAL)(&i__2, &taup[i__], &x[i__ + 1 + i__ * x_dim1], &c__1);
145 } else {
147 i__1 = *nb;
148 for (i__ = 1; i__ <= i__1; ++i__) {
150 i__2 = *n - i__ + 1;
151 i__3 = i__ - 1;
152 F77_FUNC(sgemv,SGEMV)("No transpose", &i__2, &i__3, &minusone, &y[i__ + y_dim1], ldy,
153 &a[i__ + a_dim1], lda, &one, &a[i__ + i__ * a_dim1],lda);
154 i__2 = i__ - 1;
155 i__3 = *n - i__ + 1;
156 F77_FUNC(sgemv,SGEMV)("Transpose", &i__2, &i__3, &minusone, &a[i__ * a_dim1 + 1],
157 lda, &x[i__ + x_dim1], ldx, &one,&a[i__+i__*a_dim1],lda);
159 i__2 = *n - i__ + 1;
160 i__3 = i__ + 1;
161 if(*n<i__3)
162 i__3 = *n;
163 F77_FUNC(slarfg,SLARFG)(&i__2, &a[i__ + i__ * a_dim1],
164 &a[i__ + i__3 * a_dim1], lda, &taup[i__]);
165 d__[i__] = a[i__ + i__ * a_dim1];
166 if (i__ < *m) {
167 a[i__ + i__ * a_dim1] = 1.;
169 i__2 = *m - i__;
170 i__3 = *n - i__ + 1;
171 F77_FUNC(sgemv,SGEMV)("No transpose",&i__2,&i__3,&one,&a[i__+1+i__*a_dim1],
172 lda, &a[i__ + i__ * a_dim1], lda, &zero,
173 &x[i__ + 1 + i__ * x_dim1], &c__1);
174 i__2 = *n - i__ + 1;
175 i__3 = i__ - 1;
176 F77_FUNC(sgemv,SGEMV)("Transpose", &i__2, &i__3, &one, &y[i__ + y_dim1],
177 ldy, &a[i__ + i__ * a_dim1], lda, &zero, &x[i__ *
178 x_dim1 + 1], &c__1);
179 i__2 = *m - i__;
180 i__3 = i__ - 1;
181 F77_FUNC(sgemv,SGEMV)("No transpose", &i__2, &i__3, &minusone, &a[i__ + 1 +
182 a_dim1], lda, &x[i__ * x_dim1 + 1], &c__1, &one, &x[
183 i__ + 1 + i__ * x_dim1], &c__1);
184 i__2 = i__ - 1;
185 i__3 = *n - i__ + 1;
186 F77_FUNC(sgemv,SGEMV)("No transpose", &i__2, &i__3, &one, &a[i__ * a_dim1 +
187 1], lda, &a[i__ + i__ * a_dim1], lda, &zero, &x[i__ *
188 x_dim1 + 1], &c__1);
189 i__2 = *m - i__;
190 i__3 = i__ - 1;
191 F77_FUNC(sgemv,SGEMV)("No transpose", &i__2, &i__3, &minusone, &x[i__ + 1 +
192 x_dim1], ldx, &x[i__ * x_dim1 + 1], &c__1, &one, &x[
193 i__ + 1 + i__ * x_dim1], &c__1);
194 i__2 = *m - i__;
195 F77_FUNC(sscal,SSCAL)(&i__2, &taup[i__], &x[i__ + 1 + i__ * x_dim1], &c__1);
197 i__2 = *m - i__;
198 i__3 = i__ - 1;
199 F77_FUNC(sgemv,SGEMV)("No transpose", &i__2, &i__3, &minusone, &a[i__ + 1 +
200 a_dim1], lda, &y[i__ + y_dim1], ldy, &one, &a[i__ +
201 1 + i__ * a_dim1], &c__1);
202 i__2 = *m - i__;
203 F77_FUNC(sgemv,SGEMV)("No transpose", &i__2, &i__, &minusone, &x[i__ + 1 +
204 x_dim1], ldx, &a[i__ * a_dim1 + 1], &c__1, &one, &a[
205 i__ + 1 + i__ * a_dim1], &c__1);
207 i__2 = *m - i__;
208 i__3 = i__ + 2;
209 if(*m<i__3)
210 i__3 = *m;
211 F77_FUNC(slarfg,SLARFG)(&i__2, &a[i__ + 1 + i__ * a_dim1],
212 &a[i__3 + i__ * a_dim1], &c__1, &tauq[i__]);
213 e[i__] = a[i__ + 1 + i__ * a_dim1];
214 a[i__ + 1 + i__ * a_dim1] = 1.;
216 i__2 = *m - i__;
217 i__3 = *n - i__;
218 F77_FUNC(sgemv,SGEMV)("Transpose", &i__2, &i__3, &one, &a[i__ + 1 + (i__ +
219 1) * a_dim1], lda, &a[i__ + 1 + i__ * a_dim1], &c__1,
220 &zero, &y[i__ + 1 + i__ * y_dim1], &c__1);
221 i__2 = *m - i__;
222 i__3 = i__ - 1;
223 F77_FUNC(sgemv,SGEMV)("Transpose", &i__2, &i__3, &one, &a[i__ + 1 + a_dim1],
224 lda, &a[i__ + 1 + i__ * a_dim1], &c__1, &zero, &y[
225 i__ * y_dim1 + 1], &c__1);
226 i__2 = *n - i__;
227 i__3 = i__ - 1;
228 F77_FUNC(sgemv,SGEMV)("No transpose", &i__2, &i__3, &minusone, &y[i__ + 1 +
229 y_dim1], ldy, &y[i__ * y_dim1 + 1], &c__1, &one, &y[
230 i__ + 1 + i__ * y_dim1], &c__1);
231 i__2 = *m - i__;
232 F77_FUNC(sgemv,SGEMV)("Transpose", &i__2, &i__, &one, &x[i__ + 1 + x_dim1],
233 ldx, &a[i__ + 1 + i__ * a_dim1], &c__1, &zero, &y[
234 i__ * y_dim1 + 1], &c__1);
235 i__2 = *n - i__;
236 F77_FUNC(sgemv,SGEMV)("Transpose", &i__, &i__2, &minusone, &a[(i__ + 1) * a_dim1
237 + 1], lda, &y[i__ * y_dim1 + 1], &c__1, &one, &y[i__
238 + 1 + i__ * y_dim1], &c__1);
239 i__2 = *n - i__;
240 F77_FUNC(sscal,SSCAL)(&i__2, &tauq[i__], &y[i__ + 1 + i__ * y_dim1], &c__1);
244 return;