Unverified Commit 83ac986f authored by Andreas Marek's avatar Andreas Marek
Browse files

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