function test_piro_band_qr() % Usage : test_piro_band_qr() % Finds the QR using the band reduction algorithm for random input matrices and % compares the result with MATLAB's QR. % random input matrices. % % Copyright 2009, Sivasankaran Rajamanickam, Timothy A. Davis % http://www.cise.ufl.edu/research/sparse fprintf('All norms printed should be small\n') ; fprintf('n1 is the norm(qr(A) - piro_band_qr(A)) \n') ; fprintf('n2 is the norm(A - (Q * R)) \n\n') ; A = banded(10, 10, 5, 5) ; piro_band_verify_qr(A) ; A = banded(10, 20, 5, 5) ; piro_band_verify_qr(A) ; A = banded(20, 10, 5, 5) ; piro_band_verify_qr(A) ; A = banded(20, 10, 5, 6) ; piro_band_verify_qr(A) ; fprintf('\n------------------------ Complex QR ------------ \n\n') A = banded(10, 10, 5, 5) ; A1 = banded(10, 10, 5, 5) ; A = A + i * A1 ; piro_band_verify_qr(A) ; A = banded(10, 20, 6, 9) ; A1 = banded(10, 20, 6, 9) ; A = A + i * A1 ; piro_band_verify_qr(A) ; A = banded(20, 10, 6, 9) ; A1 = banded(20, 10, 6, 9) ; A = A + i * A1 ; piro_band_verify_qr(A) ; function piro_band_verify_qr(A) % [Q, R] = piro_band_qr(A) ; A1 = Q * R ; [m, n] = size(A) ; %Rmat = qr(A) ; %n1 = norm(full(Rmat - R)) ; %full(A) %full(A1) %full(R) %full(Q) n2 = norm(A1 - A) ; fprintf('A -- %d x %d, --------- n2 = %g\n', m, n, n2) ;