version 1.15, 2016/08/27 15:34:32
|
version 1.16, 2017/06/17 10:53:57
|
Line 2
|
Line 2
|
* |
* |
* =========== DOCUMENTATION =========== |
* =========== DOCUMENTATION =========== |
* |
* |
* Online html documentation available at |
* Online html documentation available at |
* http://www.netlib.org/lapack/explore-html/ |
* http://www.netlib.org/lapack/explore-html/ |
* |
* |
*> \htmlonly |
*> \htmlonly |
*> Download DLASR + dependencies |
*> Download DLASR + dependencies |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlasr.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlasr.f"> |
*> [TGZ]</a> |
*> [TGZ]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlasr.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlasr.f"> |
*> [ZIP]</a> |
*> [ZIP]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasr.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlasr.f"> |
*> [TXT]</a> |
*> [TXT]</a> |
*> \endhtmlonly |
*> \endhtmlonly |
* |
* |
* Definition: |
* Definition: |
* =========== |
* =========== |
* |
* |
* SUBROUTINE DLASR( SIDE, PIVOT, DIRECT, M, N, C, S, A, LDA ) |
* SUBROUTINE DLASR( SIDE, PIVOT, DIRECT, M, N, C, S, A, LDA ) |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
* CHARACTER DIRECT, PIVOT, SIDE |
* CHARACTER DIRECT, PIVOT, SIDE |
* INTEGER LDA, M, N |
* INTEGER LDA, M, N |
Line 27
|
Line 27
|
* .. Array Arguments .. |
* .. Array Arguments .. |
* DOUBLE PRECISION A( LDA, * ), C( * ), S( * ) |
* DOUBLE PRECISION A( LDA, * ), C( * ), S( * ) |
* .. |
* .. |
* |
* |
* |
* |
*> \par Purpose: |
*> \par Purpose: |
* ============= |
* ============= |
Line 36
|
Line 36
|
*> |
*> |
*> DLASR applies a sequence of plane rotations to a real matrix A, |
*> DLASR applies a sequence of plane rotations to a real matrix A, |
*> from either the left or the right. |
*> from either the left or the right. |
*> |
*> |
*> When SIDE = 'L', the transformation takes the form |
*> When SIDE = 'L', the transformation takes the form |
*> |
*> |
*> A := P*A |
*> A := P*A |
*> |
*> |
*> and when SIDE = 'R', the transformation takes the form |
*> and when SIDE = 'R', the transformation takes the form |
*> |
*> |
*> A := A*P**T |
*> A := A*P**T |
*> |
*> |
*> where P is an orthogonal matrix consisting of a sequence of z plane |
*> where P is an orthogonal matrix consisting of a sequence of z plane |
*> rotations, with z = M when SIDE = 'L' and z = N when SIDE = 'R', |
*> rotations, with z = M when SIDE = 'L' and z = N when SIDE = 'R', |
*> and P**T is the transpose of P. |
*> and P**T is the transpose of P. |
*> |
*> |
*> When DIRECT = 'F' (Forward sequence), then |
*> When DIRECT = 'F' (Forward sequence), then |
*> |
*> |
*> P = P(z-1) * ... * P(2) * P(1) |
*> P = P(z-1) * ... * P(2) * P(1) |
*> |
*> |
*> and when DIRECT = 'B' (Backward sequence), then |
*> and when DIRECT = 'B' (Backward sequence), then |
*> |
*> |
*> P = P(1) * P(2) * ... * P(z-1) |
*> P = P(1) * P(2) * ... * P(z-1) |
*> |
*> |
*> where P(k) is a plane rotation matrix defined by the 2-by-2 rotation |
*> where P(k) is a plane rotation matrix defined by the 2-by-2 rotation |
*> |
*> |
*> R(k) = ( c(k) s(k) ) |
*> R(k) = ( c(k) s(k) ) |
*> = ( -s(k) c(k) ). |
*> = ( -s(k) c(k) ). |
*> |
*> |
*> When PIVOT = 'V' (Variable pivot), the rotation is performed |
*> When PIVOT = 'V' (Variable pivot), the rotation is performed |
*> for the plane (k,k+1), i.e., P(k) has the form |
*> for the plane (k,k+1), i.e., P(k) has the form |
*> |
*> |
*> P(k) = ( 1 ) |
*> P(k) = ( 1 ) |
*> ( ... ) |
*> ( ... ) |
*> ( 1 ) |
*> ( 1 ) |
Line 73
|
Line 73
|
*> ( 1 ) |
*> ( 1 ) |
*> ( ... ) |
*> ( ... ) |
*> ( 1 ) |
*> ( 1 ) |
*> |
*> |
*> where R(k) appears as a rank-2 modification to the identity matrix in |
*> where R(k) appears as a rank-2 modification to the identity matrix in |
*> rows and columns k and k+1. |
*> rows and columns k and k+1. |
*> |
*> |
*> When PIVOT = 'T' (Top pivot), the rotation is performed for the |
*> When PIVOT = 'T' (Top pivot), the rotation is performed for the |
*> plane (1,k+1), so P(k) has the form |
*> plane (1,k+1), so P(k) has the form |
*> |
*> |
*> P(k) = ( c(k) s(k) ) |
*> P(k) = ( c(k) s(k) ) |
*> ( 1 ) |
*> ( 1 ) |
*> ( ... ) |
*> ( ... ) |
Line 88
|
Line 88
|
*> ( 1 ) |
*> ( 1 ) |
*> ( ... ) |
*> ( ... ) |
*> ( 1 ) |
*> ( 1 ) |
*> |
*> |
*> where R(k) appears in rows and columns 1 and k+1. |
*> where R(k) appears in rows and columns 1 and k+1. |
*> |
*> |
*> Similarly, when PIVOT = 'B' (Bottom pivot), the rotation is |
*> Similarly, when PIVOT = 'B' (Bottom pivot), the rotation is |
*> performed for the plane (k,z), giving P(k) the form |
*> performed for the plane (k,z), giving P(k) the form |
*> |
*> |
*> P(k) = ( 1 ) |
*> P(k) = ( 1 ) |
*> ( ... ) |
*> ( ... ) |
*> ( 1 ) |
*> ( 1 ) |
Line 102
|
Line 102
|
*> ( ... ) |
*> ( ... ) |
*> ( 1 ) |
*> ( 1 ) |
*> ( -s(k) c(k) ) |
*> ( -s(k) c(k) ) |
*> |
*> |
*> where R(k) appears in rows and columns k and z. The rotations are |
*> where R(k) appears in rows and columns k and z. The rotations are |
*> performed without ever forming P(k) explicitly. |
*> performed without ever forming P(k) explicitly. |
*> \endverbatim |
*> \endverbatim |
Line 187
|
Line 187
|
* Authors: |
* Authors: |
* ======== |
* ======== |
* |
* |
*> \author Univ. of Tennessee |
*> \author Univ. of Tennessee |
*> \author Univ. of California Berkeley |
*> \author Univ. of California Berkeley |
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date September 2012 |
*> \date December 2016 |
* |
* |
*> \ingroup auxOTHERauxiliary |
*> \ingroup OTHERauxiliary |
* |
* |
* ===================================================================== |
* ===================================================================== |
SUBROUTINE DLASR( SIDE, PIVOT, DIRECT, M, N, C, S, A, LDA ) |
SUBROUTINE DLASR( SIDE, PIVOT, DIRECT, M, N, C, S, A, LDA ) |
* |
* |
* -- LAPACK auxiliary routine (version 3.4.2) -- |
* -- LAPACK auxiliary routine (version 3.7.0) -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* September 2012 |
* December 2016 |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
CHARACTER DIRECT, PIVOT, SIDE |
CHARACTER DIRECT, PIVOT, SIDE |