Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions SRC/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ set(SLASRC
ssytrd_2stage.f ssytrd_sy2sb.f ssytrd_sb2st.F ssb2st_kernels.f
ssyevd_2stage.f ssyev_2stage.f ssyevx_2stage.f ssyevr_2stage.f
ssbev_2stage.f ssbevx_2stage.f ssbevd_2stage.f ssygv_2stage.f
sgesvdq.f scombssq.f)
sgesvdq.f)

set(DSLASRC spotrs.f sgetrs.f spotrf.f sgetrf.f)

Expand Down Expand Up @@ -352,7 +352,7 @@ set(DLASRC
dsytrd_2stage.f dsytrd_sy2sb.f dsytrd_sb2st.F dsb2st_kernels.f
dsyevd_2stage.f dsyev_2stage.f dsyevx_2stage.f dsyevr_2stage.f
dsbev_2stage.f dsbevx_2stage.f dsbevd_2stage.f dsygv_2stage.f
dgesvdq.f dcombssq.f)
dgesvdq.f)

set(DXLASRC dgesvxx.f dgerfsx.f dla_gerfsx_extended.f dla_geamv.f
dla_gercond.f dla_gerpvgrw.f dsysvxx.f dsyrfsx.f
Expand Down
4 changes: 2 additions & 2 deletions SRC/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ SLASRC = \
ssytrd_2stage.o ssytrd_sy2sb.o ssytrd_sb2st.o ssb2st_kernels.o \
ssyevd_2stage.o ssyev_2stage.o ssyevx_2stage.o ssyevr_2stage.o \
ssbev_2stage.o ssbevx_2stage.o ssbevd_2stage.o ssygv_2stage.o \
sgesvdq.o scombssq.o
sgesvdq.o

DSLASRC = spotrs.o sgetrs.o spotrf.o sgetrf.o

Expand Down Expand Up @@ -394,7 +394,7 @@ DLASRC = \
dsytrd_2stage.o dsytrd_sy2sb.o dsytrd_sb2st.o dsb2st_kernels.o \
dsyevd_2stage.o dsyev_2stage.o dsyevx_2stage.o dsyevr_2stage.o \
dsbev_2stage.o dsbevx_2stage.o dsbevd_2stage.o dsygv_2stage.o \
dgesvdq.o dcombssq.o
dgesvdq.o

ifdef USEXBLAS
DXLASRC = dgesvxx.o dgerfsx.o dla_gerfsx_extended.o dla_geamv.o \
Expand Down
23 changes: 6 additions & 17 deletions SRC/clangb.f
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,6 @@ REAL FUNCTION CLANGB( NORM, N, KL, KU, AB, LDAB,
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
*
IMPLICIT NONE
* .. Scalar Arguments ..
CHARACTER NORM
INTEGER KL, KU, LDAB, N
Expand All @@ -145,17 +144,14 @@ REAL FUNCTION CLANGB( NORM, N, KL, KU, AB, LDAB,
* ..
* .. Local Scalars ..
INTEGER I, J, K, L
REAL SUM, VALUE, TEMP
* ..
* .. Local Arrays ..
REAL SSQ( 2 ), COLSSQ( 2 )
REAL SCALE, SUM, VALUE, TEMP
* ..
* .. External Functions ..
LOGICAL LSAME, SISNAN
EXTERNAL LSAME, SISNAN
* ..
* .. External Subroutines ..
EXTERNAL CLASSQ, SCOMBSSQ
EXTERNAL CLASSQ
* ..
* .. Intrinsic Functions ..
INTRINSIC ABS, MAX, MIN, SQRT
Expand Down Expand Up @@ -208,22 +204,15 @@ REAL FUNCTION CLANGB( NORM, N, KL, KU, AB, LDAB,
ELSE IF( ( LSAME( NORM, 'F' ) ) .OR. ( LSAME( NORM, 'E' ) ) ) THEN
*
* Find normF(A).
* SSQ(1) is scale
* SSQ(2) is sum-of-squares
* For better accuracy, sum each column separately.
*
SSQ( 1 ) = ZERO
SSQ( 2 ) = ONE
SCALE = ZERO
SUM = ONE
DO 90 J = 1, N
L = MAX( 1, J-KU )
K = KU + 1 - J + L
COLSSQ( 1 ) = ZERO
COLSSQ( 2 ) = ONE
CALL CLASSQ( MIN( N, J+KL )-L+1, AB( K, J ), 1,
$ COLSSQ( 1 ), COLSSQ( 2 ) )
CALL SCOMBSSQ( SSQ, COLSSQ )
CALL CLASSQ( MIN( N, J+KL )-L+1, AB( K, J ), 1, SCALE, SUM )
90 CONTINUE
VALUE = SSQ( 1 )*SQRT( SSQ( 2 ) )
VALUE = SCALE*SQRT( SUM )
END IF
*
CLANGB = VALUE
Expand Down
22 changes: 6 additions & 16 deletions SRC/clange.f
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,6 @@ REAL FUNCTION CLANGE( NORM, M, N, A, LDA, WORK )
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
*
IMPLICIT NONE
* .. Scalar Arguments ..
CHARACTER NORM
INTEGER LDA, M, N
Expand All @@ -135,17 +134,14 @@ REAL FUNCTION CLANGE( NORM, M, N, A, LDA, WORK )
* ..
* .. Local Scalars ..
INTEGER I, J
REAL SUM, VALUE, TEMP
* ..
* .. Local Arrays ..
REAL SSQ( 2 ), COLSSQ( 2 )
REAL SCALE, SUM, VALUE, TEMP
* ..
* .. External Functions ..
LOGICAL LSAME, SISNAN
EXTERNAL LSAME, SISNAN
* ..
* .. External Subroutines ..
EXTERNAL CLASSQ, SCOMBSSQ
EXTERNAL CLASSQ
* ..
* .. Intrinsic Functions ..
INTRINSIC ABS, MIN, SQRT
Expand Down Expand Up @@ -197,19 +193,13 @@ REAL FUNCTION CLANGE( NORM, M, N, A, LDA, WORK )
ELSE IF( ( LSAME( NORM, 'F' ) ) .OR. ( LSAME( NORM, 'E' ) ) ) THEN
*
* Find normF(A).
* SSQ(1) is scale
* SSQ(2) is sum-of-squares
* For better accuracy, sum each column separately.
*
SSQ( 1 ) = ZERO
SSQ( 2 ) = ONE
SCALE = ZERO
SUM = ONE
DO 90 J = 1, N
COLSSQ( 1 ) = ZERO
COLSSQ( 2 ) = ONE
CALL CLASSQ( M, A( 1, J ), 1, COLSSQ( 1 ), COLSSQ( 2 ) )
CALL SCOMBSSQ( SSQ, COLSSQ )
CALL CLASSQ( M, A( 1, J ), 1, SCALE, SUM )
90 CONTINUE
VALUE = SSQ( 1 )*SQRT( SSQ( 2 ) )
VALUE = SCALE*SQRT( SUM )
END IF
*
CLANGE = VALUE
Expand Down
48 changes: 13 additions & 35 deletions SRC/clanhb.f
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,6 @@ REAL FUNCTION CLANHB( NORM, UPLO, N, K, AB, LDAB,
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
*
IMPLICIT NONE
* .. Scalar Arguments ..
CHARACTER NORM, UPLO
INTEGER K, LDAB, N
Expand All @@ -152,17 +151,14 @@ REAL FUNCTION CLANHB( NORM, UPLO, N, K, AB, LDAB,
* ..
* .. Local Scalars ..
INTEGER I, J, L
REAL ABSA, SUM, VALUE
* ..
* .. Local Arrays ..
REAL SSQ( 2 ), COLSSQ( 2 )
REAL ABSA, SCALE, SUM, VALUE
* ..
* .. External Functions ..
LOGICAL LSAME, SISNAN
EXTERNAL LSAME, SISNAN
* ..
* .. External Subroutines ..
EXTERNAL CLASSQ, SCOMBSSQ
EXTERNAL CLASSQ
* ..
* .. Intrinsic Functions ..
INTRINSIC ABS, MAX, MIN, REAL, SQRT
Expand Down Expand Up @@ -234,57 +230,39 @@ REAL FUNCTION CLANHB( NORM, UPLO, N, K, AB, LDAB,
ELSE IF( ( LSAME( NORM, 'F' ) ) .OR. ( LSAME( NORM, 'E' ) ) ) THEN
*
* Find normF(A).
* SSQ(1) is scale
* SSQ(2) is sum-of-squares
* For better accuracy, sum each column separately.
*
SSQ( 1 ) = ZERO
SSQ( 2 ) = ONE
*
* Sum off-diagonals
*
SCALE = ZERO
SUM = ONE
IF( K.GT.0 ) THEN
IF( LSAME( UPLO, 'U' ) ) THEN
DO 110 J = 2, N
COLSSQ( 1 ) = ZERO
COLSSQ( 2 ) = ONE
CALL CLASSQ( MIN( J-1, K ), AB( MAX( K+2-J, 1 ), J ),
$ 1, COLSSQ( 1 ), COLSSQ( 2 ) )
CALL SCOMBSSQ( SSQ, COLSSQ )
$ 1, SCALE, SUM )
110 CONTINUE
L = K + 1
ELSE
DO 120 J = 1, N - 1
COLSSQ( 1 ) = ZERO
COLSSQ( 2 ) = ONE
CALL CLASSQ( MIN( N-J, K ), AB( 2, J ), 1,
$ COLSSQ( 1 ), COLSSQ( 2 ) )
CALL SCOMBSSQ( SSQ, COLSSQ )
CALL CLASSQ( MIN( N-J, K ), AB( 2, J ), 1, SCALE,
$ SUM )
120 CONTINUE
L = 1
END IF
SSQ( 2 ) = 2*SSQ( 2 )
SUM = 2*SUM
ELSE
L = 1
END IF
*
* Sum diagonal
*
COLSSQ( 1 ) = ZERO
COLSSQ( 2 ) = ONE
DO 130 J = 1, N
IF( REAL( AB( L, J ) ).NE.ZERO ) THEN
ABSA = ABS( REAL( AB( L, J ) ) )
IF( COLSSQ( 1 ).LT.ABSA ) THEN
COLSSQ( 2 ) = ONE + COLSSQ(2)*( COLSSQ(1) / ABSA )**2
COLSSQ( 1 ) = ABSA
IF( SCALE.LT.ABSA ) THEN
SUM = ONE + SUM*( SCALE / ABSA )**2
SCALE = ABSA
ELSE
COLSSQ( 2 ) = COLSSQ( 2 ) + ( ABSA / COLSSQ( 1 ) )**2
SUM = SUM + ( ABSA / SCALE )**2
END IF
END IF
130 CONTINUE
CALL SCOMBSSQ( SSQ, COLSSQ )
VALUE = SSQ( 1 )*SQRT( SSQ( 2 ) )
VALUE = SCALE*SQRT( SUM )
END IF
*
CLANHB = VALUE
Expand Down
45 changes: 12 additions & 33 deletions SRC/clanhe.f
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,6 @@ REAL FUNCTION CLANHE( NORM, UPLO, N, A, LDA, WORK )
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
*
IMPLICIT NONE
* .. Scalar Arguments ..
CHARACTER NORM, UPLO
INTEGER LDA, N
Expand All @@ -144,17 +143,14 @@ REAL FUNCTION CLANHE( NORM, UPLO, N, A, LDA, WORK )
* ..
* .. Local Scalars ..
INTEGER I, J
REAL ABSA, SUM, VALUE
* ..
* .. Local Arrays ..
REAL SSQ( 2 ), COLSSQ( 2 )
REAL ABSA, SCALE, SUM, VALUE
* ..
* .. External Functions ..
LOGICAL LSAME, SISNAN
EXTERNAL LSAME, SISNAN
* ..
* .. External Subroutines ..
EXTERNAL CLASSQ, SCOMBSSQ
EXTERNAL CLASSQ
* ..
* .. Intrinsic Functions ..
INTRINSIC ABS, REAL, SQRT
Expand Down Expand Up @@ -224,48 +220,31 @@ REAL FUNCTION CLANHE( NORM, UPLO, N, A, LDA, WORK )
ELSE IF( ( LSAME( NORM, 'F' ) ) .OR. ( LSAME( NORM, 'E' ) ) ) THEN
*
* Find normF(A).
* SSQ(1) is scale
* SSQ(2) is sum-of-squares
* For better accuracy, sum each column separately.
*
SSQ( 1 ) = ZERO
SSQ( 2 ) = ONE
*
* Sum off-diagonals
*
SCALE = ZERO
SUM = ONE
IF( LSAME( UPLO, 'U' ) ) THEN
DO 110 J = 2, N
COLSSQ( 1 ) = ZERO
COLSSQ( 2 ) = ONE
CALL CLASSQ( J-1, A( 1, J ), 1,
$ COLSSQ( 1 ), COLSSQ( 2 ) )
CALL SCOMBSSQ( SSQ, COLSSQ )
CALL CLASSQ( J-1, A( 1, J ), 1, SCALE, SUM )
110 CONTINUE
ELSE
DO 120 J = 1, N - 1
COLSSQ( 1 ) = ZERO
COLSSQ( 2 ) = ONE
CALL CLASSQ( N-J, A( J+1, J ), 1,
$ COLSSQ( 1 ), COLSSQ( 2 ) )
CALL SCOMBSSQ( SSQ, COLSSQ )
CALL CLASSQ( N-J, A( J+1, J ), 1, SCALE, SUM )
120 CONTINUE
END IF
SSQ( 2 ) = 2*SSQ( 2 )
*
* Sum diagonal
*
SUM = 2*SUM
DO 130 I = 1, N
IF( REAL( A( I, I ) ).NE.ZERO ) THEN
ABSA = ABS( REAL( A( I, I ) ) )
IF( SSQ( 1 ).LT.ABSA ) THEN
SSQ( 2 ) = ONE + SSQ( 2 )*( SSQ( 1 ) / ABSA )**2
SSQ( 1 ) = ABSA
IF( SCALE.LT.ABSA ) THEN
SUM = ONE + SUM*( SCALE / ABSA )**2
SCALE = ABSA
ELSE
SSQ( 2 ) = SSQ( 2 ) + ( ABSA / SSQ( 1 ) )**2
SUM = SUM + ( ABSA / SCALE )**2
END IF
END IF
130 CONTINUE
VALUE = SSQ( 1 )*SQRT( SSQ( 2 ) )
VALUE = SCALE*SQRT( SUM )
END IF
*
CLANHE = VALUE
Expand Down
Loading