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 .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@ jobs:
matrix:
os: [ macos-latest, ubuntu-latest ]
fflags: [
"-fimplicit-none -frecursive -fcheck=all",
"-fimplicit-none -frecursive -fcheck=all -fopenmp" ]
"-Wall -Wno-unused-dummy-argument -Wno-unused-variable -Wno-unused-label -Werror=conversion -fimplicit-none -frecursive -fcheck=all",
"-Wall -Wno-unused-dummy-argument -Wno-unused-variable -Wno-unused-label -Werror=conversion -fimplicit-none -frecursive -fcheck=all -fopenmp" ]

steps:

Expand Down
35 changes: 31 additions & 4 deletions .github/workflows/makefile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,15 @@ on:
- '!**md'

env:
CFLAGS: "-Wall -pedantic"
FFLAGS: "-fimplicit-none -frecursive -fopenmp -fcheck=all"
CC: "gcc"
FC: "gfortran"
CFLAGS: "-O3 -flto -Wall -pedantic-errors"
FFLAGS: "-O2 -flto -Wall -Werror=conversion -pedantic -fimplicit-none -frecursive -fopenmp -fcheck=all"
FFLAGS_NOOPT: "-O0 -flto -Wall -fimplicit-none -frecursive -fopenmp -fcheck=all"
LDFLAGS: ""
AR: "ar"
ARFLAGS: "cr"
RANLIB: "ranlib"

defaults:
run:
Expand All @@ -46,9 +53,19 @@ jobs:
steps:
- name: Checkout LAPACK
uses: actions/checkout@v2
- name: Set configurations
run: |
echo "SHELL = /bin/sh" >> make.inc
echo "FFLAGS_DRV = ${{env.FFLAGS}}" >> make.inc
echo "TIMER = INT_ETIME" >> make.inc
echo "BLASLIB = ${{github.workspace}}/librefblas.a" >> make.inc
echo "CBLASLIB = ${{github.workspace}}/libcblas.a" >> make.inc
echo "LAPACKLIB = ${{github.workspace}}/liblapack.a" >> make.inc
echo "TMGLIB = ${{github.workspace}}/libtmglib.a" >> make.inc
echo "LAPACKELIB = ${{github.workspace}}/liblapacke.a" >> make.inc
echo "DOCSDIR = ${{github.workspace}}/DOCS" >> make.inc
- name: Install
run: |
cp make.inc.example make.inc
make -s -j2 all
make -j2 lapack_install

Expand All @@ -57,12 +74,22 @@ jobs:
steps:
- name: Checkout LAPACK
uses: actions/checkout@v2
- name: Set configurations
run: |
echo "SHELL = /bin/sh" >> make.inc
echo "FFLAGS_DRV = ${{env.FFLAGS}}" >> make.inc
echo "TIMER = INT_ETIME" >> make.inc
echo "BLASLIB = ${{github.workspace}}/librefblas.a" >> make.inc
echo "CBLASLIB = ${{github.workspace}}/libcblas.a" >> make.inc
echo "LAPACKLIB = ${{github.workspace}}/liblapack.a" >> make.inc
echo "TMGLIB = ${{github.workspace}}/libtmglib.a" >> make.inc
echo "LAPACKELIB = ${{github.workspace}}/liblapacke.a" >> make.inc
echo "DOCSDIR = ${{github.workspace}}/DOCS" >> make.inc
- name: Alias for GCC compilers
run: |
sudo ln -s $(which gcc-11) /usr/local/bin/gcc
sudo ln -s $(which gfortran-11) /usr/local/bin/gfortran
- name: Install
run: |
cp make.inc.example make.inc
make -s -j2 all
make -j2 lapack_install
4 changes: 2 additions & 2 deletions BLAS/SRC/cherk.f
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,7 @@ SUBROUTINE CHERK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC)
200 CONTINUE
RTEMP = ZERO
DO 210 L = 1,K
RTEMP = RTEMP + CONJG(A(L,J))*A(L,J)
RTEMP = RTEMP + REAL(CONJG(A(L,J))*A(L,J))
210 CONTINUE
IF (BETA.EQ.ZERO) THEN
C(J,J) = ALPHA*RTEMP
Expand All @@ -364,7 +364,7 @@ SUBROUTINE CHERK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC)
DO 260 J = 1,N
RTEMP = ZERO
DO 230 L = 1,K
RTEMP = RTEMP + CONJG(A(L,J))*A(L,J)
RTEMP = RTEMP + REAL(CONJG(A(L,J))*A(L,J))
230 CONTINUE
IF (BETA.EQ.ZERO) THEN
C(J,J) = ALPHA*RTEMP
Expand Down
4 changes: 2 additions & 2 deletions BLAS/SRC/sdsdot.f
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ REAL FUNCTION SDSDOT(N,SB,SX,INCX,SY,INCY)
* ..
DSDOT = SB
IF (N.LE.0) THEN
SDSDOT = DSDOT
SDSDOT = REAL(DSDOT)
RETURN
END IF
IF (INCX.EQ.INCY .AND. INCX.GT.0) THEN
Expand All @@ -155,7 +155,7 @@ REAL FUNCTION SDSDOT(N,SB,SX,INCX,SY,INCY)
KY = KY + INCY
END DO
END IF
SDSDOT = DSDOT
SDSDOT = REAL(DSDOT)
RETURN
*
* End of SDSDOT
Expand Down
4 changes: 2 additions & 2 deletions BLAS/SRC/zherk.f
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,7 @@ SUBROUTINE ZHERK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC)
200 CONTINUE
RTEMP = ZERO
DO 210 L = 1,K
RTEMP = RTEMP + DCONJG(A(L,J))*A(L,J)
RTEMP = RTEMP + DBLE(DCONJG(A(L,J))*A(L,J))
210 CONTINUE
IF (BETA.EQ.ZERO) THEN
C(J,J) = ALPHA*RTEMP
Expand All @@ -364,7 +364,7 @@ SUBROUTINE ZHERK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC)
DO 260 J = 1,N
RTEMP = ZERO
DO 230 L = 1,K
RTEMP = RTEMP + DCONJG(A(L,J))*A(L,J)
RTEMP = RTEMP + DBLE(DCONJG(A(L,J))*A(L,J))
230 CONTINUE
IF (BETA.EQ.ZERO) THEN
C(J,J) = ALPHA*RTEMP
Expand Down
4 changes: 2 additions & 2 deletions LAPACKE/example/example_DGELS_rowmajor.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@
int main (int argc, const char * argv[])
{
/* Locals */
double A[5][3] = {1,1,1,2,3,4,3,5,2,4,2,5,5,4,3};
double b[5][2] = {-10,-3,12,14,14,12,16,16,18,16};
double A[5][3] = {{1,1,1},{2,3,4},{3,5,2},{4,2,5},{5,4,3}};
double b[5][2] = {{-10,-3},{12,14},{14,12},{16,16},{18,16}};
lapack_int info,m,n,lda,ldb,nrhs;

/* Initialization */
Expand Down
1 change: 0 additions & 1 deletion LAPACKE/src/lapacke_cgesvdq.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ lapack_int LAPACKE_cgesvdq( int matrix_layout, char joba, char jobp,
lapack_int lrwork = -1;
float* rwork = NULL;
float rwork_query;
lapack_int i;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_cgesvdq", -1 );
return -1;
Expand Down
1 change: 0 additions & 1 deletion LAPACKE/src/lapacke_dgesvdq.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ lapack_int LAPACKE_dgesvdq( int matrix_layout, char joba, char jobp,
lapack_int lrwork = -1;
double* rwork = NULL;
double rwork_query;
lapack_int i;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_dgesvdq", -1 );
return -1;
Expand Down
1 change: 0 additions & 1 deletion LAPACKE/src/lapacke_sgesvdq.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ lapack_int LAPACKE_sgesvdq( int matrix_layout, char joba, char jobp,
lapack_int lrwork = -1;
float* rwork = NULL;
float rwork_query;
lapack_int i;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_sgesvdq", -1 );
return -1;
Expand Down
1 change: 0 additions & 1 deletion LAPACKE/src/lapacke_zgesvdq.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ lapack_int LAPACKE_zgesvdq( int matrix_layout, char joba, char jobp,
lapack_int lrwork = -1;
double* rwork = NULL;
double rwork_query;
lapack_int i;
if( matrix_layout != LAPACK_COL_MAJOR && matrix_layout != LAPACK_ROW_MAJOR ) {
LAPACKE_xerbla( "LAPACKE_zgesvdq", -1 );
return -1;
Expand Down
4 changes: 2 additions & 2 deletions SRC/cgebak.f
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ SUBROUTINE CGEBAK( JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV,
$ GO TO 40
IF( I.LT.ILO )
$ I = ILO - II
K = SCALE( I )
K = INT( SCALE( I ) )
IF( K.EQ.I )
$ GO TO 40
CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )
Expand All @@ -252,7 +252,7 @@ SUBROUTINE CGEBAK( JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV,
$ GO TO 50
IF( I.LT.ILO )
$ I = ILO - II
K = SCALE( I )
K = INT( SCALE( I ) )
IF( K.EQ.I )
$ GO TO 50
CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )
Expand Down
2 changes: 1 addition & 1 deletion SRC/cgees.f
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ SUBROUTINE CGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, VS,
*
CALL CHSEQR( 'S', JOBVS, N, 1, N, A, LDA, W, VS, LDVS,
$ WORK, -1, IEVAL )
HSWORK = REAL( WORK( 1 ) )
HSWORK = INT( WORK( 1 ) )
*
IF( .NOT.WANTVS ) THEN
MAXWRK = MAX( MAXWRK, HSWORK )
Expand Down
2 changes: 1 addition & 1 deletion SRC/cgeesx.f
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,7 @@ SUBROUTINE CGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, W,
*
CALL CHSEQR( 'S', JOBVS, N, 1, N, A, LDA, W, VS, LDVS,
$ WORK, -1, IEVAL )
HSWORK = REAL( WORK( 1 ) )
HSWORK = INT( WORK( 1 ) )
*
IF( .NOT.WANTVS ) THEN
MAXWRK = MAX( MAXWRK, HSWORK )
Expand Down
36 changes: 18 additions & 18 deletions SRC/cgejsv.f
Original file line number Diff line number Diff line change
Expand Up @@ -704,11 +704,11 @@ SUBROUTINE CGEJSV( JOBA, JOBU, JOBV, JOBR, JOBT, JOBP,
IF ( LQUERY ) THEN
CALL CGEQP3( M, N, A, LDA, IWORK, CDUMMY, CDUMMY, -1,
$ RDUMMY, IERR )
LWRK_CGEQP3 = REAL( CDUMMY(1) )
LWRK_CGEQP3 = INT( CDUMMY(1) )
CALL CGEQRF( N, N, A, LDA, CDUMMY, CDUMMY,-1, IERR )
LWRK_CGEQRF = REAL( CDUMMY(1) )
LWRK_CGEQRF = INT( CDUMMY(1) )
CALL CGELQF( N, N, A, LDA, CDUMMY, CDUMMY,-1, IERR )
LWRK_CGELQF = REAL( CDUMMY(1) )
LWRK_CGELQF = INT( CDUMMY(1) )
END IF
MINWRK = 2
OPTWRK = 2
Expand All @@ -724,7 +724,7 @@ SUBROUTINE CGEJSV( JOBA, JOBU, JOBV, JOBR, JOBT, JOBP,
IF ( LQUERY ) THEN
CALL CGESVJ( 'L', 'N', 'N', N, N, A, LDA, SVA, N, V,
$ LDV, CDUMMY, -1, RDUMMY, -1, IERR )
LWRK_CGESVJ = REAL( CDUMMY(1) )
LWRK_CGESVJ = INT( CDUMMY(1) )
IF ( ERREST ) THEN
OPTWRK = MAX( N+LWRK_CGEQP3, N**2+LWCON,
$ N+LWRK_CGEQRF, LWRK_CGESVJ )
Expand Down Expand Up @@ -760,10 +760,10 @@ SUBROUTINE CGEJSV( JOBA, JOBU, JOBV, JOBR, JOBT, JOBP,
IF ( LQUERY ) THEN
CALL CGESVJ( 'L', 'U', 'N', N,N, U, LDU, SVA, N, A,
$ LDA, CDUMMY, -1, RDUMMY, -1, IERR )
LWRK_CGESVJ = REAL( CDUMMY(1) )
LWRK_CGESVJ = INT( CDUMMY(1) )
CALL CUNMLQ( 'L', 'C', N, N, N, A, LDA, CDUMMY,
$ V, LDV, CDUMMY, -1, IERR )
LWRK_CUNMLQ = REAL( CDUMMY(1) )
LWRK_CUNMLQ = INT( CDUMMY(1) )
IF ( ERREST ) THEN
OPTWRK = MAX( N+LWRK_CGEQP3, LWCON, LWRK_CGESVJ,
$ N+LWRK_CGELQF, 2*N+LWRK_CGEQRF,
Expand Down Expand Up @@ -799,10 +799,10 @@ SUBROUTINE CGEJSV( JOBA, JOBU, JOBV, JOBR, JOBT, JOBP,
IF ( LQUERY ) THEN
CALL CGESVJ( 'L', 'U', 'N', N,N, U, LDU, SVA, N, A,
$ LDA, CDUMMY, -1, RDUMMY, -1, IERR )
LWRK_CGESVJ = REAL( CDUMMY(1) )
LWRK_CGESVJ = INT( CDUMMY(1) )
CALL CUNMQR( 'L', 'N', M, N, N, A, LDA, CDUMMY, U,
$ LDU, CDUMMY, -1, IERR )
LWRK_CUNMQRM = REAL( CDUMMY(1) )
LWRK_CUNMQRM = INT( CDUMMY(1) )
IF ( ERREST ) THEN
OPTWRK = N + MAX( LWRK_CGEQP3, LWCON, N+LWRK_CGEQRF,
$ LWRK_CGESVJ, LWRK_CUNMQRM )
Expand Down Expand Up @@ -861,26 +861,26 @@ SUBROUTINE CGEJSV( JOBA, JOBU, JOBV, JOBR, JOBT, JOBP,
IF ( LQUERY ) THEN
CALL CUNMQR( 'L', 'N', M, N, N, A, LDA, CDUMMY, U,
$ LDU, CDUMMY, -1, IERR )
LWRK_CUNMQRM = REAL( CDUMMY(1) )
LWRK_CUNMQRM = INT( CDUMMY(1) )
CALL CUNMQR( 'L', 'N', N, N, N, A, LDA, CDUMMY, U,
$ LDU, CDUMMY, -1, IERR )
LWRK_CUNMQR = REAL( CDUMMY(1) )
LWRK_CUNMQR = INT( CDUMMY(1) )
IF ( .NOT. JRACC ) THEN
CALL CGEQP3( N,N, A, LDA, IWORK, CDUMMY,CDUMMY, -1,
$ RDUMMY, IERR )
LWRK_CGEQP3N = REAL( CDUMMY(1) )
LWRK_CGEQP3N = INT( CDUMMY(1) )
CALL CGESVJ( 'L', 'U', 'N', N, N, U, LDU, SVA,
$ N, V, LDV, CDUMMY, -1, RDUMMY, -1, IERR )
LWRK_CGESVJ = REAL( CDUMMY(1) )
LWRK_CGESVJ = INT( CDUMMY(1) )
CALL CGESVJ( 'U', 'U', 'N', N, N, U, LDU, SVA,
$ N, V, LDV, CDUMMY, -1, RDUMMY, -1, IERR )
LWRK_CGESVJU = REAL( CDUMMY(1) )
LWRK_CGESVJU = INT( CDUMMY(1) )
CALL CGESVJ( 'L', 'U', 'V', N, N, U, LDU, SVA,
$ N, V, LDV, CDUMMY, -1, RDUMMY, -1, IERR )
LWRK_CGESVJV = REAL( CDUMMY(1) )
LWRK_CGESVJV = INT( CDUMMY(1) )
CALL CUNMLQ( 'L', 'C', N, N, N, A, LDA, CDUMMY,
$ V, LDV, CDUMMY, -1, IERR )
LWRK_CUNMLQ = REAL( CDUMMY(1) )
LWRK_CUNMLQ = INT( CDUMMY(1) )
IF ( ERREST ) THEN
OPTWRK = MAX( N+LWRK_CGEQP3, N+LWCON,
$ 2*N+N**2+LWCON, 2*N+LWRK_CGEQRF,
Expand Down Expand Up @@ -909,13 +909,13 @@ SUBROUTINE CGEJSV( JOBA, JOBU, JOBV, JOBR, JOBT, JOBP,
ELSE
CALL CGESVJ( 'L', 'U', 'V', N, N, U, LDU, SVA,
$ N, V, LDV, CDUMMY, -1, RDUMMY, -1, IERR )
LWRK_CGESVJV = REAL( CDUMMY(1) )
LWRK_CGESVJV = INT( CDUMMY(1) )
CALL CUNMQR( 'L', 'N', N, N, N, CDUMMY, N, CDUMMY,
$ V, LDV, CDUMMY, -1, IERR )
LWRK_CUNMQR = REAL( CDUMMY(1) )
LWRK_CUNMQR = INT( CDUMMY(1) )
CALL CUNMQR( 'L', 'N', M, N, N, A, LDA, CDUMMY, U,
$ LDU, CDUMMY, -1, IERR )
LWRK_CUNMQRM = REAL( CDUMMY(1) )
LWRK_CUNMQRM = INT( CDUMMY(1) )
IF ( ERREST ) THEN
OPTWRK = MAX( N+LWRK_CGEQP3, N+LWCON,
$ 2*N+LWRK_CGEQRF, 2*N+N**2,
Expand Down
8 changes: 4 additions & 4 deletions SRC/cggbak.f
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ SUBROUTINE CGGBAK( JOB, SIDE, N, ILO, IHI, LSCALE, RSCALE, M, V,
IF( ILO.EQ.1 )
$ GO TO 50
DO 40 I = ILO - 1, 1, -1
K = RSCALE( I )
K = INT( RSCALE( I ) )
IF( K.EQ.I )
$ GO TO 40
CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )
Expand All @@ -263,7 +263,7 @@ SUBROUTINE CGGBAK( JOB, SIDE, N, ILO, IHI, LSCALE, RSCALE, M, V,
IF( IHI.EQ.N )
$ GO TO 70
DO 60 I = IHI + 1, N
K = RSCALE( I )
K = INT( RSCALE( I ) )
IF( K.EQ.I )
$ GO TO 60
CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )
Expand All @@ -277,7 +277,7 @@ SUBROUTINE CGGBAK( JOB, SIDE, N, ILO, IHI, LSCALE, RSCALE, M, V,
IF( ILO.EQ.1 )
$ GO TO 90
DO 80 I = ILO - 1, 1, -1
K = LSCALE( I )
K = INT( LSCALE( I ) )
IF( K.EQ.I )
$ GO TO 80
CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )
Expand All @@ -287,7 +287,7 @@ SUBROUTINE CGGBAK( JOB, SIDE, N, ILO, IHI, LSCALE, RSCALE, M, V,
IF( IHI.EQ.N )
$ GO TO 110
DO 100 I = IHI + 1, N
K = LSCALE( I )
K = INT( LSCALE( I ) )
IF( K.EQ.I )
$ GO TO 100
CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )
Expand Down
4 changes: 2 additions & 2 deletions SRC/cggbal.f
Original file line number Diff line number Diff line change
Expand Up @@ -535,15 +535,15 @@ SUBROUTINE CGGBAL( JOB, N, A, LDA, B, LDB, ILO, IHI, LSCALE,
IRAB = ICAMAX( N-ILO+1, B( I, ILO ), LDB )
RAB = MAX( RAB, ABS( B( I, IRAB+ILO-1 ) ) )
LRAB = INT( LOG10( RAB+SFMIN ) / BASL+ONE )
IR = LSCALE( I ) + SIGN( HALF, LSCALE( I ) )
IR = INT( LSCALE( I ) + SIGN( HALF, LSCALE( I ) ) )
IR = MIN( MAX( IR, LSFMIN ), LSFMAX, LSFMAX-LRAB )
LSCALE( I ) = SCLFAC**IR
ICAB = ICAMAX( IHI, A( 1, I ), 1 )
CAB = ABS( A( ICAB, I ) )
ICAB = ICAMAX( IHI, B( 1, I ), 1 )
CAB = MAX( CAB, ABS( B( ICAB, I ) ) )
LCAB = INT( LOG10( CAB+SFMIN ) / BASL+ONE )
JC = RSCALE( I ) + SIGN( HALF, RSCALE( I ) )
JC = INT( RSCALE( I ) + SIGN( HALF, RSCALE( I ) ) )
JC = MIN( MAX( JC, LSFMIN ), LSFMAX, LSFMAX-LCAB )
RSCALE( I ) = SCLFAC**JC
360 CONTINUE
Expand Down
2 changes: 1 addition & 1 deletion SRC/cggglm.f
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ SUBROUTINE CGGGLM( N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LWORK,
*
CALL CGGQRF( N, M, P, A, LDA, WORK, B, LDB, WORK( M+1 ),
$ WORK( M+NP+1 ), LWORK-M-NP, INFO )
LOPT = REAL( WORK( M+NP+1 ) )
LOPT = INT( WORK( M+NP+1 ) )
*
* Update left-hand-side vector d = Q**H*d = ( d1 ) M
* ( d2 ) N-M
Expand Down
2 changes: 1 addition & 1 deletion SRC/cgghd3.f
Original file line number Diff line number Diff line change
Expand Up @@ -511,7 +511,7 @@ SUBROUTINE CGGHD3( COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q,
*
IF( JJ.GT.0 ) THEN
DO I = JJ, 1, -1
C = DBLE( A( J+1+I, J ) )
C = REAL( A( J+1+I, J ) )
CALL CROT( IHI-TOP, A( TOP+1, J+I+1 ), 1,
$ A( TOP+1, J+I ), 1, C,
$ -CONJG( B( J+1+I, J ) ) )
Expand Down
2 changes: 1 addition & 1 deletion SRC/cgglse.f
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,7 @@ SUBROUTINE CGGLSE( M, N, P, A, LDA, B, LDB, C, D, X, WORK, LWORK,
*
CALL CGGRQF( P, M, N, B, LDB, WORK, A, LDA, WORK( P+1 ),
$ WORK( P+MN+1 ), LWORK-P-MN, INFO )
LOPT = REAL( WORK( P+MN+1 ) )
LOPT = INT( WORK( P+MN+1 ) )
*
* Update c = Z**H *c = ( c1 ) N-P
* ( c2 ) M+P-N
Expand Down
2 changes: 1 addition & 1 deletion SRC/cggqrf.f
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,7 @@ SUBROUTINE CGGQRF( N, M, P, A, LDA, TAUA, B, LDB, TAUB, WORK,
* QR factorization of N-by-M matrix A: A = Q*R
*
CALL CGEQRF( N, M, A, LDA, TAUA, WORK, LWORK, INFO )
LOPT = REAL( WORK( 1 ) )
LOPT = INT( WORK( 1 ) )
*
* Update B := Q**H*B.
*
Expand Down
Loading