1
- * > \brief \b DLARF1F applies an elementary reflector to a general rectangular
1
+ * > \brief \b SLARF1F applies an elementary reflector to a general rectangular
2
2
* matrix assuming v(1) = 1.
3
3
*
4
4
* =========== DOCUMENTATION ===========
7
7
* http://www.netlib.org/lapack/explore-html/
8
8
*
9
9
* > \htmlonly
10
- * > Download DLARF + dependencies
11
- * > <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlarf .f">
10
+ * > Download SLARF1F + dependencies
11
+ * > <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/slarf .f">
12
12
* > [TGZ]</a>
13
- * > <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlarf .f">
13
+ * > <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/slarf .f">
14
14
* > [ZIP]</a>
15
- * > <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlarf .f">
15
+ * > <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slarf .f">
16
16
* > [TXT]</a>
17
17
* > \endhtmlonly
18
18
*
19
19
* Definition:
20
20
* ===========
21
21
*
22
- * SUBROUTINE DLARF1F ( SIDE, M, N, V, INCV, TAU, C, LDC, WORK )
22
+ * SUBROUTINE SLARF1F ( SIDE, M, N, V, INCV, TAU, C, LDC, WORK )
23
23
*
24
24
* .. Scalar Arguments ..
25
25
* CHARACTER SIDE
26
26
* INTEGER INCV, LDC, M, N
27
- * DOUBLE PRECISION TAU
27
+ * REAL TAU
28
28
* ..
29
29
* .. Array Arguments ..
30
- * DOUBLE PRECISION C( LDC, * ), V( * ), WORK( * )
30
+ * REAL C( LDC, * ), V( * ), WORK( * )
31
31
* ..
32
32
*
33
33
*
36
36
* >
37
37
* > \verbatim
38
38
* >
39
- * > DLARF1F applies a real elementary reflector H to a real m by n matrix
39
+ * > SLARF1F applies a real elementary reflector H to a real m by n matrix
40
40
* > C, from either the left or the right. H is represented in the form
41
41
* >
42
42
* > H = I - tau * v * v**T
70
70
* >
71
71
* > \param[in] V
72
72
* > \verbatim
73
- * > V is DOUBLE PRECISION array, dimension
73
+ * > V is REAL array, dimension
74
74
* > (1 + (M-1)*abs(INCV)) if SIDE = 'L'
75
75
* > or (1 + (N-1)*abs(INCV)) if SIDE = 'R'
76
76
* > The vector v in the representation of H. V is not used if
85
85
* >
86
86
* > \param[in] TAU
87
87
* > \verbatim
88
- * > TAU is DOUBLE PRECISION
88
+ * > TAU is REAL
89
89
* > The value tau in the representation of H.
90
90
* > \endverbatim
91
91
* >
92
92
* > \param[in,out] C
93
93
* > \verbatim
94
- * > C is DOUBLE PRECISION array, dimension (LDC,N)
94
+ * > C is REAL array, dimension (LDC,N)
95
95
* > On entry, the m by n matrix C.
96
96
* > On exit, C is overwritten by the matrix H * C if SIDE = 'L',
97
97
* > or C * H if SIDE = 'R'.
105
105
* >
106
106
* > \param[out] WORK
107
107
* > \verbatim
108
- * > WORK is DOUBLE PRECISION array, dimension
108
+ * > WORK is REAL array, dimension
109
109
* > (N) if SIDE = 'L'
110
110
* > or (M) if SIDE = 'R'
111
111
* > \endverbatim
121
121
* > \ingroup larf1f
122
122
*
123
123
* =====================================================================
124
- SUBROUTINE DLARF1F ( SIDE , M , N , V , INCV , TAU , C , LDC , WORK )
124
+ SUBROUTINE SLARF1F ( SIDE , M , N , V , INCV , TAU , C , LDC , WORK )
125
125
*
126
126
* -- LAPACK auxiliary routine --
127
127
* -- LAPACK is a software package provided by Univ. of Tennessee, --
@@ -130,24 +130,24 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK )
130
130
* .. Scalar Arguments ..
131
131
CHARACTER SIDE
132
132
INTEGER INCV, LDC, M, N
133
- DOUBLE PRECISION TAU
133
+ REAL TAU
134
134
* ..
135
135
* .. Array Arguments ..
136
- DOUBLE PRECISION C( LDC, * ), V( * ), WORK( * )
136
+ REAL C( LDC, * ), V( * ), WORK( * )
137
137
* ..
138
138
*
139
139
* =====================================================================
140
140
*
141
141
* .. Parameters ..
142
- DOUBLE PRECISION ONE, ZERO
143
- PARAMETER ( ONE = 1.0D +0 , ZERO = 0.0D +0 )
142
+ REAL ONE, ZERO
143
+ PARAMETER ( ONE = 1.0E +0 , ZERO = 0.0E +0 )
144
144
* ..
145
145
* .. Local Scalars ..
146
146
LOGICAL APPLYLEFT
147
147
INTEGER I, LASTV, LASTC
148
148
* ..
149
149
* .. External Subroutines ..
150
- EXTERNAL DGEMV, DGER, DAXPY
150
+ EXTERNAL SGEMV, SGER, SAXPY, SSCAL
151
151
* ..
152
152
* .. External Functions ..
153
153
LOGICAL LSAME
@@ -196,25 +196,25 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK )
196
196
*
197
197
* C(1,1:lastc) := ( 1 - tau ) * C(1,1:lastc)
198
198
*
199
- CALL DSCAL ( LASTC, ONE - TAU, C, LDC )
199
+ CALL SSCAL ( LASTC, ONE - TAU, C, LDC )
200
200
ELSE
201
201
*
202
202
* w(1:lastc,1) := C(2:lastv,1:lastc)**T * v(2:lastv,1)
203
203
*
204
- CALL DGEMV ( ' Transpose' , LASTV - 1 , LASTC, ONE, C( 2 , 1 ),
204
+ CALL SGEMV ( ' Transpose' , LASTV - 1 , LASTC, ONE, C( 2 , 1 ),
205
205
$ LDC, V( 1 + INCV ), INCV, ZERO, WORK, 1 )
206
206
*
207
- * w(1:lastc,1) += C (1,1:lastc)**T * v (1,1)
207
+ * w(1:lastc,1) += v (1,1) * C (1,1:lastc)**T
208
208
*
209
- CALL DAXPY ( LASTC, ONE, C, LDC, WORK, 1 )
209
+ CALL SAXPY ( LASTC, ONE, C, LDC, WORK, 1 )
210
210
*
211
- * C(1, 1:lastc) := C(...) - tau * w(1:lastc,1)**T
211
+ * C(1, 1:lastc) += - tau * v(1,1) * w(1:lastc,1)**T
212
212
*
213
- CALL DAXPY ( LASTC, - TAU, WORK, 1 , C, LDC )
213
+ CALL SAXPY ( LASTC, - TAU, WORK, 1 , C, LDC )
214
214
*
215
- * C(2:lastv,1:lastc) := C(...) - tau * v(2:lastv,1)* w(1:lastc,1)**T
215
+ * C(2:lastv,1:lastc) += - tau * v(2:lastv,1) * w(1:lastc,1)**T
216
216
*
217
- CALL DGER ( LASTV - 1 , LASTC, - TAU, V( 1 + INCV ), INCV, WORK,
217
+ CALL SGER ( LASTV - 1 , LASTC, - TAU, V( 1 + INCV ), INCV, WORK,
218
218
$ 1 , C( 2 , 1 ), LDC )
219
219
END IF
220
220
ELSE
@@ -225,30 +225,30 @@ SUBROUTINE DLARF1F( SIDE, M, N, V, INCV, TAU, C, LDC, WORK )
225
225
*
226
226
* C(1:lastc,1) := ( 1 - tau ) * C(1:lastc,1)
227
227
*
228
- CALL DSCAL ( LASTC, ONE - TAU, C, 1 )
228
+ CALL SSCAL ( LASTC, ONE - TAU, C, 1 )
229
229
ELSE
230
230
*
231
231
* w(1:lastc,1) := C(1:lastc,2:lastv) * v(2:lastv,1)
232
232
*
233
- CALL DGEMV ( ' No transpose' , LASTC, LASTV - 1 , ONE,
234
- $ C( 1 , 2 ), LDC, V( 1 + INCV ), INCV, ZERO, WORK, 1 )
233
+ CALL SGEMV ( ' No transpose' , LASTC, LASTV - 1 , ONE,
234
+ $ C( 1 , 2 ), LDC, V( 1 + INCV ), INCV, ZERO, WORK, 1 )
235
235
*
236
- * w(1:lastc,1) += C(1:lastc ,1) * v(1 ,1)
236
+ * w(1:lastc,1) += v(1 ,1) * C(1:lastc ,1)
237
237
*
238
- CALL DAXPY ( LASTC, ONE, C, 1 , WORK, 1 )
238
+ CALL SAXPY ( LASTC, ONE, C, 1 , WORK, 1 )
239
239
*
240
- * C(1:lastc,1) := C(1:lastc ,1) - tau * w(1:lastc,1)
240
+ * C(1:lastc,1) += - tau * v(1 ,1) * w(1:lastc,1)
241
241
*
242
- CALL DAXPY ( LASTC, - TAU, WORK, 1 , C, 1 )
242
+ CALL SAXPY ( LASTC, - TAU, WORK, 1 , C, 1 )
243
243
*
244
- * C(1:lastc,2:lastv) := C(1:lastc,2:lastv) - tau * w(1:lastc,1) * v(2:lastv)**T
244
+ * C(1:lastc,2:lastv) += - tau * w(1:lastc,1) * v(2:lastv)**T
245
245
*
246
- CALL DGER ( LASTC, LASTV - 1 , - TAU, WORK, 1 , V( 1 + INCV ),
247
- $ INCV, C( 1 , 2 ), LDC )
246
+ CALL SGER ( LASTC, LASTV - 1 , - TAU, WORK, 1 , V( 1 + INCV ),
247
+ $ INCV, C( 1 , 2 ), LDC )
248
248
END IF
249
249
END IF
250
250
RETURN
251
251
*
252
- * End of DLARF1F
252
+ * End of SLARF1F
253
253
*
254
254
END
0 commit comments