[WIP] Update LAPACK to 3.9.0 (#2353)

* Update make.inc entries for LAPACK 3.9.0

Reference-LAPACK PR 347 changed some variable names and relative paths

* Update LAPACK to 3.9.0

* Add new functions from LAPACK 3.9.0

* Add new functions from LAPACK 3.9.0

* Restore LOADER command 

as it makes it easier to specify pthread as needed

* Restore LOADER

* Restore EIG/LIN prefixes in cmdbase

* add binary path to lapack_testing.py call

* Restore OpenMP version check

* Restore OpenMP version check

* Restore fix for out-of-bounds array accesses

from #2096
This commit is contained in:
Martin Kroeker
2020-01-01 13:18:53 +01:00
committed by GitHub
parent 6c85cb1869
commit 375b1875c8
812 changed files with 36421 additions and 12050 deletions

View File

@@ -284,8 +284,9 @@
*
* Swap A(I1, I2+1:M) with A(I2, I2+1:M)
*
CALL DSWAP( M-I2, A( J1+I1-1, I2+1 ), LDA,
$ A( J1+I2-1, I2+1 ), LDA )
IF( I2.LT.M )
$ CALL DSWAP( M-I2, A( J1+I1-1, I2+1 ), LDA,
$ A( J1+I2-1, I2+1 ), LDA )
*
* Swap A(I1, I1) with A(I2,I2)
*
@@ -325,13 +326,15 @@
* Compute L(J+2, J+1) = WORK( 3:M ) / T(J, J+1),
* where A(J, J+1) = T(J, J+1) and A(J+2:M, J) = L(J+2:M, J+1)
*
IF( A( K, J+1 ).NE.ZERO ) THEN
ALPHA = ONE / A( K, J+1 )
CALL DCOPY( M-J-1, WORK( 3 ), 1, A( K, J+2 ), LDA )
CALL DSCAL( M-J-1, ALPHA, A( K, J+2 ), LDA )
ELSE
CALL DLASET( 'Full', 1, M-J-1, ZERO, ZERO,
$ A( K, J+2 ), LDA)
IF( J.LT.(M-1) ) THEN
IF( A( K, J+1 ).NE.ZERO ) THEN
ALPHA = ONE / A( K, J+1 )
CALL DCOPY( M-J-1, WORK( 3 ), 1, A( K, J+2 ), LDA )
CALL DSCAL( M-J-1, ALPHA, A( K, J+2 ), LDA )
ELSE
CALL DLASET( 'Full', 1, M-J-1, ZERO, ZERO,
$ A( K, J+2 ), LDA)
END IF
END IF
END IF
J = J + 1
@@ -432,8 +435,9 @@
*
* Swap A(I2+1:M, I1) with A(I2+1:M, I2)
*
CALL DSWAP( M-I2, A( I2+1, J1+I1-1 ), 1,
$ A( I2+1, J1+I2-1 ), 1 )
IF( I2.LT.M )
$ CALL DSWAP( M-I2, A( I2+1, J1+I1-1 ), 1,
$ A( I2+1, J1+I2-1 ), 1 )
*
* Swap A(I1, I1) with A(I2, I2)
*
@@ -473,13 +477,15 @@
* Compute L(J+2, J+1) = WORK( 3:M ) / T(J, J+1),
* where A(J, J+1) = T(J, J+1) and A(J+2:M, J) = L(J+2:M, J+1)
*
IF( A( J+1, K ).NE.ZERO ) THEN
ALPHA = ONE / A( J+1, K )
CALL DCOPY( M-J-1, WORK( 3 ), 1, A( J+2, K ), 1 )
CALL DSCAL( M-J-1, ALPHA, A( J+2, K ), 1 )
ELSE
CALL DLASET( 'Full', M-J-1, 1, ZERO, ZERO,
$ A( J+2, K ), LDA )
IF( J.LT.(M-1) ) THEN
IF( A( J+1, K ).NE.ZERO ) THEN
ALPHA = ONE / A( J+1, K )
CALL DCOPY( M-J-1, WORK( 3 ), 1, A( J+2, K ), 1 )
CALL DSCAL( M-J-1, ALPHA, A( J+2, K ), 1 )
ELSE
CALL DLASET( 'Full', M-J-1, 1, ZERO, ZERO,
$ A( J+2, K ), LDA )
END IF
END IF
END IF
J = J + 1