Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GELSS: Cast work sizes to INT #684

Merged
merged 1 commit into from
Jun 30, 2022
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
26 changes: 13 additions & 13 deletions SRC/cgelss.f
Original file line number Diff line number Diff line change
Expand Up @@ -266,11 +266,11 @@ SUBROUTINE CGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
*
* Compute space needed for CGEQRF
CALL CGEQRF( M, N, A, LDA, DUM(1), DUM(1), -1, INFO )
LWORK_CGEQRF = REAL( DUM(1) )
LWORK_CGEQRF = INT( DUM(1) )
* Compute space needed for CUNMQR
CALL CUNMQR( 'L', 'C', M, NRHS, N, A, LDA, DUM(1), B,
$ LDB, DUM(1), -1, INFO )
LWORK_CUNMQR = REAL( DUM(1) )
LWORK_CUNMQR = INT( DUM(1) )
MM = N
MAXWRK = MAX( MAXWRK, N + N*ILAENV( 1, 'CGEQRF', ' ', M,
$ N, -1, -1 ) )
Expand All @@ -284,15 +284,15 @@ SUBROUTINE CGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
* Compute space needed for CGEBRD
CALL CGEBRD( MM, N, A, LDA, S, S, DUM(1), DUM(1), DUM(1),
$ -1, INFO )
LWORK_CGEBRD = REAL( DUM(1) )
LWORK_CGEBRD = INT( DUM(1) )
* Compute space needed for CUNMBR
CALL CUNMBR( 'Q', 'L', 'C', MM, NRHS, N, A, LDA, DUM(1),
$ B, LDB, DUM(1), -1, INFO )
LWORK_CUNMBR = REAL( DUM(1) )
LWORK_CUNMBR = INT( DUM(1) )
* Compute space needed for CUNGBR
CALL CUNGBR( 'P', N, N, N, A, LDA, DUM(1),
$ DUM(1), -1, INFO )
LWORK_CUNGBR = REAL( DUM(1) )
LWORK_CUNGBR = INT( DUM(1) )
* Compute total workspace needed
MAXWRK = MAX( MAXWRK, 2*N + LWORK_CGEBRD )
MAXWRK = MAX( MAXWRK, 2*N + LWORK_CUNMBR )
Expand All @@ -310,23 +310,23 @@ SUBROUTINE CGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
* Compute space needed for CGELQF
CALL CGELQF( M, N, A, LDA, DUM(1), DUM(1),
$ -1, INFO )
LWORK_CGELQF = REAL( DUM(1) )
LWORK_CGELQF = INT( DUM(1) )
* Compute space needed for CGEBRD
CALL CGEBRD( M, M, A, LDA, S, S, DUM(1), DUM(1),
$ DUM(1), -1, INFO )
LWORK_CGEBRD = REAL( DUM(1) )
LWORK_CGEBRD = INT( DUM(1) )
* Compute space needed for CUNMBR
CALL CUNMBR( 'Q', 'L', 'C', M, NRHS, N, A, LDA,
$ DUM(1), B, LDB, DUM(1), -1, INFO )
LWORK_CUNMBR = REAL( DUM(1) )
LWORK_CUNMBR = INT( DUM(1) )
* Compute space needed for CUNGBR
CALL CUNGBR( 'P', M, M, M, A, LDA, DUM(1),
$ DUM(1), -1, INFO )
LWORK_CUNGBR = REAL( DUM(1) )
LWORK_CUNGBR = INT( DUM(1) )
* Compute space needed for CUNMLQ
CALL CUNMLQ( 'L', 'C', N, NRHS, M, A, LDA, DUM(1),
$ B, LDB, DUM(1), -1, INFO )
LWORK_CUNMLQ = REAL( DUM(1) )
LWORK_CUNMLQ = INT( DUM(1) )
* Compute total workspace needed
MAXWRK = M + LWORK_CGELQF
MAXWRK = MAX( MAXWRK, 3*M + M*M + LWORK_CGEBRD )
Expand All @@ -345,15 +345,15 @@ SUBROUTINE CGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
* Compute space needed for CGEBRD
CALL CGEBRD( M, N, A, LDA, S, S, DUM(1), DUM(1),
$ DUM(1), -1, INFO )
LWORK_CGEBRD = REAL( DUM(1) )
LWORK_CGEBRD = INT( DUM(1) )
* Compute space needed for CUNMBR
CALL CUNMBR( 'Q', 'L', 'C', M, NRHS, M, A, LDA,
$ DUM(1), B, LDB, DUM(1), -1, INFO )
LWORK_CUNMBR = REAL( DUM(1) )
LWORK_CUNMBR = INT( DUM(1) )
* Compute space needed for CUNGBR
CALL CUNGBR( 'P', M, N, M, A, LDA, DUM(1),
$ DUM(1), -1, INFO )
LWORK_CUNGBR = REAL( DUM(1) )
LWORK_CUNGBR = INT( DUM(1) )
MAXWRK = 2*M + LWORK_CGEBRD
MAXWRK = MAX( MAXWRK, 2*M + LWORK_CUNMBR )
MAXWRK = MAX( MAXWRK, 2*M + LWORK_CUNGBR )
Expand Down
24 changes: 12 additions & 12 deletions SRC/dgelss.f
Original file line number Diff line number Diff line change
Expand Up @@ -254,11 +254,11 @@ SUBROUTINE DGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
*
* Compute space needed for DGEQRF
CALL DGEQRF( M, N, A, LDA, DUM(1), DUM(1), -1, INFO )
LWORK_DGEQRF=DUM(1)
LWORK_DGEQRF = INT( DUM(1) )
* Compute space needed for DORMQR
CALL DORMQR( 'L', 'T', M, NRHS, N, A, LDA, DUM(1), B,
$ LDB, DUM(1), -1, INFO )
LWORK_DORMQR=DUM(1)
LWORK_DORMQR = INT( DUM(1) )
MM = N
MAXWRK = MAX( MAXWRK, N + LWORK_DGEQRF )
MAXWRK = MAX( MAXWRK, N + LWORK_DORMQR )
Expand All @@ -273,15 +273,15 @@ SUBROUTINE DGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
* Compute space needed for DGEBRD
CALL DGEBRD( MM, N, A, LDA, S, DUM(1), DUM(1),
$ DUM(1), DUM(1), -1, INFO )
LWORK_DGEBRD=DUM(1)
LWORK_DGEBRD = INT( DUM(1) )
* Compute space needed for DORMBR
CALL DORMBR( 'Q', 'L', 'T', MM, NRHS, N, A, LDA, DUM(1),
$ B, LDB, DUM(1), -1, INFO )
LWORK_DORMBR=DUM(1)
LWORK_DORMBR = INT( DUM(1) )
* Compute space needed for DORGBR
CALL DORGBR( 'P', N, N, N, A, LDA, DUM(1),
$ DUM(1), -1, INFO )
LWORK_DORGBR=DUM(1)
LWORK_DORGBR = INT( DUM(1) )
* Compute total workspace needed
MAXWRK = MAX( MAXWRK, 3*N + LWORK_DGEBRD )
MAXWRK = MAX( MAXWRK, 3*N + LWORK_DORMBR )
Expand Down Expand Up @@ -309,19 +309,19 @@ SUBROUTINE DGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
* Compute space needed for DGEBRD
CALL DGEBRD( M, M, A, LDA, S, DUM(1), DUM(1),
$ DUM(1), DUM(1), -1, INFO )
LWORK_DGEBRD=DUM(1)
LWORK_DGEBRD = INT( DUM(1) )
* Compute space needed for DORMBR
CALL DORMBR( 'Q', 'L', 'T', M, NRHS, N, A, LDA,
$ DUM(1), B, LDB, DUM(1), -1, INFO )
LWORK_DORMBR=DUM(1)
LWORK_DORMBR = INT( DUM(1) )
* Compute space needed for DORGBR
CALL DORGBR( 'P', M, M, M, A, LDA, DUM(1),
$ DUM(1), -1, INFO )
LWORK_DORGBR=DUM(1)
LWORK_DORGBR = INT( DUM(1) )
* Compute space needed for DORMLQ
CALL DORMLQ( 'L', 'T', N, NRHS, M, A, LDA, DUM(1),
$ B, LDB, DUM(1), -1, INFO )
LWORK_DORMLQ=DUM(1)
LWORK_DORMLQ = INT( DUM(1) )
* Compute total workspace needed
MAXWRK = M + LWORK_DGELQF
MAXWRK = MAX( MAXWRK, M*M + 4*M + LWORK_DGEBRD )
Expand All @@ -341,15 +341,15 @@ SUBROUTINE DGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
* Compute space needed for DGEBRD
CALL DGEBRD( M, N, A, LDA, S, DUM(1), DUM(1),
$ DUM(1), DUM(1), -1, INFO )
LWORK_DGEBRD=DUM(1)
LWORK_DGEBRD = INT( DUM(1) )
* Compute space needed for DORMBR
CALL DORMBR( 'Q', 'L', 'T', M, NRHS, M, A, LDA,
$ DUM(1), B, LDB, DUM(1), -1, INFO )
LWORK_DORMBR=DUM(1)
LWORK_DORMBR = INT( DUM(1) )
* Compute space needed for DORGBR
CALL DORGBR( 'P', M, N, M, A, LDA, DUM(1),
$ DUM(1), -1, INFO )
LWORK_DORGBR=DUM(1)
LWORK_DORGBR = INT( DUM(1) )
MAXWRK = 3*M + LWORK_DGEBRD
MAXWRK = MAX( MAXWRK, 3*M + LWORK_DORMBR )
MAXWRK = MAX( MAXWRK, 3*M + LWORK_DORGBR )
Expand Down
24 changes: 12 additions & 12 deletions SRC/sgelss.f
Original file line number Diff line number Diff line change
Expand Up @@ -253,11 +253,11 @@ SUBROUTINE SGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
*
* Compute space needed for SGEQRF
CALL SGEQRF( M, N, A, LDA, DUM(1), DUM(1), -1, INFO )
LWORK_SGEQRF=DUM(1)
LWORK_SGEQRF = INT( DUM(1) )
* Compute space needed for SORMQR
CALL SORMQR( 'L', 'T', M, NRHS, N, A, LDA, DUM(1), B,
$ LDB, DUM(1), -1, INFO )
LWORK_SORMQR=DUM(1)
LWORK_SORMQR = INT( DUM(1) )
MM = N
MAXWRK = MAX( MAXWRK, N + LWORK_SGEQRF )
MAXWRK = MAX( MAXWRK, N + LWORK_SORMQR )
Expand All @@ -272,15 +272,15 @@ SUBROUTINE SGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
* Compute space needed for SGEBRD
CALL SGEBRD( MM, N, A, LDA, S, DUM(1), DUM(1),
$ DUM(1), DUM(1), -1, INFO )
LWORK_SGEBRD=DUM(1)
LWORK_SGEBRD = INT( DUM(1) )
* Compute space needed for SORMBR
CALL SORMBR( 'Q', 'L', 'T', MM, NRHS, N, A, LDA, DUM(1),
$ B, LDB, DUM(1), -1, INFO )
LWORK_SORMBR=DUM(1)
LWORK_SORMBR = INT( DUM(1) )
* Compute space needed for SORGBR
CALL SORGBR( 'P', N, N, N, A, LDA, DUM(1),
$ DUM(1), -1, INFO )
LWORK_SORGBR=DUM(1)
LWORK_SORGBR = INT( DUM(1) )
* Compute total workspace needed
MAXWRK = MAX( MAXWRK, 3*N + LWORK_SGEBRD )
MAXWRK = MAX( MAXWRK, 3*N + LWORK_SORMBR )
Expand All @@ -304,19 +304,19 @@ SUBROUTINE SGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
* Compute space needed for SGEBRD
CALL SGEBRD( M, M, A, LDA, S, DUM(1), DUM(1),
$ DUM(1), DUM(1), -1, INFO )
LWORK_SGEBRD=DUM(1)
LWORK_SGEBRD = INT( DUM(1) )
* Compute space needed for SORMBR
CALL SORMBR( 'Q', 'L', 'T', M, NRHS, N, A, LDA,
$ DUM(1), B, LDB, DUM(1), -1, INFO )
LWORK_SORMBR=DUM(1)
LWORK_SORMBR = INT( DUM(1) )
* Compute space needed for SORGBR
CALL SORGBR( 'P', M, M, M, A, LDA, DUM(1),
$ DUM(1), -1, INFO )
LWORK_SORGBR=DUM(1)
LWORK_SORGBR = INT( DUM(1) )
* Compute space needed for SORMLQ
CALL SORMLQ( 'L', 'T', N, NRHS, M, A, LDA, DUM(1),
$ B, LDB, DUM(1), -1, INFO )
LWORK_SORMLQ=DUM(1)
LWORK_SORMLQ = INT( DUM(1) )
* Compute total workspace needed
MAXWRK = M + M*ILAENV( 1, 'SGELQF', ' ', M, N, -1,
$ -1 )
Expand All @@ -337,15 +337,15 @@ SUBROUTINE SGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
* Compute space needed for SGEBRD
CALL SGEBRD( M, N, A, LDA, S, DUM(1), DUM(1),
$ DUM(1), DUM(1), -1, INFO )
LWORK_SGEBRD=DUM(1)
LWORK_SGEBRD = INT( DUM(1) )
* Compute space needed for SORMBR
CALL SORMBR( 'Q', 'L', 'T', M, NRHS, M, A, LDA,
$ DUM(1), B, LDB, DUM(1), -1, INFO )
LWORK_SORMBR=DUM(1)
LWORK_SORMBR = INT( DUM(1) )
* Compute space needed for SORGBR
CALL SORGBR( 'P', M, N, M, A, LDA, DUM(1),
$ DUM(1), -1, INFO )
LWORK_SORGBR=DUM(1)
LWORK_SORGBR = INT( DUM(1) )
MAXWRK = 3*M + LWORK_SGEBRD
MAXWRK = MAX( MAXWRK, 3*M + LWORK_SORMBR )
MAXWRK = MAX( MAXWRK, 3*M + LWORK_SORGBR )
Expand Down
26 changes: 13 additions & 13 deletions SRC/zgelss.f
Original file line number Diff line number Diff line change
Expand Up @@ -266,11 +266,11 @@ SUBROUTINE ZGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
*
* Compute space needed for ZGEQRF
CALL ZGEQRF( M, N, A, LDA, DUM(1), DUM(1), -1, INFO )
LWORK_ZGEQRF = DBLE( DUM(1) )
LWORK_ZGEQRF = INT( DUM(1) )
* Compute space needed for ZUNMQR
CALL ZUNMQR( 'L', 'C', M, NRHS, N, A, LDA, DUM(1), B,
$ LDB, DUM(1), -1, INFO )
LWORK_ZUNMQR = DBLE( DUM(1) )
LWORK_ZUNMQR = INT( DUM(1) )
MM = N
MAXWRK = MAX( MAXWRK, N + N*ILAENV( 1, 'ZGEQRF', ' ', M,
$ N, -1, -1 ) )
Expand All @@ -284,15 +284,15 @@ SUBROUTINE ZGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
* Compute space needed for ZGEBRD
CALL ZGEBRD( MM, N, A, LDA, S, S, DUM(1), DUM(1), DUM(1),
$ -1, INFO )
LWORK_ZGEBRD = DBLE( DUM(1) )
LWORK_ZGEBRD = INT( DUM(1) )
* Compute space needed for ZUNMBR
CALL ZUNMBR( 'Q', 'L', 'C', MM, NRHS, N, A, LDA, DUM(1),
$ B, LDB, DUM(1), -1, INFO )
LWORK_ZUNMBR = DBLE( DUM(1) )
LWORK_ZUNMBR = INT( DUM(1) )
* Compute space needed for ZUNGBR
CALL ZUNGBR( 'P', N, N, N, A, LDA, DUM(1),
$ DUM(1), -1, INFO )
LWORK_ZUNGBR = DBLE( DUM(1) )
LWORK_ZUNGBR = INT( DUM(1) )
* Compute total workspace needed
MAXWRK = MAX( MAXWRK, 2*N + LWORK_ZGEBRD )
MAXWRK = MAX( MAXWRK, 2*N + LWORK_ZUNMBR )
Expand All @@ -310,23 +310,23 @@ SUBROUTINE ZGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
* Compute space needed for ZGELQF
CALL ZGELQF( M, N, A, LDA, DUM(1), DUM(1),
$ -1, INFO )
LWORK_ZGELQF = DBLE( DUM(1) )
LWORK_ZGELQF = INT( DUM(1) )
* Compute space needed for ZGEBRD
CALL ZGEBRD( M, M, A, LDA, S, S, DUM(1), DUM(1),
$ DUM(1), -1, INFO )
LWORK_ZGEBRD = DBLE( DUM(1) )
LWORK_ZGEBRD = INT( DUM(1) )
* Compute space needed for ZUNMBR
CALL ZUNMBR( 'Q', 'L', 'C', M, NRHS, N, A, LDA,
$ DUM(1), B, LDB, DUM(1), -1, INFO )
LWORK_ZUNMBR = DBLE( DUM(1) )
LWORK_ZUNMBR = INT( DUM(1) )
* Compute space needed for ZUNGBR
CALL ZUNGBR( 'P', M, M, M, A, LDA, DUM(1),
$ DUM(1), -1, INFO )
LWORK_ZUNGBR = DBLE( DUM(1) )
LWORK_ZUNGBR = INT( DUM(1) )
* Compute space needed for ZUNMLQ
CALL ZUNMLQ( 'L', 'C', N, NRHS, M, A, LDA, DUM(1),
$ B, LDB, DUM(1), -1, INFO )
LWORK_ZUNMLQ = DBLE( DUM(1) )
LWORK_ZUNMLQ = INT( DUM(1) )
* Compute total workspace needed
MAXWRK = M + LWORK_ZGELQF
MAXWRK = MAX( MAXWRK, 3*M + M*M + LWORK_ZGEBRD )
Expand All @@ -345,15 +345,15 @@ SUBROUTINE ZGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
* Compute space needed for ZGEBRD
CALL ZGEBRD( M, N, A, LDA, S, S, DUM(1), DUM(1),
$ DUM(1), -1, INFO )
LWORK_ZGEBRD = DBLE( DUM(1) )
LWORK_ZGEBRD = INT( DUM(1) )
* Compute space needed for ZUNMBR
CALL ZUNMBR( 'Q', 'L', 'C', M, NRHS, M, A, LDA,
$ DUM(1), B, LDB, DUM(1), -1, INFO )
LWORK_ZUNMBR = DBLE( DUM(1) )
LWORK_ZUNMBR = INT( DUM(1) )
* Compute space needed for ZUNGBR
CALL ZUNGBR( 'P', M, N, M, A, LDA, DUM(1),
$ DUM(1), -1, INFO )
LWORK_ZUNGBR = DBLE( DUM(1) )
LWORK_ZUNGBR = INT( DUM(1) )
MAXWRK = 2*M + LWORK_ZGEBRD
MAXWRK = MAX( MAXWRK, 2*M + LWORK_ZUNMBR )
MAXWRK = MAX( MAXWRK, 2*M + LWORK_ZUNGBR )
Expand Down