Implement Debian patch for QR decomposition and modify it

The QR decomposition test program can now called with parameters for
matrix size, nev, and block size.
This closses issue #20
parent bc224db3
...@@ -317,9 +317,9 @@ TESTS = $(check_SCRIPTS) ...@@ -317,9 +317,9 @@ TESTS = $(check_SCRIPTS)
chmod +x $@ chmod +x $@
## this one does not want any arguments ## this one does not want any arguments
elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@.sh: #elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@.sh:
echo '$(wrapper)./elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@' > $@ # echo '$(wrapper)./elpa2_test_real_default_kernel_qr_decomposition@SUFFIX@' > $@
chmod +x $@ # chmod +x $@
#elpa2_test_real_default_kernel_qr_decomposition_single_precision@SUFFIX@.sh: #elpa2_test_real_default_kernel_qr_decomposition_single_precision@SUFFIX@.sh:
# echo '$(wrapper)./elpa2_test_real_default_kernel_qr_decomposition_single_precision@SUFFIX@' > $@ # echo '$(wrapper)./elpa2_test_real_default_kernel_qr_decomposition_single_precision@SUFFIX@' > $@
......
...@@ -193,7 +193,7 @@ function solve_evp_real_2stage(na, nev, a, lda, ev, q, ldq, nblk, & ...@@ -193,7 +193,7 @@ function solve_evp_real_2stage(na, nev, a, lda, ev, q, ldq, nblk, &
endif endif
if (useQRActual) then if (useQRActual) then
if (mod(na,nblk) .ne. 0) then if (mod(na,2) .ne. 0) then
if (wantDebug) then if (wantDebug) then
write(error_unit,*) "solve_evp_real_2stage: QR-decomposition: blocksize does not fit with matrixsize" write(error_unit,*) "solve_evp_real_2stage: QR-decomposition: blocksize does not fit with matrixsize"
endif endif
......
...@@ -581,6 +581,7 @@ subroutine qr_tmerge_pdlarfb_1dcomm(m,mb,n,oldk,k,v,ldv,t,ldt,a,lda,baseidx,rev, ...@@ -581,6 +581,7 @@ subroutine qr_tmerge_pdlarfb_1dcomm(m,mb,n,oldk,k,v,ldv,t,ldt,a,lda,baseidx,rev,
else else
! do not calculate parts for T merge as there is nothing to merge ! do not calculate parts for T merge as there is nothing to merge
mergeoffset = 0
updateoffset = 0 updateoffset = 0
tgenoffset = updateoffset + updatesize tgenoffset = updateoffset + updatesize
......
...@@ -136,19 +136,26 @@ program test_real2 ...@@ -136,19 +136,26 @@ program test_real2
success = .true. success = .true.
!write_to_file = .false. !write_to_file = .false.
call read_input_parameters(na, nev, nblk, write_to_file)
if (COMMAND_ARGUMENT_COUNT() /= 0) then !if (COMMAND_ARGUMENT_COUNT() /= 0) then
write(error_unit,*) "This program does not support any command-line arguments" ! write(error_unit,*) "This program does not support any command-line arguments"
stop 1 ! stop 1
endif !endif
! override nblk ! override nblk
nblk = 2 ! nblk = 2
na = 4000 ! na = 4000
nev = 1500 ! nev = 1500
! make sure na, nbl is even
if (mod(nblk,2 ) .ne. 0) then
nblk = nblk - 1
endif
! make sure na is even ! make sure na is even
if (mod(na,nblk) .ne. 0) then if (mod(na,2) .ne. 0) then
na = na - 1 na = na - 1
endif endif
! make sure na is at least 34 ! make sure na is at least 34
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment