From 57f65cc858ca7f362b7df74afa479f4c826ff4f2 Mon Sep 17 00:00:00 2001 From: Felipe Gutierrez Date: Tue, 29 Mar 2016 14:37:00 -0500 Subject: [PATCH 01/28] add temp RapidPT patch --- .gitignore | 2 ++ snpm_TwoSampleTGetLabelsMatrices.m | 36 +++++++++++++++++++++++++ snpm_cp.m | 43 +++++++++++++++++++++++++----- snpm_pi_TwoSampT.m | 20 +++++++++----- 4 files changed, 87 insertions(+), 14 deletions(-) create mode 100644 snpm_TwoSampleTGetLabelsMatrices.m diff --git a/.gitignore b/.gitignore index beba1c2..297426a 100644 --- a/.gitignore +++ b/.gitignore @@ -219,3 +219,5 @@ pip-log.txt #Mr Developer .mr.developer.cfg +Copy_of_snpm_cp.m +snpm_RapidPT.m diff --git a/snpm_TwoSampleTGetLabelsMatrices.m b/snpm_TwoSampleTGetLabelsMatrices.m new file mode 100644 index 0000000..774d3ff --- /dev/null +++ b/snpm_TwoSampleTGetLabelsMatrices.m @@ -0,0 +1,36 @@ +function [ indexMatrix, permutationMatrix1, permutationMatrix2 ] = snpm_TwoSampleTGetLabelsMatrices(numPermutations, N, nGroup1 ) +%GetPermutationMatrices +% * indexMatrix: Each column contains the indeces that will be used to +% make a permutation. Rows 1-nGroup1 are the indeces for group 1 and +% rows nGroup1-size(labels,1) are the indeces for group 2. This matrix is +% used when doing serial permutation testing where each permutation is +% calculated one by one. +% +% * permutationMatrix1: Matrix composed of 1's and 0's. At each row the +% columns that contain 1's refer to the corresponding subject in the data +% matrix at that index and this subject will be in group 1 for that +% permutations. +% +% * permutationMatrix2: Same as permutationMatrix2 but for group 2 +% instead of 1. + rng('default'); + rng('shuffle'); + indexMatrix = zeros(numPermutations, N); + permutationMatrix1 = zeros(numPermutations, N); + permutationMatrix2 = zeros(numPermutations, N); + + for t = 1:1:numPermutations + currLabels = randperm(N); + currLabels1 = currLabels(1:(nGroup1)); + currLabels2 = currLabels(nGroup1+1:end); + permutationMatrix1(t,currLabels1) = 1; + permutationMatrix2(t,currLabels2) = 1; + indexMatrix(t,:) = currLabels; + end + +end + + + + + diff --git a/snpm_cp.m b/snpm_cp.m index 1a82799..398c26b 100644 --- a/snpm_cp.m +++ b/snpm_cp.m @@ -753,6 +753,7 @@ function snpm_cp(CWD) %======================================================================= % - C O M P U T E F O R P E R M U T A T I O N S %======================================================================= + %-Cycle over planes (or just once for volumetric mode) %-If working plane by plane, preallocate Q & XYZ for speed/mem. efficiency @@ -773,6 +774,20 @@ function snpm_cp(CWD) %-Loop over planes (breaks out after first loop if bVolm) %----------------------------------------------------------------------- nP = []; + +if(strcmp('snpm_pi_TwoSampT',sDesFile)) %&& nPerm > 10000) + nGroup1 = size(find(iCond == 1),2); + [N,V] = size(X); + RapidPT_path = '~/PermTest/RapidPT/'; + addpath(RapidPT_path); + write = 0; + + [outputs, timings] = TwoSampleRapidPT(X, nPerm, nGroup1, write, RapidPT_path); + MaxT = outputs.MaxT; + save('MaxT.mat','MaxT'); + save('SnPMt.mat','SnPMt') + save('RapidPT_timings.mat','timings'); +else for i = 1:zdim PlStart=toc;SmTime=0; %-Timestamp (>) @@ -831,9 +846,14 @@ function snpm_cp(CWD) STCS = snpm_STcalc('init',nPerm); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - - %-Loop over permutations + + disp('Starting Permutation Testing...'); +% if(nPerm >= 1000) +% [MaxT] = snpm_RapidPT(X,nPerm,sDesign); +% end + snpmPermTime = tic; + + % Loop over permutations %----------------------------------------------------------------- for perm = StartPerm:nPerm PmStart = toc; %-Timestamp (>) @@ -889,7 +909,7 @@ function snpm_cp(CWD) %-Save Max T statistic %----------------------------------------------------------- MaxT(perm,:) = max([ max(T(1,:)), -min(T(1,:)); ... - MaxT(perm,1), MaxT(perm,2) ]); + MaxT(perm,1), MaxT(perm,2) ]); %-Update nonparametric P-value %----------------------------------------------------------- @@ -1011,7 +1031,13 @@ function snpm_cp(CWD) end % (if bVolm) end % (for perm = StartPerm:nPerm) - Perm loop + + snpmPermTime = toc(snpmPermTime); + output_filename = strcat('~/PermTest/outputs/TwoSample_ADRC_25_25_50/outputs_',num2str(size(X,1)),'_',num2str(nPerm),'.mat'); + timing_filename = strcat('~/PermTest/timings/TwoSample_ADRC_25_25_50/timings_',num2str(size(X,1)),'_',num2str(nPerm),'.mat'); + %save(timing_filename, 'snpmPermTime'); + %- save STCS if bST & pU_ST_Ut>=0 if bhPerms %Double the STCS variables. @@ -1039,6 +1065,7 @@ function snpm_cp(CWD) end % (for i = 1:zdim) - loop over planes + fprintf('\n\nPermutations are done. Writing out images.\n') if bhPerms @@ -1058,6 +1085,10 @@ function snpm_cp(CWD) lP_pos_vol=reshape(lP_pos_image,DIM(1),DIM(2),DIM(3)); spm_write_vol(VlP_pos, lP_pos_vol); +% save MaxT for accuracy comparisson +%save(output_filename, 'MaxT'); + + if STAT == 'T' if bhPerms nP_neg=1+1/(2*nPerm)-nP; @@ -1174,10 +1205,8 @@ function snpm_cp(CWD) 'completed permutations\n'],MaxT(1,1),Rank,perm*(bhPerms+1)); fprintf('\n\tRun snpm_pp for full results\n\n'); +end % End else -function Vs = sf_close_vol(Vs) -% Don't need to close images in SPM5 -return diff --git a/snpm_pi_TwoSampT.m b/snpm_pi_TwoSampT.m index b82861a..78c080f 100644 --- a/snpm_pi_TwoSampT.m +++ b/snpm_pi_TwoSampT.m @@ -212,17 +212,23 @@ % Allocate final result PiCond = zeros(nPiCond,nScan); + nGroup1 = length(find(iCond==1)); + nGroup2 = length(find(iCond==-1)); + + [indexMatrix, labelsMatrix1, labelsMatrix2] = snpm_TwoSampleTGetLabelsMatrices(nPiCond-1, nScan, nGroup1 ); % Fill first row PiCond(1,:) = iCond; + PiCond(2:nPiCond,:) = labelsMatrix1 - labelsMatrix2; % Fill subsequent rows, checking that we're not repeating - for i=2:nPiCond - tmp=PiCond(i-1,randperm(nScan)); - while any(all(PiCond(1:(i-1),:)'==meshgrid(tmp,1:(i-1))')) - tmp=PiCond(i-1,randperm(nScan)); - end - PiCond(i,:)=tmp; - end +% for i=2:nPiCond +% disp(i) +% tmp=PiCond(i-1,randperm(nScan)); +% while any(all(PiCond(1:(i-1),:)'==meshgrid(tmp,1:(i-1))')) +% tmp=PiCond(i-1,randperm(nScan)); +% end +% PiCond(i,:)=tmp; +% end bhPerms=0; end From 5b867dc61192fd38d9148932fe2c1779e1128302 Mon Sep 17 00:00:00 2001 From: Felipe Gutierrez Date: Tue, 12 Apr 2016 14:53:36 -0500 Subject: [PATCH 02/28] make rapidpt patch a blackbox. --- rapidpt_postprocess.m | 29 +++++++++++++++++++++++++++++ snpm_cp.m | 30 ++++++++++++++++++++++++++---- 2 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 rapidpt_postprocess.m diff --git a/rapidpt_postprocess.m b/rapidpt_postprocess.m new file mode 100644 index 0000000..d323476 --- /dev/null +++ b/rapidpt_postprocess.m @@ -0,0 +1,29 @@ +function [ ] = rapidpt_postprocess(MaxT, SnPMt, XYZ, brain, alpha, params) +%rapidpt_postprocess Summary of this function goes here +% Detailed explanation goes here + + xSize = params.xdim; + ySize = params.ydim; + zSize = params.zdim; + + [ tThresh ] = getTThreshold(MaxT, alpha); + sigVoxelsIndices = find(SnPMt >= tThresh); + numSigVoxels = size(sigVoxelsIndices,2); + + coords = floor(repmat(params.origin,1,numSigVoxels) - XYZ(:,sigVoxelsIndices)); + + newBrain = zeros(xSize,ySize,zSize); + for i=1:numSigVoxels + newBrain(coords(1,i),coords(2,i),coords(3,i)) = 1; + end + + brain_bin = brain; + brain_bin.img = double(newBrain); + imgStr = 'activeBrain'; + + save_nii(brain_bin,strcat('outputs/',imgStr,'_',num2str(alpha),'.nii')); + save(strcat('outputs/coords_',imgStr,'_',num2str(alpha),'.mat'),'coords'); + + +end + diff --git a/snpm_cp.m b/snpm_cp.m index 398c26b..31088b9 100644 --- a/snpm_cp.m +++ b/snpm_cp.m @@ -780,13 +780,35 @@ function snpm_cp(CWD) [N,V] = size(X); RapidPT_path = '~/PermTest/RapidPT/'; addpath(RapidPT_path); + addpath(strcat(RapidPT_path,'postprocess')); + write = 0; - + if(exist('outputs','dir') ~= 7) + mkdir('outputs'); + end + runInfo = strcat('_',num2str(nGroup1),'_',num2str(N-nGroup1),'_',num2str(nPerm),'.mat'); + params.V = V; + params.N = N; + params.nPerm = nPerm; + params.xdim = xdim; + params.ydim = ydim; + params.zdim = zdim; + params.origin = ORIGIN; + params.nGroup1 = nGroup1; + params.nGroup2 = N - nGroup1; + alpha = 0.05; + save(strcat('outputs/params',runInfo),'params'); + save(strcat('outputs/XYZ',runInfo),'XYZ'); + save(strcat('outputs/SnPMt',runInfo),'SnPMt'); [outputs, timings] = TwoSampleRapidPT(X, nPerm, nGroup1, write, RapidPT_path); MaxT = outputs.MaxT; - save('MaxT.mat','MaxT'); - save('SnPMt.mat','SnPMt') - save('RapidPT_timings.mat','timings'); + save(strcat('outputs/MaxT',runInfo),'MaxT'); + save('SnPMt.mat','SnPMt'); % Real t-statistic for each voxel. + save(strcat('outputs/timings_',runInfo),'timings'); + + brain = load_nii(Vt.fname); + rapidpt_postprocess(MaxT, SnPMt, XYZ, brain, alpha, params) + else for i = 1:zdim From 56a0f97aefdbd759b96ff47ed6dd498f53b356b8 Mon Sep 17 00:00:00 2001 From: Felipe Gutierrez Date: Mon, 25 Apr 2016 23:50:14 -0500 Subject: [PATCH 03/28] add average image to outputs, add multiple alphas --- rapidpt_postprocess.m | 38 ++++++++++++++++++++++---------------- snpm_cp.m | 8 +++++--- 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/rapidpt_postprocess.m b/rapidpt_postprocess.m index d323476..097156b 100644 --- a/rapidpt_postprocess.m +++ b/rapidpt_postprocess.m @@ -5,24 +5,30 @@ xSize = params.xdim; ySize = params.ydim; zSize = params.zdim; - - [ tThresh ] = getTThreshold(MaxT, alpha); - sigVoxelsIndices = find(SnPMt >= tThresh); - numSigVoxels = size(sigVoxelsIndices,2); - - coords = floor(repmat(params.origin,1,numSigVoxels) - XYZ(:,sigVoxelsIndices)); - - newBrain = zeros(xSize,ySize,zSize); - for i=1:numSigVoxels - newBrain(coords(1,i),coords(2,i),coords(3,i)) = 1; + numAlphas = size(alpha,2); + tThresh = zeros(1,numAlphas); + for i=1:numAlphas + currAlpha = alpha(1,i); + tThresh(1,i) = getTThreshold(MaxT, currAlpha); + sigVoxelsIndices = find(SnPMt >= tThresh(1,i)); + numSigVoxels = size(sigVoxelsIndices,2); + + coords = floor(repmat(params.origin,1,numSigVoxels) - XYZ(:,sigVoxelsIndices)); + + newBrain = zeros(xSize,ySize,zSize); + for j=1:numSigVoxels + newBrain(coords(1,j),coords(2,j),coords(3,j)) = 1; + end + + brain_bin = brain; + brain_bin.img = double(newBrain); + imgStr = 'activeBrain'; + + save_nii(brain_bin,strcat('outputs/',imgStr,'_',num2str(currAlpha),'.nii')); + save(strcat('outputs/coords_',imgStr,'_',num2str(currAlpha),'.mat'),'coords'); end - - brain_bin = brain; - brain_bin.img = double(newBrain); - imgStr = 'activeBrain'; - save_nii(brain_bin,strcat('outputs/',imgStr,'_',num2str(alpha),'.nii')); - save(strcat('outputs/coords_',imgStr,'_',num2str(alpha),'.mat'),'coords'); + end diff --git a/snpm_cp.m b/snpm_cp.m index 31088b9..2e489d8 100644 --- a/snpm_cp.m +++ b/snpm_cp.m @@ -775,7 +775,7 @@ function snpm_cp(CWD) %----------------------------------------------------------------------- nP = []; -if(strcmp('snpm_pi_TwoSampT',sDesFile)) %&& nPerm > 10000) +if(strcmp('snpm_pi_TwoSampT',sDesFile) && nPerm < 10000) nGroup1 = size(find(iCond == 1),2); [N,V] = size(X); RapidPT_path = '~/PermTest/RapidPT/'; @@ -796,15 +796,17 @@ function snpm_cp(CWD) params.origin = ORIGIN; params.nGroup1 = nGroup1; params.nGroup2 = N - nGroup1; - alpha = 0.05; + alpha = [0.5 0.25 0.1 0.05 0.01 0.001]; + avgImage = mean(X); save(strcat('outputs/params',runInfo),'params'); save(strcat('outputs/XYZ',runInfo),'XYZ'); save(strcat('outputs/SnPMt',runInfo),'SnPMt'); + save(strcat('outputs/avgImage',runInfo),'avgImage'); [outputs, timings] = TwoSampleRapidPT(X, nPerm, nGroup1, write, RapidPT_path); MaxT = outputs.MaxT; save(strcat('outputs/MaxT',runInfo),'MaxT'); save('SnPMt.mat','SnPMt'); % Real t-statistic for each voxel. - save(strcat('outputs/timings_',runInfo),'timings'); + save(strcat('outputs/timings',runInfo),'timings'); brain = load_nii(Vt.fname); rapidpt_postprocess(MaxT, SnPMt, XYZ, brain, alpha, params) From e5bf4b34e40f60038051df473af8c3ece3b0dd4d Mon Sep 17 00:00:00 2001 From: felipegb94 Date: Mon, 20 Jun 2016 22:44:51 -0500 Subject: [PATCH 04/28] Ready to do parallel runs --- snpm_cp.m | 40 ++++++++++++++++++++++++++++------------ snpm_pi_TwoSampT.m | 2 +- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/snpm_cp.m b/snpm_cp.m index 2e489d8..11945e9 100644 --- a/snpm_cp.m +++ b/snpm_cp.m @@ -426,6 +426,8 @@ function snpm_cp(CWD) lP_FDR_neg_image=repmat(NaN,1, VolDim); end +snpmPermTime = tic; + %======================================================================= % - C O R R E C T P E R M U T A T I O N %======================================================================= @@ -435,6 +437,7 @@ function snpm_cp(CWD) % statistics. disp('Working on correct permutation...'); + SnPMt=[]; %Initialzie SnPMt,which will store the t's from correct permutation. for i = 1:zdim @@ -774,10 +777,14 @@ function snpm_cp(CWD) %-Loop over planes (breaks out after first loop if bVolm) %----------------------------------------------------------------------- nP = []; - -if(strcmp('snpm_pi_TwoSampT',sDesFile) && nPerm < 10000) - nGroup1 = size(find(iCond == 1),2); - [N,V] = size(X); +nGroup1 = size(find(iCond == 1),2); +params.N = size(X,1); +params.V = size(X,2); +nGroup2 = N - nGroup1; +runOutDir = strcat(num2str(params.N),'_',num2str(nGroup1),'_',num2str(nGroup2)); +runInfo = strcat(runOutDir,'_',num2str(nPerm),'.mat'); + +if(strcmp('snpm_pi_TwoSampT',sDesFile) && nPerm < 1000) RapidPT_path = '~/PermTest/RapidPT/'; addpath(RapidPT_path); addpath(strcat(RapidPT_path,'postprocess')); @@ -786,9 +793,6 @@ function snpm_cp(CWD) if(exist('outputs','dir') ~= 7) mkdir('outputs'); end - runInfo = strcat('_',num2str(nGroup1),'_',num2str(N-nGroup1),'_',num2str(nPerm),'.mat'); - params.V = V; - params.N = N; params.nPerm = nPerm; params.xdim = xdim; params.ydim = ydim; @@ -875,7 +879,6 @@ function snpm_cp(CWD) % if(nPerm >= 1000) % [MaxT] = snpm_RapidPT(X,nPerm,sDesign); % end - snpmPermTime = tic; % Loop over permutations %----------------------------------------------------------------- @@ -1058,9 +1061,9 @@ function snpm_cp(CWD) snpmPermTime = toc(snpmPermTime); - output_filename = strcat('~/PermTest/outputs/TwoSample_ADRC_25_25_50/outputs_',num2str(size(X,1)),'_',num2str(nPerm),'.mat'); - timing_filename = strcat('~/PermTest/timings/TwoSample_ADRC_25_25_50/timings_',num2str(size(X,1)),'_',num2str(nPerm),'.mat'); - %save(timing_filename, 'snpmPermTime'); + outputs_filename = strcat('~/PermTest/outputs_parallel/',runOutDir,'/snpm/outputs_',runInfo); + timings_filename = strcat('~/PermTest/timings_parallel/',runOutDir,'/snpm/timings_',runInfo); + save(timings_filename, 'snpmPermTime'); %- save STCS if bST & pU_ST_Ut>=0 @@ -1110,7 +1113,20 @@ function snpm_cp(CWD) spm_write_vol(VlP_pos, lP_pos_vol); % save MaxT for accuracy comparisson -%save(output_filename, 'MaxT'); + + params.nPerm = nPerm; + params.xdim = xdim; + params.ydim = ydim; + params.zdim = zdim; + params.origin = ORIGIN; + params.nGroup1 = nGroup1; + params.nGroup2 = N - nGroup1; + snpmOutputs.params = params; + snpmOutputs.MaxT = MaxT; + snpmOutputs.avgImage = mean(X); + snpmOutputs.XYZ = XYZ; + snpmOutputs.SnPMt = SnPMt; + save(outputs_filename, 'snpmOutputs'); if STAT == 'T' diff --git a/snpm_pi_TwoSampT.m b/snpm_pi_TwoSampT.m index 78c080f..3e5c0ad 100644 --- a/snpm_pi_TwoSampT.m +++ b/snpm_pi_TwoSampT.m @@ -215,7 +215,7 @@ nGroup1 = length(find(iCond==1)); nGroup2 = length(find(iCond==-1)); - [indexMatrix, labelsMatrix1, labelsMatrix2] = snpm_TwoSampleTGetLabelsMatrices(nPiCond-1, nScan, nGroup1 ); + [indexMatrix, labelsMatrix1, labelsMatrix2] = snpm_TwoSampleTGetLabelsMatrices(nPiCond-1, nScan, nGroup1); % Fill first row PiCond(1,:) = iCond; From 4f8bc261b455aa8edbcc7ffcea0f1e1cdfe900d4 Mon Sep 17 00:00:00 2001 From: felipegb94 Date: Thu, 23 Jun 2016 23:18:20 -0500 Subject: [PATCH 05/28] fixed dir name --- snpm_cp.m | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/snpm_cp.m b/snpm_cp.m index 11945e9..595de8c 100644 --- a/snpm_cp.m +++ b/snpm_cp.m @@ -780,7 +780,7 @@ function snpm_cp(CWD) nGroup1 = size(find(iCond == 1),2); params.N = size(X,1); params.V = size(X,2); -nGroup2 = N - nGroup1; +nGroup2 = params.N - nGroup1; runOutDir = strcat(num2str(params.N),'_',num2str(nGroup1),'_',num2str(nGroup2)); runInfo = strcat(runOutDir,'_',num2str(nPerm),'.mat'); @@ -1061,8 +1061,8 @@ function snpm_cp(CWD) snpmPermTime = toc(snpmPermTime); - outputs_filename = strcat('~/PermTest/outputs_parallel/',runOutDir,'/snpm/outputs_',runInfo); - timings_filename = strcat('~/PermTest/timings_parallel/',runOutDir,'/snpm/timings_',runInfo); + outputs_filename = strcat('/u/v/a/vamsi/private/PermTest/outputs_parallel/',runOutDir,'/snpm/outputs_',runInfo); + timings_filename = strcat('/u/v/a/vamsi/private/PermTest/timings_parallel/',runOutDir,'/snpm/timings_',runInfo); save(timings_filename, 'snpmPermTime'); %- save STCS @@ -1120,7 +1120,7 @@ function snpm_cp(CWD) params.zdim = zdim; params.origin = ORIGIN; params.nGroup1 = nGroup1; - params.nGroup2 = N - nGroup1; + params.nGroup2 = params.N - nGroup1; snpmOutputs.params = params; snpmOutputs.MaxT = MaxT; snpmOutputs.avgImage = mean(X); From 2b4995596d6a4c2a440966d1417782ad765a4ffe Mon Sep 17 00:00:00 2001 From: felipegb94 Date: Thu, 23 Jun 2016 23:43:36 -0500 Subject: [PATCH 06/28] syntax err fix --- snpm_cp.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/snpm_cp.m b/snpm_cp.m index 595de8c..d9103dc 100644 --- a/snpm_cp.m +++ b/snpm_cp.m @@ -784,7 +784,7 @@ function snpm_cp(CWD) runOutDir = strcat(num2str(params.N),'_',num2str(nGroup1),'_',num2str(nGroup2)); runInfo = strcat(runOutDir,'_',num2str(nPerm),'.mat'); -if(strcmp('snpm_pi_TwoSampT',sDesFile) && nPerm < 1000) +if(strcmp('snpm_pi_TwoSampT',sDesFile) && nPerm == 2) RapidPT_path = '~/PermTest/RapidPT/'; addpath(RapidPT_path); addpath(strcat(RapidPT_path,'postprocess')); @@ -799,7 +799,7 @@ function snpm_cp(CWD) params.zdim = zdim; params.origin = ORIGIN; params.nGroup1 = nGroup1; - params.nGroup2 = N - nGroup1; + params.nGroup2 = params.N - nGroup1; alpha = [0.5 0.25 0.1 0.05 0.01 0.001]; avgImage = mean(X); save(strcat('outputs/params',runInfo),'params'); From d3eb53abd0ff25d35e095351fa225afe2c0829a2 Mon Sep 17 00:00:00 2001 From: Felipe Gutierrez Date: Tue, 8 Nov 2016 01:40:35 -0600 Subject: [PATCH 07/28] working patch that allows to use snpm_pp after computing with RapidPT --- snpm_cp.m | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/snpm_cp.m b/snpm_cp.m index d9103dc..da20f0d 100644 --- a/snpm_cp.m +++ b/snpm_cp.m @@ -784,7 +784,7 @@ function snpm_cp(CWD) runOutDir = strcat(num2str(params.N),'_',num2str(nGroup1),'_',num2str(nGroup2)); runInfo = strcat(runOutDir,'_',num2str(nPerm),'.mat'); -if(strcmp('snpm_pi_TwoSampT',sDesFile) && nPerm == 2) +if(strcmp('snpm_pi_TwoSampT',sDesFile) && nPerm >= 10000) RapidPT_path = '~/PermTest/RapidPT/'; addpath(RapidPT_path); addpath(strcat(RapidPT_path,'postprocess')); @@ -809,11 +809,18 @@ function snpm_cp(CWD) [outputs, timings] = TwoSampleRapidPT(X, nPerm, nGroup1, write, RapidPT_path); MaxT = outputs.MaxT; save(strcat('outputs/MaxT',runInfo),'MaxT'); - save('SnPMt.mat','SnPMt'); % Real t-statistic for each voxel. save(strcat('outputs/timings',runInfo),'timings'); - brain = load_nii(Vt.fname); - rapidpt_postprocess(MaxT, SnPMt, XYZ, brain, alpha, params) + % Save variables for snpm_pp + MaxT = [MaxT;-MaxT]; + [~, SnPMucp, ~, ~] = ttest2(X(1:nGroup1, :), X(nGroup1+1:end, :), 0.05, 'both', 'unequal'); + save('SnPMucp.mat','SnPMucp') + save('XYZ.mat','XYZ'); + eval(['save SnPM ',s_SnPM_save]); + save('SnPMt.mat','SnPMt'); % Real t-statistic for each voxel. + + + %rapidpt_postprocess(MaxT, SnPMt, XYZ, brain, alpha, params) else for i = 1:zdim @@ -876,9 +883,6 @@ function snpm_cp(CWD) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% disp('Starting Permutation Testing...'); -% if(nPerm >= 1000) -% [MaxT] = snpm_RapidPT(X,nPerm,sDesign); -% end % Loop over permutations %----------------------------------------------------------------- @@ -1060,9 +1064,8 @@ function snpm_cp(CWD) end % (for perm = StartPerm:nPerm) - Perm loop snpmPermTime = toc(snpmPermTime); - - outputs_filename = strcat('/u/v/a/vamsi/private/PermTest/outputs_parallel/',runOutDir,'/snpm/outputs_',runInfo); - timings_filename = strcat('/u/v/a/vamsi/private/PermTest/timings_parallel/',runOutDir,'/snpm/timings_',runInfo); + outputs_filename = strcat('outputs_',runInfo); + timings_filename = strcat('timings_',runInfo); save(timings_filename, 'snpmPermTime'); %- save STCS From 9cd19f5cde2262452287218f759ac4417a2ae9f8 Mon Sep 17 00:00:00 2001 From: Felipe Gutierrez Date: Tue, 8 Nov 2016 02:48:51 -0600 Subject: [PATCH 08/28] add minimized version of RapidPT --- .gitignore | 2 - RapidPT_min/AddPaths.m | 12 + RapidPT_min/LICENSE.txt | 21 + RapidPT_min/RapidPT.m | 188 +++++ RapidPT_min/TwoSampleGetPermutationMatrices.m | 36 + RapidPT_min/TwoSampleRapidPT.m | 93 +++ RapidPT_min/include/grasta.1.2.0/GPL.txt | 674 +++++++++++++++++ RapidPT_min/include/grasta.1.2.0/LGPL.txt | 165 +++++ RapidPT_min/include/grasta.1.2.0/LICENSE.txt | 15 + RapidPT_min/include/grasta.1.2.0/admm_srp.m | 99 +++ .../grasta.1.2.0/bgfg_seperation_grasta.m | 106 +++ RapidPT_min/include/grasta.1.2.0/bgtraining.m | 88 +++ RapidPT_min/include/grasta.1.2.0/column.pdf | Bin 0 -> 18384 bytes .../grasta.1.2.0/grasta_RobustMC_demo.m | 189 +++++ RapidPT_min/include/grasta.1.2.0/grasta_mc.m | 83 +++ .../include/grasta.1.2.0/grasta_path.m | 23 + .../include/grasta.1.2.0/grasta_stream.m | 310 ++++++++ .../make_video/ReProCS/Projection.m | 13 + .../make_video/ReProCS/Yall1/Readme.txt | 35 + .../make_video/ReProCS/Yall1/yall1.m | 386 ++++++++++ .../grasta.1.2.0/make_video/ReProCS/gs.m | 17 + .../make_video/ReProCS/recursivePCA.m | 27 + .../grasta.1.2.0/make_video/ReProCS/subLS.m | 12 + .../make_video/bgfg_seperation_ReProCSmod.m | 203 +++++ .../make_video/bgfg_seperation_mf.m | 93 +++ .../grasta.1.2.0/make_video/frames2matrix.m | 45 ++ .../inexact_alm_rpca/PROPACK/Afunc.m | 12 + .../inexact_alm_rpca/PROPACK/AtAfunc.m | 13 + .../inexact_alm_rpca/PROPACK/Atransfunc.m | 12 + .../inexact_alm_rpca/PROPACK/Cfunc.m | 15 + .../inexact_alm_rpca/PROPACK/bdsqr.m | 31 + .../inexact_alm_rpca/PROPACK/bdsqr.mexglx | Bin 0 -> 74546 bytes .../inexact_alm_rpca/PROPACK/bdsqr.mexsg | Bin 0 -> 25208 bytes .../inexact_alm_rpca/PROPACK/bdsqr.mexsg64 | Bin 0 -> 26109 bytes .../inexact_alm_rpca/PROPACK/bdsqr.mexsol | Bin 0 -> 95852 bytes .../inexact_alm_rpca/PROPACK/bdsqr.mexw32 | Bin 0 -> 55808 bytes .../inexact_alm_rpca/PROPACK/bdsqr_mex.c | 71 ++ .../inexact_alm_rpca/PROPACK/compute_int.m | 56 ++ .../inexact_alm_rpca/PROPACK/dbdqr.f | 23 + .../inexact_alm_rpca/PROPACK/helio.mat | Bin 0 -> 256353 bytes .../inexact_alm_rpca/PROPACK/lanbpro.doc | 85 +++ .../inexact_alm_rpca/PROPACK/lanbpro.m | 699 ++++++++++++++++++ .../inexact_alm_rpca/PROPACK/lanbpro.txt | 85 +++ .../inexact_alm_rpca/PROPACK/laneig.doc | 62 ++ .../inexact_alm_rpca/PROPACK/laneig.m | 374 ++++++++++ .../inexact_alm_rpca/PROPACK/laneig.txt | 62 ++ .../inexact_alm_rpca/PROPACK/lanpro.doc | 75 ++ .../inexact_alm_rpca/PROPACK/lanpro.m | 445 +++++++++++ .../inexact_alm_rpca/PROPACK/lanpro.txt | 75 ++ .../inexact_alm_rpca/PROPACK/lansvd.doc | 58 ++ .../inexact_alm_rpca/PROPACK/lansvd.m | 343 +++++++++ .../inexact_alm_rpca/PROPACK/lansvd.txt | 58 ++ .../inexact_alm_rpca/PROPACK/mminfo.m | 108 +++ .../inexact_alm_rpca/PROPACK/mmread.m | 222 ++++++ .../inexact_alm_rpca/PROPACK/mmwrite.m | 274 +++++++ .../inexact_alm_rpca/PROPACK/pythag.m | 31 + .../inexact_alm_rpca/PROPACK/refinebounds.m | 41 + .../inexact_alm_rpca/PROPACK/reorth.f | 116 +++ .../inexact_alm_rpca/PROPACK/reorth.m | 102 +++ .../inexact_alm_rpca/PROPACK/reorth.mexglx | Bin 0 -> 9640 bytes .../inexact_alm_rpca/PROPACK/reorth.mexsg | Bin 0 -> 25428 bytes .../inexact_alm_rpca/PROPACK/reorth.mexsg64 | Bin 0 -> 26694 bytes .../inexact_alm_rpca/PROPACK/reorth.mexsol | Bin 0 -> 86872 bytes .../inexact_alm_rpca/PROPACK/reorth_mex.c | 84 +++ .../inexact_alm_rpca/PROPACK/test.m | 327 ++++++++ .../inexact_alm_rpca/PROPACK/testtqlb.m | 55 ++ .../inexact_alm_rpca/PROPACK/tqlb.f | 176 +++++ .../inexact_alm_rpca/PROPACK/tqlb.m | 35 + .../inexact_alm_rpca/PROPACK/tqlb.mexglx | Bin 0 -> 9515 bytes .../inexact_alm_rpca/PROPACK/tqlb.mexsg | Bin 0 -> 25564 bytes .../inexact_alm_rpca/PROPACK/tqlb.mexsg64 | Bin 0 -> 27536 bytes .../inexact_alm_rpca/PROPACK/tqlb.mexsol | Bin 0 -> 9676 bytes .../inexact_alm_rpca/PROPACK/tqlb_mex.c | 49 ++ .../inexact_alm_rpca/PROPACK/update_gbound.m | 69 ++ .../make_video/inexact_alm_rpca/choosvd.m | 39 + .../make_video/inexact_alm_rpca/ialm_demo.m | 61 ++ .../inexact_alm_rpca/inexact_alm_rpca.m | 117 +++ .../grasta.1.2.0/make_video/make_video.m | 45 ++ .../make_video/median_filter_bg.m | 28 + .../grasta.1.2.0/make_video/videoFrames.m | 101 +++ .../grasta.1.2.0/mex/blas_win32_MT.dll | Bin 0 -> 735232 bytes .../grasta.1.2.0/mex/lapack-win32/README.txt | 10 + .../mex/lapack-win32/blas_win32_MT.lib | Bin 0 -> 26850 bytes .../mex/lapack-win32/lapack_win32_MT.lib | Bin 0 -> 254576 bytes .../grasta.1.2.0/mex/lapack_win32_MT.dll | Bin 0 -> 4342272 bytes .../include/grasta.1.2.0/mex/mex_srp.cpp | 215 ++++++ .../grasta.1.2.0/mex/mex_srp.mexmaci64 | Bin 0 -> 78852 bytes RapidPT_min/include/grasta.1.2.0/outliers.pdf | Bin 0 -> 13134 bytes .../include/grasta.1.2.0/util/calc_fgroc.m | 54 ++ .../grasta.1.2.0/util/calc_precision_recall.m | 54 ++ .../grasta.1.2.0/util/fg_thresholding.m | 16 + .../grasta.1.2.0/util/groundTruthFrames.m | 296 ++++++++ RapidPT_min/include/grasta.1.2.0/video_demo.m | 132 ++++ RapidPT_min/util/CompareHistograms.m | 20 + RapidPT_min/util/CompareHistogramsVisually.m | 23 + RapidPT_min/util/GetTThresh.m | 8 + RapidPT_min/util/InitGrastaParams.m | 27 + RapidPT_min/util/ProcessInput.m | 45 ++ RapidPT_min/util/ValidateInputs.m | 16 + RapidPT_min/util/gen_hist.m | 21 + RapidPT_min/util/kldiv2.m | 101 +++ rapidpt_postprocess.m | 35 - snpm_cp.m | 79 +- 103 files changed, 8731 insertions(+), 90 deletions(-) create mode 100644 RapidPT_min/AddPaths.m create mode 100644 RapidPT_min/LICENSE.txt create mode 100644 RapidPT_min/RapidPT.m create mode 100644 RapidPT_min/TwoSampleGetPermutationMatrices.m create mode 100644 RapidPT_min/TwoSampleRapidPT.m create mode 100644 RapidPT_min/include/grasta.1.2.0/GPL.txt create mode 100644 RapidPT_min/include/grasta.1.2.0/LGPL.txt create mode 100644 RapidPT_min/include/grasta.1.2.0/LICENSE.txt create mode 100644 RapidPT_min/include/grasta.1.2.0/admm_srp.m create mode 100644 RapidPT_min/include/grasta.1.2.0/bgfg_seperation_grasta.m create mode 100644 RapidPT_min/include/grasta.1.2.0/bgtraining.m create mode 100644 RapidPT_min/include/grasta.1.2.0/column.pdf create mode 100644 RapidPT_min/include/grasta.1.2.0/grasta_RobustMC_demo.m create mode 100644 RapidPT_min/include/grasta.1.2.0/grasta_mc.m create mode 100644 RapidPT_min/include/grasta.1.2.0/grasta_path.m create mode 100644 RapidPT_min/include/grasta.1.2.0/grasta_stream.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/Projection.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/Yall1/Readme.txt create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/Yall1/yall1.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/gs.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/recursivePCA.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/subLS.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/bgfg_seperation_ReProCSmod.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/bgfg_seperation_mf.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/frames2matrix.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/Afunc.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/AtAfunc.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/Atransfunc.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/Cfunc.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/bdsqr.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/bdsqr.mexglx create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/bdsqr.mexsg create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/bdsqr.mexsg64 create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/bdsqr.mexsol create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/bdsqr.mexw32 create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/bdsqr_mex.c create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/compute_int.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/dbdqr.f create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/helio.mat create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanbpro.doc create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanbpro.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanbpro.txt create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/laneig.doc create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/laneig.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/laneig.txt create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanpro.doc create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanpro.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanpro.txt create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lansvd.doc create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lansvd.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lansvd.txt create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/mminfo.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/mmread.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/mmwrite.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/pythag.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/refinebounds.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/reorth.f create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/reorth.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/reorth.mexglx create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/reorth.mexsg create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/reorth.mexsg64 create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/reorth.mexsol create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/reorth_mex.c create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/test.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/testtqlb.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb.f create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb.mexglx create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb.mexsg create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb.mexsg64 create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb.mexsol create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb_mex.c create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/update_gbound.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/choosvd.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/ialm_demo.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/inexact_alm_rpca.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/make_video.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/median_filter_bg.m create mode 100644 RapidPT_min/include/grasta.1.2.0/make_video/videoFrames.m create mode 100644 RapidPT_min/include/grasta.1.2.0/mex/blas_win32_MT.dll create mode 100644 RapidPT_min/include/grasta.1.2.0/mex/lapack-win32/README.txt create mode 100644 RapidPT_min/include/grasta.1.2.0/mex/lapack-win32/blas_win32_MT.lib create mode 100644 RapidPT_min/include/grasta.1.2.0/mex/lapack-win32/lapack_win32_MT.lib create mode 100644 RapidPT_min/include/grasta.1.2.0/mex/lapack_win32_MT.dll create mode 100644 RapidPT_min/include/grasta.1.2.0/mex/mex_srp.cpp create mode 100644 RapidPT_min/include/grasta.1.2.0/mex/mex_srp.mexmaci64 create mode 100644 RapidPT_min/include/grasta.1.2.0/outliers.pdf create mode 100644 RapidPT_min/include/grasta.1.2.0/util/calc_fgroc.m create mode 100644 RapidPT_min/include/grasta.1.2.0/util/calc_precision_recall.m create mode 100644 RapidPT_min/include/grasta.1.2.0/util/fg_thresholding.m create mode 100644 RapidPT_min/include/grasta.1.2.0/util/groundTruthFrames.m create mode 100644 RapidPT_min/include/grasta.1.2.0/video_demo.m create mode 100644 RapidPT_min/util/CompareHistograms.m create mode 100644 RapidPT_min/util/CompareHistogramsVisually.m create mode 100644 RapidPT_min/util/GetTThresh.m create mode 100644 RapidPT_min/util/InitGrastaParams.m create mode 100644 RapidPT_min/util/ProcessInput.m create mode 100644 RapidPT_min/util/ValidateInputs.m create mode 100644 RapidPT_min/util/gen_hist.m create mode 100644 RapidPT_min/util/kldiv2.m delete mode 100644 rapidpt_postprocess.m diff --git a/.gitignore b/.gitignore index 297426a..beba1c2 100644 --- a/.gitignore +++ b/.gitignore @@ -219,5 +219,3 @@ pip-log.txt #Mr Developer .mr.developer.cfg -Copy_of_snpm_cp.m -snpm_RapidPT.m diff --git a/RapidPT_min/AddPaths.m b/RapidPT_min/AddPaths.m new file mode 100644 index 0000000..34de673 --- /dev/null +++ b/RapidPT_min/AddPaths.m @@ -0,0 +1,12 @@ +function [] = AddPaths(RapidPTPath) +%AddPaths Add all paths needed + + % Add path mex path and grasta paths + PATH = RapidPTPath; + addpath(PATH); + addpath(strcat(PATH, '/util')); + addpath(strcat(PATH, '/include/grasta.1.2.0')); + addpath(strcat(PATH, '/include/grasta.1.2.0/mex')); + +end + diff --git a/RapidPT_min/LICENSE.txt b/RapidPT_min/LICENSE.txt new file mode 100644 index 0000000..2970efe --- /dev/null +++ b/RapidPT_min/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 RapidPT Development Team + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/RapidPT_min/RapidPT.m b/RapidPT_min/RapidPT.m new file mode 100644 index 0000000..a5645b1 --- /dev/null +++ b/RapidPT_min/RapidPT.m @@ -0,0 +1,188 @@ +%% Efficient permutation testing using Matrix completion +% % the following function computes the max Null statistic distribution +% % in its current format, the code only uses t-statistics + +%%% Corresponding paper : +% % Speeding up Permutation Testing in Neuroimaging +% % C Hinrichs, VK Ithapu, Q Sun, SC Johnson, V Singh +% % NIPS 2013 + +%%% Arguments +% % +% % %%% INPUTS +% % A structure filed with following arguments +% % inputs.datapath : path to mat file containing the data matrix +% % (REQUIRED) Two fields : data and labeling +% % data - a matrix of size N X V +% % labels - a vector of length N (2 groups) +% % CONTENTS SHOULD BE NAMED "data" and "labels" +% % (N : number of instances , V : data dimension) +% % inputs.sub : sub-sampling rate (0 to 1) (DEFAULT = 0.05) +% % inputs.T : number of permutations (DEFAULT = 10^4) +% % inputs.maxrank : rank for estimating the low rank subspace (DEFAULT = N) +% % inputs.traintime : number of permutations for training (DEFAULT = 100) +% % inputs.maxCycles : number of cycles for training (DEFAULT = 3) +% % inputs.iter : number of iterations for matrix completion (DEFAULT = 30) +% % inputs.writing : if 0 - outputs only maxnull (SEE BELOW) +% % if 1 - outputs maxnull, U and W (DEFAULT = 0) +% % inputs.save : path to save the outputs (DEFAULT : working folder) +% % +% % %%% OUTPUTS +% % outputs.maxnull : estimated distribution of max Null statistic +% % outputs.U : orthogonal matrix spanning low rank subspace +% % (dimension : V X maxrank) +% % optional output (DEFAULT : No) + +%%% Support codes for matrix completion +% % GRASTA : https://sites.google.com/site/hejunzz/grasta +% % Codes already included in the package + +%%% Usage +% % inputs.data = '/home/user/mydata/pt_data.mat'; +% % inputs.maxrank = 30; input.T = 1000; input.traintime = 50; +% % inputs.display = 1; +% % outputs = Efficient_PT(inputs); + +function [ outputs, timings ] = RapidPT( inputs, rapidPTLibraryPath ) +% RapidPermutationTesting +% Modified permutation testing algorithm described in the following paper +% Speeding up Permutation Testing in Neuroimaging C Hinrichs, VK Ithapu, Q Sun, SC Johnson, V Singh, NIPS 2013 + + fprintf('Starting RapidPermutationTesting...\n'); + tTotal = tic; + fprintf('Adding Paths...\n'); + AddPaths(rapidPTLibraryPath); + fprintf('\nStarting Preprocessing...\n'); + fprintf('Validate Required Inputs...\n'); + ValidateInputs(inputs); + data = inputs.data; + dataSquared = data.*data; + %labels = inputs.labels; + nGroup1 = inputs.nGroup1; + + + + fprintf('Processing Input Parameters...\n'); + N = size(data,1); % N: number of instances/subjects (rows in data matrix) + V = size(data,2); % V: Number of statistics/voxel measurements (cols) +% uniqueLabels = unique(labels); % Unihttps://github.com/felipegb94/RapidPermTest.gitque labels +% nGroup1 = length(find(labels==uniqueLabels(1))); % Number of patients in group 1 + nGroup2 = N - nGroup1; + [sub, numPermutations, maxRank, trainNum, maxCycles, iter, write] = ProcessInput(inputs, N); + + fprintf('Initializing matrix completion parameters (GRASTA parameters) \n'); + [ options, opts, opts2, status ] = InitGrastaParams(maxRank, iter, V); + + fprintf('Initializing permutation matrices... \n'); + % indexMatrix is what indexMatrix used to be.. + [~, permutationMatrix1, permutationMatrix2] = TwoSampleGetPermutationMatrices(numPermutations, N, nGroup1); + + binRes = 0.05; + maxnullBins = -9:binRes:9; %% bin resolution in maxnull histogram computation + subV = round(sub*V); %% number of samples used per permutation + maxTStatistics = zeros(1, numPermutations); %% estimated max statistics for all permutations + +%% Training for low rank subsapace and residual priors + + fprintf('\nStarting RapidPT core...\n'); + fprintf('Training for low rank subspace and residual priors \n'); + tTraining = tic; + + permutationMatrix1Current = permutationMatrix1(1:trainNum,:); + permutationMatrix2Current = permutationMatrix2(1:trainNum,:); + % Calculate some full permutations for training U (A good number would be the number of labels). + [TCurrent] = TwoSamplePermTest(data, dataSquared, permutationMatrix1Current, permutationMatrix2Current, nGroup1, nGroup2); + + framesOrder = zeros(trainNum, maxCycles); + for m = 1:1:maxCycles + framesOrder(:,m) = randperm(trainNum); + end + + % Estimate U using subsample matrix completion methods + UHat = orth(randn(V,options.RANK)); + + for m = 1:1:maxCycles + for f = 1:1:trainNum + inds = randperm(V,subV); + I_inds = TCurrent(framesOrder(f,m),inds)'; + [UHat, status, opts] = grasta_stream(I_inds, inds, UHat, status, options, opts); + fprintf('Subspace estimation on %s cycle with %s frame \n',num2str(m),num2str(f)); + end + end + + diffForNormal = zeros(trainNum,maxCycles); + for m = 1:1:maxCycles + Ts_ac = zeros(V,trainNum); + Ts_tr = zeros(V,trainNum); + for f = 1:1:trainNum + Ts_ac(:,f) = TCurrent(framesOrder(f,m),:)'; + inds = randperm(V,subV); + + I_inds = Ts_ac(inds,f); + % Time srp function + [s, w, ~] = admm_srp(UHat(inds,:), I_inds, opts2); + sall = zeros(V,1); + sall(inds) = s; + Ts_tr(:,f) = (UHat*w + sall)'; + fprintf('Training done on %s cycle with %s frame \n',num2str(m),num2str(f)); + end + max_Ts_ac = max(Ts_ac,[],1); + max_Ts_tr = max(Ts_tr,[],1); + diffForNormal(:,m) = max_Ts_ac - max_Ts_tr; + end + + [muFit,~] = normfit(diffForNormal(:)); + + tTraining = toc(tTraining); + timings.tTraining = tTraining; + +%% Recovery : Filling in W and residuals for all numPermutations + fprintf('\n Recovering the subspace coefficients and residuals for all permutations \n'); + tRecovery = tic; + + + %W = cell(numPermutations,1); + % Calculate small portion of the permutation matrix + parfor i = 1:numPermutations + inds = randperm(V,subV)'; + [TCurrent] = TwoSamplePermTest(data(:,inds),... + dataSquared(:,inds),... + permutationMatrix1(i,:),... + permutationMatrix2(i,:),... + nGroup1,... + nGroup2); + U_inds = UHat(inds,:); + [s, w, ~] = admm_srp(U_inds, TCurrent', opts2); + %W{i,1} = w; + TRec = UHat*w; + TRec(inds) = TRec(inds) + s; + maxTStatistics(1,i) = max(TRec) + muFit; + fprintf('Completion done on trial %d/%d \n',i,numPermutations); + end + + % Save timings + timings.tRecovery = toc(tRecovery); + + outputs.MaxNull = gen_hist(maxTStatistics,maxnullBins); + outputs.MaxT = maxTStatistics; + + if write == 1 + outputs.U = UHat; + %outputs.W = W; + end + + fprintf('TwoSampleRapidPT Done...'); + timings.tTotal = toc(tTotal); + +end + +function [tStatMatrix] = TwoSamplePermTest(data, dataSquared, permutationMatrix1, permutationMatrix2, nGroup1, nGroup2) + + g1Mean = (permutationMatrix1 * data)/nGroup1; + g2Mean = (permutationMatrix2 * data)/nGroup2; + g1Var = (permutationMatrix1 * dataSquared)/(nGroup1) - (g1Mean.*g1Mean); + g2Var = (permutationMatrix2 * dataSquared)/(nGroup2) - (g2Mean.*g2Mean); + tStatMatrix = (g1Mean - g2Mean) ./ (sqrt((g1Var./(nGroup1-1)) + (g2Var./(nGroup2-1)))); + +end + diff --git a/RapidPT_min/TwoSampleGetPermutationMatrices.m b/RapidPT_min/TwoSampleGetPermutationMatrices.m new file mode 100644 index 0000000..4af2592 --- /dev/null +++ b/RapidPT_min/TwoSampleGetPermutationMatrices.m @@ -0,0 +1,36 @@ +function [ indexMatrix, permutationMatrix1, permutationMatrix2 ] = TwoSampleGetPermutationMatrices(numPermutations, N, nGroup1 ) +%GetPermutationMatrices +% * indexMatrix: Each column contains the indeces that will be used to +% make a permutation. Rows 1-nGroup1 are the indeces for group 1 and +% rows nGroup1-size(labels,1) are the indeces for group 2. This matrix is +% used when doing serial permutation testing where each permutation is +% calculated one by one. +% +% * permutationMatrix1: Matrix composed of 1's and 0's. At each row the +% columns that contain 1's refer to the corresponding subject in the data +% matrix at that index and this subject will be in group 1 for that +% permutations. +% +% * permutationMatrix2: Same as permutationMatrix2 but for group 2 +% instead of 1. + rng('default'); + rng('shuffle'); + indexMatrix = zeros(numPermutations, N); + permutationMatrix1 = zeros(numPermutations, N); + permutationMatrix2 = zeros(numPermutations, N); + + for t = 1:1:numPermutations + currLabels = randperm(N); + currLabels1 = currLabels(1:(nGroup1)); + currLabels2 = currLabels(nGroup1+1:end); + permutationMatrix1(t,currLabels1) = 1; + permutationMatrix2(t,currLabels2) = 1; + indexMatrix(t,:) = currLabels; + end + +end + + + + + diff --git a/RapidPT_min/TwoSampleRapidPT.m b/RapidPT_min/TwoSampleRapidPT.m new file mode 100644 index 0000000..b368f60 --- /dev/null +++ b/RapidPT_min/TwoSampleRapidPT.m @@ -0,0 +1,93 @@ +%% Efficient permutation testing using Matrix completion +% % the following function computes the max Null statistic distribution +% % in its current format, the code only uses t-statistics + +%%% Corresponding paper : +% % Speeding up Permutation Testing in Neuroimaging +% % C Hinrichs, VK Ithapu, Q Sun, SC Johnson, V Singh +% % NIPS 2013 + + +%%% Inputs: +% - Data: NxV matrix - N: number of subject, V: number of voxels per subject. +% - numPermutations: Number of permutation to perform +% - nGroup1: Number of subjects in group 1 +% - writingVal: Can be 1 or 0. 0 means that we only save the maxnull +% distribution produced by the algorithm. 1 means that we save the maxnull +% distribution AND the low-rank basis matrix and coefficient matrix with +% which you can recover the Permutation testing matrix +%%% Outputs +% - outputs.MaxT - Maximum t-statistics at each permutation. +% - outputs.MaxNull - Binned MaxT statistics. +% - outputs.tThreshold - Calculated tThreshold for the input p-value. +% - timings.tTraining - Time it took for the first part of RapidPT +% procedure +% - timings.tRecovery - Time it took to recover the whole Permutation +% matrix. +% - timings.tTotal - Total time it took. + +function [ outputs, timings ] = TwoSampleRapidPT(Data, numPermutations, nGroup1, writingVal, RapidPTLibraryPath) +% RapidPT +% Modified permutation testing algorithm described in the following paper +% Speeding up Permutation Testing in Neuroimaging C Hinrichs, VK Ithapu, Q Sun, SC Johnson, V Singh, NIPS 2013 + + % N subjects, V voxels (or statistics) + [N,V] = size(Data); + + % Set keys for input struct + testingTypeKey = 'testingType'; + dataKey = 'data'; + %labelsKey = 'labels'; + nGroup1Key = 'nGroup1'; + %nGroup2Key = 'nGroup2'; + subKey = 'sub'; + TKey = 'T'; + maxRankKey = 'maxRank'; + trainNumKey = 'trainNum'; + maxCyclesKey = 'maxCycles'; + iterKey = 'iter'; + writingKey = 'writing'; + +%% Fixed values for RapidPT +% The following parameters have been extensively tested and have produced +% good results, independent of the dataset size and number of permutations + + testingTypeVal = {'TwoSample'}; + + if(numPermutations < 10000) + subVal = {0.005}; + else + subVal = {0.0035}; + end + + maxCyclesVal = {3}; % Number of cycles for training. + iterVal = {30}; % Number of iterations for matrix completion. + +%% Variable inputs for RapidPT +% These inputs depend on the dataset size. + + nGroup1Val = nGroup1; % Size of group 1 + assert(N > nGroup1, 'nGroup1 cannot be larger than the number of subjects in the data'); + TVal = {numPermutations}; % Number of Permutations. + maxRankVal = {N}; % Rank for estimating the low rank subspace + trainNumVal = N; % Default number of training samples + + + inputs = struct(testingTypeKey, testingTypeVal,... + dataKey, Data,... + nGroup1Key, nGroup1Val,... + subKey, subVal,... + TKey, TVal,... + maxRankKey, maxRankVal,... + trainNumKey, trainNumVal,... + maxCyclesKey, maxCyclesVal,... + iterKey, iterVal,... + writingKey, writingVal); + + [outputs, timings] = RapidPT(inputs, RapidPTLibraryPath); + + +end + + + diff --git a/RapidPT_min/include/grasta.1.2.0/GPL.txt b/RapidPT_min/include/grasta.1.2.0/GPL.txt new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/GPL.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/RapidPT_min/include/grasta.1.2.0/LGPL.txt b/RapidPT_min/include/grasta.1.2.0/LGPL.txt new file mode 100644 index 0000000..fc8a5de --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/LGPL.txt @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/RapidPT_min/include/grasta.1.2.0/LICENSE.txt b/RapidPT_min/include/grasta.1.2.0/LICENSE.txt new file mode 100644 index 0000000..3904e5d --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/LICENSE.txt @@ -0,0 +1,15 @@ +The GRASTA Matlab / C++ library is provided without any warranty +of fitness for any purpose. You can redistribute the library +and/or modify it under the terms of the GNU Lesser General +Public License (LGPL) as published by the Free Software +Foundation, either version 3 of the License or (at your option) +any later version. + +Note that the LGPL v3 is formulated as an extension/modification +of the GPL v3 license, providing additional permissions. +For example, programs that use GRASTA can be distributed under +a different license, provided some conditions are met. + +A copy of the LGPL and GPL licenses is provided in this package. + +More info: http://www.opensource.org/licenses diff --git a/RapidPT_min/include/grasta.1.2.0/admm_srp.m b/RapidPT_min/include/grasta.1.2.0/admm_srp.m new file mode 100644 index 0000000..46ada91 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/admm_srp.m @@ -0,0 +1,99 @@ +function [ s, w, y ] = admm_srp( U, v, OPTS ) +% Solve sparse residual pursuit (SRP) via ADMM {S.Boyd 2011} +% +% Disclaimer: This matlab function "admm_srp" is derived +% from the ADMM sovler for Least Absolute Deviations (LAD). We modified the +% original LAD function to adapt to our GRASTA framework. Interested readers +% can find other great matlab ADMM functions from S. Boyd's ADMM webpage. +% +% [ s, w, y, history ] = admm_srp( U, v, OPTS ) +% +% Solves the following problem via ADMM: +% +% minimize ||s||_1 +% subject to Uw + s- v = 0 +% +% The solution is returned in the vectors s, w, y. +% +% y is the dual vector which will be used in GRASTA. +% +% OPTS: structure for tuning the behavior of SRP +% RHO : the augmented Lagrangian parameter, default 1.8 +% MAX_ITER: max iteration for SRP problem +% +% We also provide MEX version for this function which improves the +% performance at least 3 times. +% +% +% Date: Aug. 10, 2012 +% + +%% Global constants and defaults + +if isfield(OPTS,'RHO'), + rho = OPTS.RHO; +else + rho = 1.8; +end + +if isfield(OPTS,'TOL'), + TOL = OPTS.TOL; +else + TOL = 1e-7; +end + +if isfield(OPTS,'MAX_ITER'), + MAX_ITER = OPTS.MAX_ITER; +else + MAX_ITER = 50; +end + +%% Data preprocessing + +[m, n] = size(U); + + +w = zeros(n,1); +s = zeros(m,1); +y = zeros(m,1); +mu = 1.25/norm(v); + +% precompute static variables for a-update (projection on to Ua=v-s) +Ut = U'; +P = Ut * U \ Ut; + + +%% ADMM solver + +converge = false; +iter = 0; + +while ~converge && iter < MAX_ITER, + iter = iter + 1; + % w update + w = P * (v -s - y/mu); + + % s update + Uw = U*w; + s = shrinkage( v-Uw - y/mu, 1/mu); + + % y update + h = Uw + s - v; + y = y + mu * h; + + mu = rho * mu; + + % diagnostics, reporting, termination checks + + if (norm(h) < TOL), + converge = true; + end + +end + +end + + +function y = shrinkage(a, kappa) + y = max(0, a-kappa) - max(0, -a-kappa); +end \ No newline at end of file diff --git a/RapidPT_min/include/grasta.1.2.0/bgfg_seperation_grasta.m b/RapidPT_min/include/grasta.1.2.0/bgfg_seperation_grasta.m new file mode 100644 index 0000000..e17ffa0 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/bgfg_seperation_grasta.m @@ -0,0 +1,106 @@ +%% This function is to seperate the given video frames into foreground/background +% in realtime by our proposed algorithm - GRASTA, and return the corresponding +% seperated results of ground-truths as fgs_cmp. +% +% Author: Jun He, Laura Balzano, Arthur Szlam +% Date: Oct. 30, 2011 +%% + +function [fgs_cmp,bgs_cmp,vInfo] = bgfg_seperation_grasta( U_hat, videopath, subsampling , status, OPTIONS, OPTS,... + thresh,FPS_ONLY, frame_names, MAX_FRAME) + +FILE_EXT = '.bmp'; +frame_count = 0; + +% +Dir_lists = dir(videopath); +Video_Length = length(Dir_lists); + +if ~FPS_ONLY, + figure; + h_fg = subplot(2,2,1);set(gca,'nextplot','replacechildren');title('Foreground'); + h_fg_bw = subplot(2,2,2);set(gca,'nextplot','replacechildren');title('Thresholded-Foreground'); + h_bg = subplot(2,2,3);set(gca,'nextplot','replacechildren');title('Background'); + h_img = subplot(2,2,4);set(gca,'nextplot','replacechildren');title('Video'); +end + +t_start = tic; +for i=1:Video_Length, + if Dir_lists(i).isdir, + continue; + end + if isempty(strfind(Dir_lists(i).name,FILE_EXT)) , + continue; + end + + frame_count = frame_count+1; + fname = [videopath Dir_lists(i).name]; + + % prepare the image + I = imread(fname); + I = double(rgb2gray(I)); + + if frame_count==1, + [rows,cols] = size(I); + VW_ROWS = rows; + VW_COLS = cols; %ceil(cols * VW_RATIO); + DIM = VW_ROWS * VW_COLS; + OPTIONS.DIM_M = DIM; % video ambient dimension + fgs_cmp = zeros(DIM, length(frame_names)); + bgs_cmp = zeros(DIM, length(frame_names)); + + vInfo.rows = rows; + vInfo.cols = cols; + end + + I = I/max(max(I)); + + % random subsampling the frame I + if subsampling < 1, + M = round(subsampling * DIM); + p = randperm(DIM); + idx = p(1:M)'; + else + idx = (1:DIM)'; + end + + I_Omega = I(idx); + + % tracking the background + [U_hat, status, OPTS] = grasta_stream(I_Omega, idx, U_hat, status, OPTIONS, OPTS); + + bg_img = reshape(U_hat * status.w * status.SCALE, VW_ROWS,VW_COLS); + o_img = reshape( I ,VW_ROWS,VW_COLS ); + + noise_thresh = 1 * min(abs(I(:))); + s_hat = I(:) - U_hat * status.w * status.SCALE; + s_hat(abs(s_hat) < noise_thresh) = 0; + s_img = reshape(s_hat,VW_ROWS,VW_COLS); + + s_hat = fg_thresholding(s_hat,thresh); + s_img_bw = reshape(s_hat,VW_ROWS,VW_COLS); + + for jj=1:length(frame_names), + if strcmpi(Dir_lists(i).name, frame_names{jj}), + fgs_cmp(:,jj) = s_img(:); + bgs_cmp(:,jj) = bg_img(:); + break; + end + end + + if ~FPS_ONLY, + axes(h_bg); imagesc(bg_img);colormap gray;axis off;axis ij ; + axes(h_img); imagesc(o_img);colormap gray;axis off;axis ij ; + axes(h_fg); imagesc(s_img);colormap gray;axis off;axis ij ; + axes(h_fg_bw); imagesc(s_img_bw);colormap gray;axis off;axis ij ; + end + + if frame_count >= MAX_FRAME && MAX_FRAME~=-1, + break; + end +end +t_end = toc(t_start); +fprintf('Tracking %d frames with %.1f%% information costs %.2f seconds, %.2f fps\n',... + frame_count, 100*subsampling,t_end, frame_count/t_end); +end + diff --git a/RapidPT_min/include/grasta.1.2.0/bgtraining.m b/RapidPT_min/include/grasta.1.2.0/bgtraining.m new file mode 100644 index 0000000..9bf9a2d --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/bgtraining.m @@ -0,0 +1,88 @@ +function [ bgU, status, OPTS ] = bgtraining( videopath, OPTIONS, max_cycles, subsampling, training_size, FPS_ONLY , TRAIN_FRAME) +%BGTRAINING Summary of this function goes here +% Detailed explanation goes here +thresh = 0.1; + +FILE_EXT = '.bmp'; +OPTS = struct(); % initial a empty struct for OPTS +status.init = 0; % status of grasta at each iteration +U_hat = zeros(1); + +% +Dir_lists = dir(videopath); +Video_Length = min(training_size,length(Dir_lists)); + +if TRAIN_FRAME == 1, % Random selection + p = randperm(length(Dir_lists)); % length(Dir_lists)-1500 for hall + frames_idx = p(1:Video_Length); +else % Select all frames + frames_idx = 1:Video_Length; +end + +if ~FPS_ONLY, + h_fg = subplot(2,2,1);set(gca,'nextplot','replacechildren');title('GRASTA-Foreground'); + h_training_bg = subplot(2,2,2);set(gca,'nextplot','replacechildren');title('Training Background'); + h_img = subplot(2,2,3);set(gca,'nextplot','replacechildren');title('Training video'); +end + +for outiter = 1:max_cycles, + video_order = randperm(Video_Length); % 1:Video_Length; % + t_start = tic; + frame_count = 0; + for i=1:Video_Length, + if Dir_lists(frames_idx(video_order(i))).isdir, + continue; + end + if isempty(strfind(Dir_lists(frames_idx(video_order(i))).name,FILE_EXT)) , + continue; + end + + frame_count = frame_count+1; + fname = [videopath Dir_lists(frames_idx(video_order(i))).name]; + + % prepare the image + I = imread(fname); + I = double(rgb2gray(I)); + + if frame_count==1, + [rows,cols] = size(I); + VW_ROWS = rows; + VW_COLS = cols; %ceil(cols * VW_RATIO); + DIM = VW_ROWS * VW_COLS; + OPTIONS.DIM_M = DIM; % video ambient dimension + end + + I = I/max(max(I)); + + % random subsampling the frame I + M = round(subsampling * DIM); + p = randperm(DIM); + idx = p(1:M)'; + + I_Omega = I(idx); + + [U_hat, status, OPTS] = grasta_stream(I_Omega, idx, U_hat, status, OPTIONS, OPTS); + + if mod(i,1) == 0 && ~FPS_ONLY, + bg_img = reshape(U_hat * status.w * status.SCALE, VW_ROWS,VW_COLS); + axes(h_training_bg); imagesc(bg_img);colormap gray;axis off;axis ij ; + + o_img = reshape( I ,VW_ROWS,VW_COLS ); + axes(h_img); imagesc(o_img);colormap gray;axis off;axis ij ; + + s_hat = I(:) - U_hat * status.w * status.SCALE; + s_hat = fg_thresholding(s_hat,thresh); + + s_img = reshape(s_hat,VW_ROWS,VW_COLS); + axes(h_fg); imagesc(s_img);colormap gray;axis off;axis ij ; + + end + end + t_end = toc(t_start); + fprintf('Training %d/%d: %.2f seconds, %.2f fps, grasta_t %.2e \n',... + outiter, max_cycles,t_end, frame_count/t_end,status.grasta_t); +end + +bgU = U_hat; +end + diff --git a/RapidPT_min/include/grasta.1.2.0/column.pdf b/RapidPT_min/include/grasta.1.2.0/column.pdf new file mode 100644 index 0000000000000000000000000000000000000000..54ab657c463f10a92bf663719174f5bb7550ced3 GIT binary patch literal 18384 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 literal 0 HcmV?d00001 diff --git a/RapidPT_min/include/grasta.1.2.0/grasta_RobustMC_demo.m b/RapidPT_min/include/grasta.1.2.0/grasta_RobustMC_demo.m new file mode 100644 index 0000000..138ffbc --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/grasta_RobustMC_demo.m @@ -0,0 +1,189 @@ +%% +% % % % % % % % % % % % % % % % % % % % % % +% Sample code to run GRASTA: Robust Matrix Completion +% % % % % % % % % % % % % % % % % % % % % % +% +% Jun He and Laura Balzano, Jan. 2012 +% + + +%% First we generate the data matrix and incomplete sample vector. +clc; close all; +clear all; + +grasta_path; % Add search path +%% +% s = RandStream('swb2712','Seed',1020); +% RandStream.setDefaultStream(s); + +nMonteCarlo = 10; + +for iTest = 1: nMonteCarlo, + +outlierFac = 0.1; +SAMPLING = 0.3; +noiseFac = 1 * 1e-6; + +% Number of rows and columns +numr = 1000; +numc = 1000; + +probSize = [numr,numc]; +% Rank of the underlying matrix. +truerank = 10; + +% Size of vectorized matrix +N = numr*numc; +% Number of samples that we will reveal. +M = round(SAMPLING * N); + +% The left and right factors which make up our true data matrix Y. +YL = randn(numr,truerank); +YR = randn(numc,truerank); + +% Select a random set of M entries of Y. +p = randperm(N); +idx = p(1:M); +clear p; + +[I,J] = ind2sub([numr,numc],idx(1:M)); +[J, inxs]=sort(J'); I=I(inxs)'; + +% S denotes the values of Y at the locations indexed by I and J. +S = sum(YL(I,:).*YR(J,:),2); + +% Add Gaussian noise. +noise = noiseFac*max(S)*randn(size(S)); +S = S + noise; + +% Add sparse outliers +outlier_magnitude = 0.01*max(abs(S)); +idx = randperm(length(S)); +sparseIdx = idx(1:ceil(outlierFac*length(S)))'; +Outlier_part = outlier_magnitude * randn(size(sparseIdx)); + +S(sparseIdx) = S(sparseIdx) + Outlier_part; + +% Now we set parameters for the algorithm. +% We set the number of cycles and put the necessary parameters into OPTIONS + +maxCycles = 10; % the max cycles of robust mc +OPTIONS.QUIET = 1; % suppress the debug information + +OPTIONS.MAX_LEVEL = 20; % For multi-level step-size, +OPTIONS.MAX_MU = 15; % For multi-level step-size +OPTIONS.MIN_MU = 1; % For multi-level step-size + +OPTIONS.DIM_M = numr; % your data's ambient dimension +OPTIONS.RANK = truerank; % give your estimated rank + +OPTIONS.ITER_MIN = 20; % the min iteration allowed for ADMM at the beginning +OPTIONS.ITER_MAX = 20; % the max iteration allowed for ADMM +OPTIONS.rho = 2; % ADMM penalty parameter for acclerated convergence +OPTIONS.TOL = 1e-8; % ADMM convergence tolerance + +OPTIONS.USE_MEX = 1; % If you do not have the mex-version of Alg 2 + % please set Use_mex = 0. + +CONVERGE_LEVLE = 20; % If status.level >= CONVERGE_LEVLE, robust mc converges + +% % % % % % % % % % % % % % % % % % % % % +% Now run robust matrix completion. +t0 = clock; + +[Usg, Vsg, Osg] = grasta_mc(I,J,S,numr,numc,maxCycles,CONVERGE_LEVLE,OPTIONS); + +StochTime = etime(clock,t0); + +% +% % % % % % % % % % % % % % % % % % % % % % +% Compute errors. +% % % % % % % % % % % % % % % % % % % % % % + +% Select a random set of entries of Y +p = randperm(N); +idx2 = p(1:M); +clear p; + +ITest = mod(idx2(1:M)-1,numr)'+1; % row values +JTest = floor((idx2(1:M)-1)/numr)'+1; % column values + +% STest denotes the values of Y at the locations indexed by ITest and JTest +STest = sum(YL(ITest,:).*YR(JTest,:),2); + + +% % % % % % % % % % % % % % % % % % % % % % +% Error for Robust MC + +dev = sum(Usg(ITest,:).*Vsg(JTest,:),2) - STest; +RelDevStochG = norm(dev,'fro') / norm(STest,'fro'); +fprintf(1,'%d/%d, GRASTA robust mc [%d*%d, rank=%d, outlier=%.1f%%, sampling=%.1f%%]: Rel.err on test = %7.2e in %4.2f seconds\n',... + iTest, nMonteCarlo,numr,numc, truerank, outlierFac*100, SAMPLING*100,RelDevStochG, StochTime); + + +end +%% +% % % % % % % % % % % % % % % % % % % % % % +% Random select one column to show the recovery result. +% % % % % % % % % % % % % % % % % % % % % % +p = randperm(numc); iSelect = p(1); + +S_free = YL*YR'; +Col_data = S_free(:,iSelect); + +Col_max = max(abs(Col_data)); +idx = randperm(numr); sparseIdx = idx(1:ceil(outlierFac*numr))'; +Col_outlier = zeros(numr,1); +Col_outlier(sparseIdx) = 1 * Col_max * randn(size(sparseIdx)); + +Col_noise = noiseFac * Col_max * randn(numr,1); + +Col_data = Col_data + Col_outlier + Col_noise; + + +OPTS2.MAX_ITER = 30; +OPTS2.TOL = 1e-8; + +if OPTIONS.USE_MEX, + [s, w, ~] = mex_srp(Usg, Col_data, OPTS2); +else + [s, w, ~, ~] = admm_srp(Usg, Col_data, OPTS2); +end + +Col_outlier_hat = s; +Col_hat = Usg * w; + +Col_err = norm(Col_hat - S_free(:, iSelect))/norm(S_free(:, iSelect)); +Col_outlier_err = norm(Col_outlier_hat - Col_outlier)/norm(Col_outlier); +%%%%%%%%%%%%%% +figure; +fontsize = 16; +subplot(3,1,1); +plot(Col_outlier,'r');ylabel('$s_0$','Interpreter','latex','fontsize',fontsize); +title('Outliers','fontsize',fontsize); axis tight; + +subplot(3,1,2); +plot(Col_outlier_hat,'b');ylabel('$\hat{s}$','Interpreter','latex','fontsize',fontsize); +title('Separated outliers','fontsize',fontsize); axis tight; + +subplot(3,1,3); +plot(abs(Col_outlier-Col_outlier_hat),'b'); +ylabel('$|\hat{s}$ - $s_0|$','Interpreter','latex','fontsize',fontsize); +xlabel('Column components','fontsize',fontsize); +title(['Oulter rel-err ' num2str(Col_outlier_err)],'fontsize',fontsize); axis tight; + +%%%%%%%%%%%%%% +figure; +subplot(3,1,1); +plot(S_free(:,iSelect),'r');ylabel('$v_0$','Interpreter','latex','fontsize',fontsize); +title('Clean column','fontsize',fontsize); axis tight; + +subplot(3,1,2); +plot(Col_hat,'b');ylabel('$\hat{v}$','Interpreter','latex','fontsize',fontsize); +title('Recovered column','fontsize',fontsize); axis tight; + +subplot(3,1,3); +plot(abs(Col_hat-S_free(:,iSelect)),'b'); +ylabel('$|\hat{v}$ - $v_0|$','Interpreter','latex','fontsize',fontsize); +xlabel('Column components','fontsize',fontsize); +title(['Column rel-err ' num2str(Col_err)],'fontsize',fontsize); axis tight; diff --git a/RapidPT_min/include/grasta.1.2.0/grasta_mc.m b/RapidPT_min/include/grasta.1.2.0/grasta_mc.m new file mode 100644 index 0000000..ec37b67 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/grasta_mc.m @@ -0,0 +1,83 @@ +function [ U_hat, R,Outliers ] = grasta_mc( I,J,S, numr,numc,maxCycles,CONVERGE_LEVLE,OPTIONS) +% GRASTA (Grassmannian Robust Adaptive Subspace Tracking Algorithm) robust +% matrix completion code +% by Jun He and Laura Balzano, Sept. 2011. +% +% Online Robust Subspace Tracking from Partial Information +% http://arxiv.org/abs/1109.3827 +% +% Inputs: +% +% (I,J,S) index the known entries across the entire data set X. So we +% know that for all k, the true value of X(I(k),J(k)) = S(k) +% +% numr = number of rows +% numc = number of columns +% NOTE: you should make sure that numr= CONVERGE_LEVLE, +% fprintf('Pass %d/%d, reach the convergence level - %d...\n',outIter, maxCycles,status.level); + break; + end + +% fprintf('Pass %d/%d ......\n',outIter, maxCycles); +end + + +% OPTS2 used for recovering R +OPTS2 = OPTS; + +R = zeros(numc,OPTIONS.RANK); +Outliers =zeros(numc,numr); +for k=1:numc, + idx = find(Indicator(:,k)); + v_Omega = values(idx,k); + + if length(idx) < OPTIONS.RANK * 1, + continue; + end + + U_Omega = U_hat(idx,:); + + if OPTIONS.USE_MEX, + [s, w, ~] = mex_srp(U_Omega, v_Omega, OPTS2); + else + [s, w, ~] = admm_srp(U_Omega, v_Omega, OPTS2); + end + + R(k,:) = w'; + Outliers(k,idx) = s; +end + +end diff --git a/RapidPT_min/include/grasta.1.2.0/grasta_path.m b/RapidPT_min/include/grasta.1.2.0/grasta_path.m new file mode 100644 index 0000000..5273e4d --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/grasta_path.m @@ -0,0 +1,23 @@ +function grasta_path(BaseDirectory) + fprintf('Setting necessary paths ... \n'); + + if nargin==0 + Prefix = [pwd filesep]; + else + Prefix = [BaseDirectory filesep]; + end + appendpath(Prefix); + appendpath([Prefix 'Mex']); + appendpath([Prefix 'util']); + appendpath([Prefix 'make_video']); + + fprintf('Disabling case sensitivity warning ... \n'); + warning('off','MATLAB:dispatcher:InexactMatch'); +end + +function appendpath(string) + fprintf('\t%s \n', string); + addpath(genpath(string)); +end + + diff --git a/RapidPT_min/include/grasta.1.2.0/grasta_stream.m b/RapidPT_min/include/grasta.1.2.0/grasta_stream.m new file mode 100644 index 0000000..6ebb32c --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/grasta_stream.m @@ -0,0 +1,310 @@ +%% Copyright (C) 2011-2012 by Jun He, Laura Balzano, and Arthur Szlam +% +% This file is part of the GRASTA library. +% It is provided without any warranty of fitness +% for any purpose. You can redistribute this file +% and/or modify it under the terms of the GNU +% Lesser General Public License (LGPL) as published +% by the Free Software Foundation, either version 3 +% of the License or (at your option) any later version. +% (see http://www.opensource.org/licenses for more info) + +function [ Unew, STATUSnew, OPTSnew ] = grasta_stream( y_Omega, idx, U0, STATUS,OPTIONS, OPTS) +% grasta_stream is the streaming version of GRASTA which can be used for +% online data processing +% +% [1] Jun He, Laura Balzano, and John C.S. Lui. Online Robust Subspace Tracking from Partial Information +% http://arxiv.org/abs/1109.3827 +% [2] Jun He, Laura Balzano, and Arthur Szlam. Incremental gradient on the grassmannian for online foreground +% and background separation in subsampled video. In IEEE Conference on Computer Vision and Pattern Recognition +% (CVPR), June 2012. +% +% Usage: +% [ Unew, STATUSnew, OPTSnew ] = grasta_stream( y_Omega, idx, U0, STATUS, OPTIONS, OPTS) +% Inputs: +% y_Omega: current partial observation of a full data vector +% idx: the observed indices of y_Omega +% U0: the current estimated subspace +% STATUS: the current status of GRASTA +% last_mu: \mu_{t-1} for adaptive step rule +% step_scale: the estimated step_scale constant for adaptive +% step-size rule +% lelve: the current level of the "Multi-Level" adaptive rule +% last_gamma and last_w: previous gradient = last_gamma*last_w' +% +% OPTIONS: the options of GRASTA +% CONSTANT_STEP: default 0, will use multi-level step-size rule; > 0 will +% use constant step-size rule +% DIM_M : the ambient dimension +% RANK : the estimated low-rank of the underlying system +% rho : ADMM constant step +% ITER_MAX: the max_iter for ADMM solver +% TOL : the stopping tolerance of admm_srp / mex_srp +% +% OPTS: the current options for the subproblem of GRASTA +% refer to mex_srp.cpp or admm_srp.m +% Outputs: +% Unew: the updated subspace +% STATUSnew: the updated running status +% OPTSnew: the updated options for the subproblem of GRASTA +% +% Author: Jun He, Laura Balzano +% Email: hejun.zz@gmail.com, sunbeam@ece.wisc.edu +% Date: Sept. 01, 2012 +% +% + +LEVEL_FACTOR = 2; + +if isfield(OPTIONS,'MIN_MU'), + MIN_MU = OPTIONS.MIN_MU; +else + MIN_MU = 1; +end + +if isfield(OPTIONS,'MAX_MU'), + MAX_MU = OPTIONS.MAX_MU; +else + MAX_MU = 15; +end + + +if isfield(OPTIONS,'USE_MEX'), + USE_MEX = OPTIONS.USE_MEX; +else + USE_MEX = 1; +end + +if isfield(OPTIONS,'CONSTANT_STEP'), + CONSTANT_STEP = OPTIONS.CONSTANT_STEP; +else + CONSTANT_STEP = 0; +end + + +if isfield(OPTIONS,'DIM_M'), + DIM_M = OPTIONS.DIM_M; +else + error('Should specify OPTIONS.DIM_M data ambient dimension!!!\n'); +end + +if isfield(OPTIONS,'ITER_MIN'), + MIN_ITER = OPTIONS.ITER_MIN; +else + MIN_ITER = 5; +end + +if isfield(OPTIONS,'ITER_MAX'), + ITER_MAX = OPTIONS.ITER_MAX; +else + ITER_MAX = 60; +end + +if isfield(OPTIONS,'TOL'), + TOL = OPTIONS.TOL; +else + TOL = 1e-6; +end + + +if isfield(OPTIONS,'MAX_LEVEL'), + MAX_LEVEL = OPTIONS.MAX_LEVEL; +else + MAX_LEVEL = 20; +end + + + +if isfield(OPTIONS,'RANK'), + RANK = OPTIONS.RANK; +else + error('Should specify OPTIONS.RANK!!!\n'); +end + +if isfield(OPTIONS,'QUIET'), + QUIET = OPTIONS.QUIET; +else + QUIET = 0; +end + +DEFAULT_MU_HIGH = (MAX_MU-1)/2; +DEFAULT_MU_LOW = MIN_MU + 2; + + +% If we first call GRASTA_stream then do the following initilization +if STATUS.init == 0, + STATUS.init = 1; % Do not enter this initial part any longer + STATUS.curr_iter = 0; % For debug + + STATUS.last_mu = MIN_MU; + STATUS.level = 0; + STATUS.step_scale = 0; + STATUS.last_w = zeros(RANK,1); + STATUS.last_gamma = zeros(DIM_M,1); + + OPTS.TOL = TOL; + OPTS.MAX_ITER = MIN_ITER; % the max iteration of ADMM at level=0 + OPTS.QUIET = 1; + + if isfield(OPTIONS,'rho'), + OPTS.RHO = OPTIONS.rho; + else + OPTS.RHO = 1.8; + end + + U0 = orth(randn(DIM_M,RANK)); +end + +%%%%%%%%%%%%%%% +% main framework of GRASTA +U_Omega = U0(idx,:); + +if USE_MEX, + [s_t, w, ldual] = mex_srp(U_Omega, y_Omega, OPTS); +else + [s_t, w, ldual] = admm_srp(U_Omega, y_Omega, OPTS); +end + +gamma_1 = ldual;% + OPTS.RHO*(U_Omega*w + s_t - y_Omega); +UtDual_omega = U_Omega' * gamma_1; +gamma_2 = U0 * UtDual_omega; +gamma = zeros(DIM_M,1); +gamma(idx) = gamma_1; +gamma = gamma - gamma_2; + +gamma_norm = norm(gamma); +w_norm = norm(w); +sG = gamma_norm * w_norm; + + +% Here we use the adaptive step-size rule for SGD. The adaptive can work +% well for both dynamic and static subspace tracking tasks + +% 1. determine the step scale from the first observation +if ~STATUS.step_scale, + STATUS.step_scale = 0.5*pi*(1+MIN_MU)/sG; + + if ~QUIET, + fprintf('Level 0: %.2e\n',STATUS.step_scale); + end +end + +% 2. inner product of previous grad and current grad +grad_ip = trace(STATUS.last_w * (STATUS.last_gamma' * gamma) * w'); + +%%% avoid inner product too large +normalization = norm(STATUS.last_gamma * STATUS.last_w','fro') * norm(gamma * w','fro'); +if normalization == 0, + grad_ip_normalization = 0; +else + grad_ip_normalization = grad_ip/normalization; +end +%%% + + +% 3. if the two consecutive grad in the same direction, we take a larger +% step along the gradient direction, otherwise take a small step along the +% gradient direction +STATUS.last_mu = max(STATUS.last_mu + sigmoid(-grad_ip_normalization) , MIN_MU); + +if CONSTANT_STEP > 0, + t = CONSTANT_STEP; +else + % should not take a step larger than pi/2 + t = STATUS.step_scale * LEVEL_FACTOR^(-STATUS.level) * sG / (1+STATUS.last_mu); + if t>=pi/3, + t = pi/3; + end + + % Adjust the level + bShrUpd = 0; + if STATUS.last_mu <= MIN_MU, + if STATUS.level > 1, + bShrUpd = 1; + STATUS.level = STATUS.level - 1; + + if ~QUIET, + fprintf('multi-level adaption - decreasing, t:%.2e, vectors: %d, level: %d\n',... + t,STATUS.curr_iter, STATUS.level); + end + STATUS.curr_iter = 0; + end + + STATUS.last_mu = DEFAULT_MU_LOW; + elseif STATUS.last_mu > MAX_MU, + if STATUS.level < MAX_LEVEL, + bShrUpd = 1; + STATUS.level = STATUS.level + 1; + + if ~QUIET, + fprintf('multi-level adaption - increasing, t:%.2e, vectors: %d, level: %d\n',... + t, STATUS.curr_iter, STATUS.level); + end + STATUS.curr_iter = 0; + STATUS.last_mu = DEFAULT_MU_HIGH; + else + STATUS.last_mu = MAX_MU; + end + end + + if bShrUpd, + if STATUS.level>=0 && STATUS.level <4, % [0,4) + OPTS.MAX_ITER = MIN_ITER; + elseif STATUS.level>=4 && STATUS.level <7, % [4,7) + OPTS.MAX_ITER = min(MIN_ITER*2, ITER_MAX); + elseif STATUS.level>=7 && STATUS.level <10, % [7,10) + OPTS.MAX_ITER = min(MIN_ITER*4, ITER_MAX); + elseif STATUS.level>=10 && STATUS.level <14, % [10,14) + OPTS.MAX_ITER = min(MIN_ITER*8, ITER_MAX); + else + OPTS.MAX_ITER = ITER_MAX; % [14,...) + end + + if ~QUIET, + fprintf('Will use %d ADMM iterations in level %d\n',OPTS.MAX_ITER, STATUS.level); + end + end + +end + +% 4. update the gradient for further step size update +STATUS.last_gamma = gamma; +STATUS.last_w = w; + +STATUS.grad_ip = grad_ip_normalization; % just for debugging + + +% Take the gradient step along Grassmannian geodesic. +alpha = w/w_norm; +beta = gamma/gamma_norm; +step = (cos(t)-1)*U0*(alpha*alpha') - sin(t)*beta*alpha'; + +U0 = U0 + step; + +%% + +STATUS.s_t = s_t; +STATUS.w = w; +STATUS.ldual = ldual; +STATUS.SCALE = 1; +STATUS.curr_iter = STATUS.curr_iter + 1; + +STATUS.grasta_t = t; + +% +%%%%%%%%%%%%%%%%%%%%%% + +Unew = U0; +STATUSnew = STATUS; +OPTSnew = OPTS; +end + + +%% Function of Sigmoid + +function fval = sigmoid(x) +FMIN = -1; FMAX = 1; +omega = 0.1; + +fval = FMIN + (FMAX - FMIN)/(1 - (FMAX/FMIN)*exp(-x/omega)); +end \ No newline at end of file diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/Projection.m b/RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/Projection.m new file mode 100644 index 0000000..cd59957 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/Projection.m @@ -0,0 +1,13 @@ +function y =Projection(Pt,b,T) + +if nargin < 3 + +y = b - Pt*(Pt'*b); + +else + +It = speye(size(Pt,1)); +It = It(:,T); +y = It*b - Pt*(Pt(T,:)'*b); + +end diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/Yall1/Readme.txt b/RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/Yall1/Readme.txt new file mode 100644 index 0000000..d45f29b --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/Yall1/Readme.txt @@ -0,0 +1,35 @@ +YALL1: Your ALgorithms for L1 + +Version 1.2 + +COPYRIGHT (c) 2010 Yin Zhang, Junfeng Yang, and Wotao Yin. + +YALL1 is distributed under the terms of the GNU General Public License 3.0. + +http://www.gnu.org/copyleft/gpl.html + +Permission to use, copy, modify, and distribute this software for +any purpose without fee is hereby granted, provided that this entire +notice is included in all copies of any software which is or includes +a copy or modification of this software and in all copies of the +supporting documentation for such software. +This software is being provided "as is", without any express or +implied warranty. In particular, the authors do not make any +representation or warranty of any kind concerning the merchantability +of this software or its fitness for any particular purpose. + +-------------------------------------------------------------------------------- + +First run "Run_me_1st" from this directory. Then, you can try +any of the demo files, but in order to run the 3rd-party codes +SPGl1 and l1_ls (provided you already installed them), you will +need to edit relevant demo files. + +In order to run demo_hard.m, you need to download from the +YALL1 site the 2 data files: hard150.mat and hard8nz.mat, and +put them in the same folder or the search path. + +In order to use the discrete Walsh-Hadamard transform, the script +Run_Me_1st.m will try to "mex" the file fastWHtrans.cpp in the +Utilities directory, which will require a relevant compiler +installed on your system. diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/Yall1/yall1.m b/RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/Yall1/yall1.m new file mode 100644 index 0000000..4657d07 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/Yall1/yall1.m @@ -0,0 +1,386 @@ +function [x, Out] = yall1b6_mod(A, b, opts) +% +% A solver for L1-minimization models: +% +% min ||Wx||_{w,1}, st Ax = b +% min ||Wx||_{w,1} + (1/nu)||Ax - b||_1 +% min ||Wx||_{w,1} + (1/2*rho)||Ax - b||_2^2 +% min ||x||_{w,1}, st Ax = b and x > = 0 +% min ||x||_{w,1} + (1/nu)||Ax - b||_1, st x > = 0 +% min ||x||_{w,1} + (1/2*rho)||Ax - b||_2^2, st x > = 0 +% +% where (A,b,x) can be complex or real +% (but x must be real in the last 3 models) +% +% Copyright(c) 2009 Yin Zhang +% Test Version: please do NOT distribute +% -------------------------------------- +% +% --- Input: +% A --- either an m x n matrix or +% a structure with 2 fields: +% 1) A.times: a function handle for A*x +% 2) A.trans: a function handle for A'*y +% b --- an m-vector, real or complex +% opts --- a structure with fields: +% opts.tol -- tolerance *** required *** +% opts.nu -- values > 0 for L1/L1 model +% opts.rho -- values > 0 for L1/L2 model +% opts.basis -- sparsifying unitary basis W (W*W = I) +% a struct with 2 fields: +% 1) times: a function handle for W*x +% 2) trans: a function handle for W'*y +% opts.nonneg -- 1 for nonnegativity constraints +% opts.nonorth -- 1 for A with non-orthonormal rows +% see the User's Guide for all other options +% +% --- Output: +% x --- last iterate (hopefully an approximate solution) +% Out --- a structure with fields: +% Out.status --- exit information +% Out.iter --- #iterations taken +% Out.cputime --- solver CPU time +% Out.z --- final dual slack value + +% define linear operators +[A,At,b,opts] = linear_operators(A,b,opts); + +m = length(b); +L1L1 = isfield(opts,'nu') && opts.nu > 0; +if L1L1 && isfield(opts,'weights') + opts.weights = [opts.weights(:); ones(m,1)]; +end + +% parse options +posrho = isfield(opts,'rho') && opts.rho > 0; +posdel = isfield(opts,'delta') && opts.delta > 0; +posnu = isfield(opts,'nu') && opts.nu > 0; +nonneg = isfield(opts,'nonneg') && opts.nonneg == 1; +if isfield(opts,'x0'); x0 = opts.x0; else x0 = []; end +if isfield(opts,'z0'); z0 = opts.z0; else z0 = []; end + + +% check conflicts % modified by Junfeng +if posdel && posrho || posdel && posnu || posrho && posnu + fprintf('Model parameter conflict! YALL1: set delta = 0 && nu = 0;\n'); + opts.delta = 0; posdel = false; + opts.nu = 0; posnu = false; +end +prob = 'the basis pursuit problem'; +if isfield(opts,'rho') && opts.rho > 0, prob = 'the unconstrained L1L2 problem'; end +if isfield(opts,'delta') && opts.delta > 0, prob = 'the constrained L1L2 problem'; end +if isfield(opts,'nu') && opts.nu > 0, prob = 'the unconstrained L1L1 problem'; end +% disp(['YALL1 is solving ',prob,'.']); + +% check zero solution % modified by Junfeng +Atb = At(b); +bmax = norm(b,inf); +L2Unc_zsol = posrho && norm(Atb,inf) <= opts.rho; +L2Con_zsol = posdel && norm(b) <= opts.delta; +L1L1_zsol = posnu && bmax < opts.tol; +BP_zsol = ~posrho && ~posdel && ~posnu && bmax < opts.tol; +zsol = L2Unc_zsol || L2Con_zsol || BP_zsol || L1L1_zsol; +if zsol + n = length(Atb); + x = zeros(n,1); + Out.iter = 0; + Out.cntAt = 1; + Out.cntA = 0; + Out.exit = 'Data b = 0'; + return; +end +% ======================================================================== + +% scaling data and model parameters +b1 = b / bmax; +if posrho; opts.rho = opts.rho / bmax; end +if posdel; opts.delta = opts.delta / bmax; end + +% solve the problem +t0 = cputime; +[x1,Out] = yall1_solve(A, At, b1, x0, z0, opts); +Out.cputime = cputime - t0; + +% restore solution x +x = x1 * bmax; +if L1L1; x = x(1:end-m); end +if isfield(opts,'basis') + x = opts.basis.trans(x); +end +if nonneg; x = max(0,x); end + +end + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [A,At,b,opts] = linear_operators(A0, b0, opts) +% +% define linear operators A and At +% (possibly modify RHS b if nu > 0) +% +b = b0; +if isnumeric(A0); + if size(A0,1) > size(A0,2); + error('A must have m < n'); + end + A = @(x) A0*x; + At = @(y) (y'*A0)'; +elseif isstruct(A0) && isfield(A0,'times') && isfield(A0,'trans'); + A = A0.times; + At = A0.trans; +elseif isa(A0,'function_handle') + A = @(x) A0(x,1); + At = @(x) A0(x,2); +else + error('A must be a matrix, a struct or a function handle'); +end + +% use sparsfying basis W +if isfield(opts,'basis') + C = A; Ct = At; clear A At; + B = opts.basis.times; + Bt = opts.basis.trans; + A = @(x) C(Bt(x)); + At = @(y) B(Ct(y)); +end + +% solving L1-L1 model if nu > 0 +if isfield(opts,'nu') && opts.nu > 0 + C = A; Ct = At; clear A At; + m = length(b0); + nu = opts.nu; + t = 1/sqrt(1 + nu^2); + A = @(x) ( C(x(1:end-m)) + nu*x(end-m+1:end) )*t; + At = @(y) [ Ct(y); nu*y ]*t; + b = b0*t; +end + +if ~isfield(opts,'nonorth'); + opts.nonorth = check_orth(A,At,b); +end + +end + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function nonorth = check_orth(A, At, b) +% +% check whether the rows of A are orthonormal +% +nonorth = 0; +s1 = randn(size(b)); +s2 = A(At(s1)); +err = norm(s1-s2)/norm(s1); +if err > 1.e-12; nonorth = 1; end +end + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%% solver %%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [x, Out] = yall1_solve(A,At,b,x0,z0,opts) + +% yall1_solve version beta-6 (Aug. 2, 2009) +% Copyright(c) 2009 Yin Zhang + +%% initialization +m = length(b); sqrtm = sqrt(m); bnrm = norm(b); +[tol,mu,maxit,print,nu,rho,delta, ... + w,nonneg,nonorth,gamma,stepfreq] = get_opts; +x = x0; z = z0; +if isempty(x0); x = At(b); end +n = length(x); +if isempty(z0) + z = zeros(n,1); +end +if isfield(opts,'nonorth') && opts.nonorth > 0 + y = zeros(m,1); Aty = zeros(n,1); +end +if print; fprintf('--- YALL1 vb6 ---\n'); end +if print; iprint1(0); end; + +rdmu = rho / mu; +rdmu1 = rdmu + 1; +bdmu = b / mu; +ddmu = delta / mu; + +Out.cntA = 0; +Out.cntAt = 0; +%% main iterations +for iter = 1:maxit + + %% calculations + xdmu = x / mu; + if ~nonorth; % orthonormal A + y = A(z - xdmu) + bdmu; + if rho > 0; + y = y / rdmu1; + elseif delta > 0; + y = max(0, 1 - ddmu/norm(y))*y; + end + else % non-orthonormal A + ry = A(Aty - z + xdmu) - bdmu; + if rho > 0; ry = ry + rdmu*y; end + if iter <= 1 || mod(iter,stepfreq) == 0; + % modified by Junfeng (to save one matrix-vector mul.tion) + Atry = At(ry); + denom = Atry'*Atry; + if rho > 0, denom = denom + rdmu * (ry'*ry); end + stp = real(ry'*ry)/(real(denom) + eps); + Out.cntAt = Out.cntAt + 1; + end + y = y - stp*ry; + end + Aty = At(y); + + z = Aty + xdmu; + z = proj2box(z,w,nonneg,nu,m); + + Out.cntA = Out.cntA + 1; + Out.cntAt = Out.cntAt + 1; + + rd = Aty - z; xp = x; + x = x + (gamma*mu) * rd; + + %% other chores + stop = check_stopping; + if print > 1; iprint2; end + if stop; break; end + +end % main iterations + +% output +Out.z = z; +Out.iter = iter + 1; +if iter == maxit; Out.exit = 'Exit: maxiter'; end +if print; iprint1(1); end + +%% nested functions + function [tol,mu,maxit,print,nu,rho,delta, ... + w,nonneg,nonorth,gamma,stepfreq] = get_opts + % get or set options + tol = opts.tol; + mu = mean(abs(b)); + maxit = 9999; + print = 0; + nu = 0; + rho = 0; + delta = 0; + w = 1; + nonneg = 0; + nonorth = 0; + gamma = 1.618; % ADM parameter + stepfreq = 1; + if isfield(opts,'mu'); mu = opts.mu; end + if isfield(opts,'maxit'); maxit = opts.maxit; end + if isfield(opts,'print'); print = opts.print; end + if isfield(opts,'nu'); nu = opts.nu; end + if isfield(opts,'rho'); rho = opts.rho; end + if isfield(opts,'delta'); delta = opts.delta; end + if isfield(opts,'weights'); w = opts.weights; end + if isfield(opts,'nonneg'); nonneg = opts.nonneg; end + if isfield(opts,'nonorth'); nonorth = opts.nonorth; end + if isfield(opts,'gamma'); gamma = opts.gamma; end + if isfield(opts,'stepfreq'); stepfreq = opts.stepfreq; end + end + + function z = proj2box(z,w,nonneg,nu,m) + if nonneg + z = min(w,real(z)); + if nu > 0 %L1L1 model + z(end-m:end) = max(-1,z(end-m:end)); + end + else + z = z .* w ./ max(w,abs(z)); + end + end + + function stop = check_stopping + stop = 0; + q = 0.1; % q in [0,1) + if delta > 0; q = 0; end + % check relative change + xrel_chg = norm(x-xp)/norm(x); + if xrel_chg < tol*(1 - q) + Out.exit = 'Exit: Stablized'; + stop = 1; return; + end + if xrel_chg >= tol*(1 + q); return; end + % check dual residual + rdnrm = norm(rd); + d_feasible = rdnrm < tol*sqrtm; + if ~d_feasible; return; end + % check duality gap + objp = sum(abs(w.*x)); + objd = b'*y; + if rho > 0 + rp = A(x) - b; + Out.cntA = Out.cntA + 1; + objp = objp + (0.5/rho)*(rp'*rp); + objd = objd - (0.5*rho)*( y'*y ); + end + gap_small = abs(objd - objp) < tol*abs(objp); + if ~gap_small; return; end + % check primal residual + if rho == 0; rp = A(x)-b; Out.cntA = Out.cntA + 1; end; + rpnrm = norm(rp); + if rho > 0; + p_feasible = 1; + else + p_feasible = rpnrm < tol*bnrm; + end + if p_feasible; stop = 1; Out.exit = 'Exit: Converged'; end + end + + function iprint1(mode) + switch mode; + case 0; % at the beginning + rp = A(x) - b; + rpnrm = norm(rp); + fprintf(' norm( A*x0 - b ) = %6.2e\n',rpnrm); + case 1; % at the end + rp = A(x) - b; + objp = sum(abs(w.*x)); + objd = b'*y; + if rho > 0 + objp = objp + (0.5/rho)*(rp'*rp); + objd = objd - (0.5*rho)*( y'*y ); + end + dgap = abs(objd - objp); + rel_gap = dgap / abs(objp); + rdnrm = norm(rd); + rel_rd = rdnrm / sqrtm; + rpnrm = norm(rp); + rel_rp = rpnrm / bnrm; + fprintf(' Rel_Dgap Rel_ResD Rel_ResP\n'); + fprintf(' %8.2e %8.2e %8.2e\n',rel_gap,rel_rd,rel_rp); + end + end + + function iprint2 + rdnrm = norm(rd); + rp = A(x) - b; + rpnrm = norm(rp); + objp = sum(abs(w.*x)); + objd = b'*y; + if rho > 0 + objp = objp + (0.5/rho)*(rp'*rp); + objd = objd - (0.5*rho)*( y'*y ); + end + dgap = abs(objd - objp); + if mod(iter,50) == 0 + fprintf(' Iter %4i:',iter); + fprintf(' Dgap %6.2e',dgap); + fprintf(' ResD %6.2e',rdnrm); + fprintf(' ResP %6.2e',rpnrm); + fprintf('\n'); + end + if isfield(opts,'xs') && ~isfield(opts,'nu') + if iter == 1; Out.error = []; Out.optim = []; end + optim = max(dgap/abs(objp), rdnrm/sqrtm); + if rho == 0; optim = max(optim,rpnrm/bnrm); end + Out.optim = [Out.optim optim]; + Out.error = [Out.error norm(x-opts.xs)]; + end + end + +end \ No newline at end of file diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/gs.m b/RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/gs.m new file mode 100644 index 0000000..20aa196 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/gs.m @@ -0,0 +1,17 @@ +function V = gs(A) + +% Gram-Schmidt orthogonalization of vectors stored in +% columns of the matrix A. Orthonormalized vectors are +% stored in columns of the matrix V + +V = zeros(size(A)); +n = size(A,2); +for k=1:n + V(:,k) = A(:,k); + for j=1:k-1 + R(j,k) = V(:,j)'*A(:,k); + V(:,k) = V(:,k) - R(j,k)*V(:,j); + end + R(k,k) = norm(V(:,k)); + V(:,k) = V(:,k)/R(k,k); +end \ No newline at end of file diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/recursivePCA.m b/RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/recursivePCA.m new file mode 100644 index 0000000..9701a61 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/recursivePCA.m @@ -0,0 +1,27 @@ + +function[Ut Sigt Pdel]=recursivePCA(Lt,U0,Sig0) + +global D d tau sig_add sig_del +D = [D Lt];d = d+1; +if ( d < tau) + Ut=U0; Sigt=Sig0; + Pdel=[]; +else + %delete decayed directions + a = (1/d)*diag((U0'*D)*(D'*U0),0); + T_del = find( abs(a) < sig_del); %min(a) + Pdel = U0(:,T_del); + T_del_c = setdiff(1:size(U0,2),T_del); + U0 = U0(:,T_del_c); Sig0 = Sig0(T_del_c,T_del_c); + %incremental SVD + L = U0'*D; H = D - U0*L; + [J K] = qr(H,0); + Sig = [Sig0, L ; + zeros(d,size(Sig0,2)), K ]; + [Ur Sigr ~] = svd(Sig,0); + Tr = union([1:size(U0,2)],find(abs(diag(Sigr))> sqrt(sig_add*d))); + Ur = Ur(:,Tr); Sigr = Sigr(Tr,Tr); + Ut = [U0 J]*Ur; Sigt = Sigr; + D = []; d = 0; +end + diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/subLS.m b/RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/subLS.m new file mode 100644 index 0000000..edd065f --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/ReProCS/subLS.m @@ -0,0 +1,12 @@ +function xhat = subLS(Pt,T,y) + +%A = Pt(T,:); + +It = speye(size(Pt,1)); +It = It(:,T); +C = It - Pt*Pt(T,:)'; + +% xhat = pinv(C)*y; +%xhat = C\y; +% xhat = lsqr(C,y,1e-3,50); +[xhat,~] = lsqr(C,y); \ No newline at end of file diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/bgfg_seperation_ReProCSmod.m b/RapidPT_min/include/grasta.1.2.0/make_video/bgfg_seperation_ReProCSmod.m new file mode 100644 index 0000000..407e55d --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/bgfg_seperation_ReProCSmod.m @@ -0,0 +1,203 @@ +%% Disclaimer: This function is based on ReProCS(modCS) algorithm downloaded from the authors¡¦ website +% and use the default parameters provided in the demo code of ReProCS to do video background separation. +% In order to run it on our experimental laptop, we resized all the videos for ReProCS by the factor RESIZE +% ROWS = rows/RESIZE; COLS = cols/RESIZE +% +% +% Detailed information on ReProCS please referr to +% http://home.engineering.iastate.edu/ ?chenlu/ReProCS/ReProCS_main.htm +%% + +function [fgs_cmp,bgs_cmp, vInfo] = bgfg_seperation_ReProCSmod( videopath,batch_size, MAXITER, thresh,FPS_ONLY, frame_names ,MAX_FRAME,RESIZE) + +FILE_EXT = '.bmp'; + +Dir_lists = dir(videopath); +Video_Length = length(Dir_lists); + + +%% 1. use rpca get the clean training data batch_size frames +frame_count = 0; +frames_idx = randperm(Video_Length); + +for i=1:Video_Length, + if Dir_lists(frames_idx(i)).isdir, + continue; + end + if isempty(strfind(Dir_lists(frames_idx(i)).name,FILE_EXT)) , + continue; + end + + frame_count = frame_count+1; + fname = [videopath Dir_lists(frames_idx(i)).name]; + + % prepare the image + I = imread(fname); + I = double(rgb2gray(I)); + + if frame_count==1, + [rows,cols] = size(I); + VW_ROWS = rows/RESIZE; + VW_COLS = cols/RESIZE; %ceil(cols * VW_RATIO); + DIM = VW_ROWS * VW_COLS; + batch_buf = zeros(DIM, batch_size); + RPCA_lambda = 1/sqrt(DIM); + fgs_cmp = zeros(DIM, length(frame_names)); % used for the comparision frames + bgs_cmp = zeros(DIM, length(frame_names)); + batch_fnames = cell(1,length(frame_names)); + vInfo.rows = rows; + vInfo.cols = cols; + + end + + I = imresize(I,[VW_ROWS,VW_COLS],'bicubic'); +% I = I/max(max(I)); + + k = mod(frame_count, batch_size); + if k == 0, k = batch_size; end + + batch_buf(:,k) = I(:); + + batch_fnames{k} = Dir_lists(i).name; + + if mod(frame_count,batch_size) == 0, + fprintf('randomly selected %d frames for offline rpca\n',batch_size); + break; + end +end +t_start = tic; +[BK_hat, ~ ,~] = inexact_alm_rpca(batch_buf, RPCA_lambda, -1, MAXITER); +t_end = toc(t_start); +fprintf('Use %d frames for offline Robust PCA to get the clean training data costs %.2f seconds, %.2f fps\n',... + batch_size,t_end, frame_count/t_end); + +%% 2. training the initial subspace for ReProCSmod +mu0 = mean(BK_hat,2); +numTrain=size(BK_hat,2); +[U, Sig, ~] = svd(BK_hat - repmat(mu0,1,numTrain),0); +T0 = find(diag(Sig)>0.1); +U0 = U(:,T0);Sig0 = Sig(T0,T0); + +global tau D d sig_add sig_del % parameters for recursive PCA +D=[]; d=0; +tau=20; +sig_del = 1; sig_add = 1; % thresholds used to update the PC matrix (Ut) + +Shat_mod = zeros(DIM,1); Lhat_mod = zeros(DIM,1); Ohat_mod = zeros(DIM,1); Nhat_mod=cell(1,1); +Lhat_mod_old = zeros(DIM,1); +alpha_add = 5; +alpha_del = 10; + +Ut = U0; Sigt = Sig0; +clear opts; opts.tol = 1e-3; opts.print = 0;D=[]; d=0; +opts.delta= 0.05; +gamma = 5; + + +%% 3. Online RPCA on each frame +if ~FPS_ONLY, + figure; + h_fg = subplot(2,2,1);set(gca,'nextplot','replacechildren');title('Foreground'); + h_fg_bw = subplot(2,2,2);set(gca,'nextplot','replacechildren');title('Thresholded-Foreground'); + h_bg = subplot(2,2,3);set(gca,'nextplot','replacechildren');title('Background'); + h_img = subplot(2,2,4);set(gca,'nextplot','replacechildren');title('Video'); +end + + +frame_count = 0; +t_start = tic; +for i=1:Video_Length, + if Dir_lists(i).isdir, + continue; + end + if isempty(strfind(Dir_lists(i).name,FILE_EXT)) , + continue; + end + + frame_count = frame_count+1; + fname = [videopath Dir_lists(i).name]; + + % prepare the image + I = imread(fname); + I = double(rgb2gray(I)); + % I = I/max(max(I)); + I = imresize(I,[VW_ROWS,VW_COLS],'bicubic'); + + if frame_count == 1, + Atf.times = @(x) Projection(Ut,x); Atf.trans = @(y) Projection(Ut,y); + yt = Atf.times(I(:)-mu0); + [xp,~] = yall1(Atf, yt, opts); % xp = argmin ||x||_1 subject to ||yt - At*x||_2 <= opts.delta + + %support thresholding and least square + That = find(abs(xp)>=gamma); + Shat_mod(That) = subLS(Ut,That,yt); + Lhat_mod(:) = I(:) - Shat_mod(:); + + %estimate Ot + Ohat_mod(That) = I(That); + Nhat_mod=That; + + else + Atf.times = @(x) Projection(Ut,x); Atf.trans = @(y) Projection(Ut,y); + yt = Atf.times(I(:)-mu0); + Tpred = Nhat_mod; %predicted support (previous support estimation) + weights= ones(DIM,1); weights(Tpred)=0; + opts.weights = weights(:); + opts.delta = norm(Atf.times(Lhat_mod_old-mu0),2); + % xp = argmin ||x_{Tpred^c}||_1 subject to ||yt - At*x||_2 <= opts.delta + [xp,flag] = yall1(Atf, yt, opts); + + % Add-LS-Del-LS step + That = union(Nhat_mod,find(abs(xp)>alpha_add)); + Shat_mod(That) = subLS(Ut,That,yt); + Tdel = find(abs(Shat_mod(:)) MAX_FRAME && MAX_FRAME > 0, + break; + end +end + +t_end = toc(t_start); +fprintf('Seperating %d frames by ReProCS costs %.2f seconds, %.2f fps\n',... + frame_count, t_end, frame_count/t_end); + + +end + diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/bgfg_seperation_mf.m b/RapidPT_min/include/grasta.1.2.0/make_video/bgfg_seperation_mf.m new file mode 100644 index 0000000..4f9ef59 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/bgfg_seperation_mf.m @@ -0,0 +1,93 @@ +%% This function is to seperate the given video frames into foreground/background +% in realtime by median filter, and return the corresponding +% seperated results of ground-truths as fgs_cmp. +% +%% + +function [fgs_cmp,bgs_cmp,vInfo] = bgfg_seperation_mf(videopath, MEDIAN_BUF, thresh,FPS_ONLY, frame_names,MAX_FRAME ) + +FILE_EXT = '.bmp'; + +% Median-filter seperation +% +Dir_lists = dir(videopath); +Video_Length = length(Dir_lists); + +if ~FPS_ONLY, + figure; + h_fg = subplot(2,2,1);set(gca,'nextplot','replacechildren');title('Foreground'); + h_fg_bw = subplot(2,2,2);set(gca,'nextplot','replacechildren');title('Thresholded-Foreground'); + h_bg = subplot(2,2,3);set(gca,'nextplot','replacechildren');title('Background'); + h_img = subplot(2,2,4);set(gca,'nextplot','replacechildren');title('Video'); +end + +frame_count = 0; +t_start = tic; + +for i=1:Video_Length, + if Dir_lists(i).isdir, + continue; + end + if isempty(strfind(Dir_lists(i).name,FILE_EXT)) , + continue; + end + + frame_count = frame_count+1; + fname = [videopath Dir_lists(i).name]; + + % prepare the image + I = imread(fname); + I = double(rgb2gray(I)); + + if frame_count==1, + [rows,cols] = size(I); + VW_ROWS = rows; + VW_COLS = cols; %ceil(cols * VW_RATIO); + DIM = VW_ROWS * VW_COLS; + bgbuf = zeros(DIM, MEDIAN_BUF); + k = 1; + fgs_cmp = zeros(DIM, length(frame_names)); + bgs_cmp = zeros(DIM, length(frame_names)); + vInfo.rows = rows; + vInfo.cols = cols; + + end + + I = I/max(max(I)); + + [ fg, bg, bgbuf, k ] = median_filter_bg( I(:), bgbuf, MEDIAN_BUF, k ); + + noise_thresh = 1 * min(abs(I(:))); + fg(abs(fg) < noise_thresh) = 0; + + bg_img = reshape(bg , VW_ROWS,VW_COLS); + o_img = reshape( I ,VW_ROWS,VW_COLS ); + s_img = reshape(fg,VW_ROWS,VW_COLS); + fg = fg_thresholding(fg,thresh); + s_img_bw = reshape(fg,VW_ROWS,VW_COLS); + + for jj=1:length(frame_names), + if strcmpi(Dir_lists(i).name, frame_names{jj}), + fgs_cmp(:,jj) = s_img(:); + bgs_cmp(:,jj) = bg_img(:); + break; + end + end + + if ~FPS_ONLY && mod(i,1)==0, + axes(h_bg); imagesc(bg_img);colormap gray;axis off;axis ij ; + axes(h_img); imagesc(o_img);colormap gray;axis off;axis ij ; + axes(h_fg); imagesc(s_img);colormap gray;axis off;axis ij ; + axes(h_fg_bw); imagesc(s_img_bw);colormap gray;axis off;axis ij ; + end + + if frame_count >= MAX_FRAME && MAX_FRAME~=-1, + break; + end +end +t_end = toc(t_start); +fprintf('Seperating %d frames by Median-filter costs %.2f seconds, %.2f fps\n',... + frame_count, t_end, frame_count/t_end); + +end + diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/frames2matrix.m b/RapidPT_min/include/grasta.1.2.0/make_video/frames2matrix.m new file mode 100644 index 0000000..4ad2266 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/frames2matrix.m @@ -0,0 +1,45 @@ +function [ vMatrix,vInfo ] = frames2matrix( videopath, frame_names) +%FRAMES2MATRIX Summary of this function goes here +% Detailed explanation goes here +FILE_EXT = '.bmp'; + +Dir_lists = dir(videopath); +Video_Length = length(Dir_lists); + +frame_count = 0; + +for i=1:Video_Length, + if Dir_lists(i).isdir, + continue; + end + if isempty(strfind(Dir_lists(i).name,FILE_EXT)) , + continue; + end + + frame_count = frame_count+1; + fname = [videopath Dir_lists(i).name]; + + % prepare the image + I = imread(fname); + I = double(rgb2gray(I)); + + if frame_count==1, + [rows,cols] = size(I); + DIM = rows * cols; + vMatrix = zeros(DIM, length(frame_names)); + vInfo.rows = rows; + vInfo.cols = cols; + + end + + for jj=1:length(frame_names), + if strcmpi(Dir_lists(i).name, frame_names{jj}), + vMatrix(:,jj) = I(:); + break; + end + end + +end + +end + diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/Afunc.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/Afunc.m new file mode 100644 index 0000000..92073c7 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/Afunc.m @@ -0,0 +1,12 @@ +function y=Afunc(x) +% y=Afunc(x) +% Testfunction returning a linear operator applied to x. +% Used for testing lansvd. +% +% y = A'*x + +% Rasmus Munk Larsen, DAIMI, 1998 + +global A MxV +y = A*x; +MxV = MxV + 1; \ No newline at end of file diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/AtAfunc.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/AtAfunc.m new file mode 100644 index 0000000..ba82303 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/AtAfunc.m @@ -0,0 +1,13 @@ +function y=AtAfunc(x) +% y=AtAfunc(x) +% Testfunction defining a linear operator applied to x. +% Used for testing laneig. +% +% y = A'*(A*x) + +% Rasmus Munk Larsen, DAIMI, 1998 + + +global A MxV +y = A'*(A*x); +MxV = MxV + 2; diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/Atransfunc.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/Atransfunc.m new file mode 100644 index 0000000..d1f35d1 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/Atransfunc.m @@ -0,0 +1,12 @@ +function y=Atransfunc(x) +% y=Atransfunc(x) +% Testfunction returning the transpose of a linear operator applied to x. +% Used for testing lansvd. +% +% y = A'*x + +% Rasmus Munk Larsen, DAIMI, 1998 + +global A MxV +y = A'*x; +MxV = MxV + 1; diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/Cfunc.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/Cfunc.m new file mode 100644 index 0000000..013b84d --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/Cfunc.m @@ -0,0 +1,15 @@ +function y = Cfunc(x) +% y=Cfunc(x) +% Testfunction defining a linear operator applied to x. +% Used for testing laneig. +% +% y = [ 0 A ] * x +% [ A' 0 ] + +% Rasmus Munk Larsen, DAIMI, 1998 + + +global A MxV +[m n] = size(A); +y = [A*x(m+1:end,:); A'*x(1:m,:)]; +MxV = MxV + 2; \ No newline at end of file diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/bdsqr.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/bdsqr.m new file mode 100644 index 0000000..24b4a4c --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/bdsqr.m @@ -0,0 +1,31 @@ +function [sigma,bnd] = bdsqr(alpha,beta) + +% BDSQR: Compute the singular values and bottom element of +% the left singular vectors of a (k+1) x k lower bidiagonal +% matrix with diagonal alpha(1:k) and lower bidiagonal beta(1:k), +% where length(alpha) = length(beta) = k. +% +% [sigma,bnd] = bdsqr(alpha,beta) +% +% Input parameters: +% alpha(1:k) : Diagonal elements. +% beta(1:k) : Sub-diagonal elements. +% Output parameters: +% sigma(1:k) : Computed eigenvalues. +% bnd(1:k) : Bottom elements in left singular vectors. + +% Below is a very slow replacement for the BDSQR MEX-file. + +% warning('PROPACK:NotUsingMex','Using slow matlab code for bdsqr.') +k = length(alpha); +if min(size(alpha)') ~= 1 | min(size(beta)') ~= 1 + error('alpha and beta must be vectors') +elseif length(beta) ~= k + error('alpha and beta must have the same lenght') +end +B = spdiags([alpha(:),beta(:)],[0,-1],k+1,k); +[U,S,V] = svd(full(B),0); +sigma = diag(S); +bnd = U(end,1:k)'; + + diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/bdsqr.mexglx b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/bdsqr.mexglx new file mode 100644 index 0000000000000000000000000000000000000000..3972ea975dd84a082051240b4770032935e8405c GIT binary patch literal 74546 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 Rkn#St(hiQfd%KNn{@;WyS6To7 literal 0 HcmV?d00001 diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/bdsqr.mexsg64 b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/bdsqr.mexsg64 new file mode 100644 index 0000000000000000000000000000000000000000..56d48bfa79c236e65c327a49a368991966476d23 GIT binary patch literal 26109 zcmeHP4RBP~b-wq#ebR!2yb=P7*fCGGWGmFWlK3%VYlfAOK)8Svzz%69T~^xFYR9Wx zvAY7%sguQ)V|8NJ!p1F0aINrXHTD>=aYt?ASZ&glb`p;}rh#-4i^+Iur{ihpG$HD= z_4YgW-TU@w5e;e5Nt=0hX7}9lopbKbcYpS+V9#f}wrkl;ncusVHfW&9HFs zj<`7ziYb7i43SQADx(U+&`~xN3UeeNAK@rUh8S=pNM@%@2C{6=`2+N$n=7S4deWWu=r# zEK(JcLl$RL6&nP)S{bn7p%j6r?iXtLcgm-m#b+lFzk{ad%<=1V?6DGAK3jAf72i9cawxp;|9On zgd}|d1o5x<6yw5l%cZ@+vR9lZ9i_?={0~VYp3VSUS8;ZS)Tw{AEAwuMB#O@x_B-*1 z{wiiAqWChUuJ{shXrIOb|4KEV71B=#*u}h@Sh3E_*Ofo~=FuNM08aTwZG12`vS~Qg zmrJBm4E3%|W?MGCYb3`8M>fZD+bppiVq+#2$;CR;!@bGawn#3M7$Go{Os4xRr=AS! z?Mn|GVA0;_-b|Q8mLyvJL?n~4o86R&#aJL0Lmz=mIvUAESRk3mwXr}pV`#z^W$`Da2UyNN;Z@wohsOnaE(#l!>I`v8=KU4fm#C&9Z1RlF7xxEE~?|(nB<& z2V zXJ;TiL~BKJJb=k1`iQ*VWFiYTfn;+T78r}kk)X?F@b=eIZj+RtB8Np&wMAG%NIY>V?L!CFW<&(5OmRfW-gsO}tfH_;iqT{_VDRd>a5 zi8%$`UrX@1*$JXf_um~3>{irGhyIJGep_b+=X|NnFX8p4*W$bz_)FK~Y!vw6YjOP# zfKObDYaamr>uYf~jV++sx9?l{jsaKWA$$@T3Oyh2ugi9T+xIcnjDORCw@81i8^2J* z%R&~;UjqIQMZElqh3l7qf4_*^_c``G|Dgj{_p%9mwuoEzFEH@NKLk$u8{@Q}ucn}n z6!9v=Q}LX`+h^={tmhR#9Opz^Sj4T*D;Q|JpDW@WUg%UvKH%2$b<8GW?N?Qr9Qa`cLaukNSXfxqkU-|N7CZTO`Y#fA49M-Z#2m7WOsw{inbaC%LP*r9aBa9;v|GOQyHAo1DeQ~x zJbRw>$|Ls(9z5Ur8__NsICX&Vg`c0Kdz@>dHDa9QTQ9vvdPUP0Pm{zqjzu$H$ourm zBaON_yI^%4yRAfDUZR^NdVPt0dx?HWiQZ76HpFYky z3uo8>yPR)4J;6eSSJ_a5#_@xfGo$$) zns;IMK@6{GP>ZYxKRsEI4V3zkv0B0sb$t zp2CZ)4t1Yq_B3jtZi+o0$68^3c;ll7y|6K~yE}dg`(%=}5D#oR)cDjfw%Ze8&F~+u z3o#GmTaNwl7W7Lq;F$b1)1-DUiFzJ&tji4T5$v-W?6Dc_#To2D{WAJ|olW>2DGX4% zj`o^-tPlluqy+B)o}@hmd_t`e?UmXt*@gr6eY_Bd-y~upCGAWAy8!HxeORb6-P8EQ z6Oa?T8*z5>bUr@z2-6zsPfsmi820V?C^LlDOU-y}-QD zSD6=QqK-|EHP+=>JGgBroMJy&apt>tjInP=P@iDl{w!WT=DpfixU#9<_elR?=G|1!w5z>^+5T4MUAm<3 z!PR`>%FI{T(9DbA`z&iyZBjqre-E{*t;qYaKD)JF8}s)Yh1nU*g?R06KppeFc!K$6 zrkFYNC#>lr_Qu6i%-cE9#D0P&<)4%>c9mi<53Fg+Rf@s9<+|o6Ue#Hpcee0l)&}0c zNAspR--|n_q2uLl{dTXP{JwkpLG^5-C~>9BfXjf(fXjf(fXjf(fXjf(fXjf(fXjf( zfXjf(fXjf(fXjf(fXjf(fXjf(fXjf(fXjf(fXjf(fXjf(fXjf(fXjf(fXjf(fXjf( zfXjf(fXjf(z^?=Y;uoW4CboAtk%?u^-2SwgNDU3=%t$6aOus43TGO1zFFl;Q)-jSC z8i<&YRMhN^WdSHu2jr#^&?ujhTorN6c1pU#u^e&YZsrWE{#cS@1B!@AvXd-H+(mAs) zo!S@6#4!S^Y-``OwY|e!6KFM4kz8V*ZGc(+?pyuN4Zn|4Q8y%&f9Qt1i%#fI{Ju^7 zUXElAW|E^)9+vWil;@=UhLHDtWk~ApN=d&>+EBQ6?-|JdwhR}o7=L?Fb89XGE(0zD zE(0zDE(0zDE(0zDE(0zDE(5;;4De?eWwoF(?O_GaLS))Nt_|d`XdXxp#{AiIGL~x2 z3=XFrYDTiFWTdybXUF|L?HhlCH4kSq&52ZBayW|b&f?DmVI-gm^f7+wOD~_-kNc8| z!9*?_7+~5LK6viD{RYsY{ zb%Pta=FvU8uFAIz`e%4GRGk|}t$+=E{jD`Vv&L6j<-5DZFj|e8D#I{K-*wGE8`=U9 zsnw#{C8AxO-)is%^knD{@@hk`Hw<**L8quS7&_WQHwM=<{dYJlb=GhIa7uP!l{f9h zY5y4)$4adh=x6-+?_w=pM_L!fPIZq_Q&wq|YvuX^Zq#4^`#H2S(iZkKRaZgL^oOA= zsYaD!e8xfuo%@QaM)NJlyUw*mG!1gA_SIBXS5+YzC;@l_H)Z-T*F42p?X_pMy<}Fj zqr_r2Cx;?^4@KfJx#{p%nr5Vdi)B*H*-Rg!ylnVm4&`N|?e_e|%SZL^Ii^@MZ7eC% zZ{`MHrfJ2F19r!fU#>E7T|t9(ayw~MqDe*B-v1&^=SBWH<)@@y`D-#C0e{>w@lN!j z(#a`rUd?rHqjzydM}@B(85II7Sn=x>>ne2bhRV>wYF@(+hJgQK-SpLVFPch($oS1_ z;K&-qo#(l)&-8b8ZEAmD>#ks=H?cmoYGp8yjjSI`3}sgbk)p0|eWtbLA=3}PE#g}E zX^SYYji2hCO$-hrqu)d7p20Y*zuSekb?pvs+OoCF^hZ+Jgy|P!G5zuPe{zDX;_9$ub*EgQCbdxP2R1!-dAV459IyVhYyaHI&el%7l2w8~?05;q6|2L(7V@**xcH{{P)M|Fik3 zJ*H(fURUlo?p&kfQnbTrrlq_<0BAOKzO+i-W^4hi7XJQf=VN2Y5+e&|o>{vdS`b=Z z-cAjuBC?`LMeSs$dPC($S$ow4-#A{r@tLwtBV=?O^=?1p={>A%ep=W1z17|tZ|&wo zo}EwYhtfFGyi1Lx@tSYGc(E_YwRZma-dHfWHn6J2-@0<`nl&p|uWM}y7O%H7>y7zk z!p~qZ=vt=W0&sOO} z*ZV!Ii?=&&)0NVs?)jFM7Sq4Aef#F%db)bUeGCt9sT_K3*b&>8pbzDs*@}NwX($@D zM1$5{tWuQTy-&ETL}Se@tD9G~m@8KWTh|6xtu@8Nrr9+zBx{aluG{|4Z>k9ql zP%A!I!~!MKVLT3JBAEl?0~ZT@?M851y1$&^%AJsmV)KY?8caru`|-w}9vmNE*?~v~ z|KjI=!1TvPhSHf_EE+}{+TL{1#8lOj+Pp^jfMxpAb9bES@32}(;7lY-a`>7->(J5t zZL<2xSKfbg5!1B4)64Sb;qw;kmteazX25$Kp47?&dhyGQO z@hbVPlH#Mp11D>1;IUo?&__%?Uh>gUjb9~`SJF-%FT?D3(kbz?Aq}$svXG@KNlA6> zIg&~BPh)DvOC@%e@ha)Al9YT`%)b(nii)p8eJ$p15{M$>E6!W0l46X+v6`pifn+CM zl<1j?il;{i6g$bf2}P|D8C3to|2Fim+LQ4r*{_l!Su)L4#X03p;3}T_z$3(>J&-6$ zvMEcq-<|Oy39Gcoc=ZUQq(~xc2ctscrb1()|L>ssmk*sGKvY8F9cGztR;tB$5HN_B zh)1I`UL_+|QY0m|gHdsgKXYw-hqNnc`>Qsb@gt6Si~mB0oS%|nT~#be@>3;`O3C=u zL${LG?Vs9s9P3ZXx#uZ85)(~zSi!=WC_2YNSKRAe_+}Ddg zd;R!b@?47K-PenMUB#8`}5DKRq&zr&K(zW*11+;pG- literal 0 HcmV?d00001 diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/bdsqr.mexsol b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/bdsqr.mexsol new file mode 100644 index 0000000000000000000000000000000000000000..345566abba98106a927710ee68ece7037644d043 GIT binary patch literal 95852 zcmeFae|!|zc`knThoqH|&4OhjBpJqrfa1`UCVXyXz}AE)RHX`0xzte{Qr0mfa*S;m z%Z_p@TZ37N6+i4n7I<-SI>-VGgHzQduHsU(P>D#sz!h9@MJ}Xk7g9NOS|uip9AoP~ z&zX0$g9^6O+t26w&sWJZ&phWn@B5zjob#SDv$NxdFIFt}`F(2aFQ6s^lW4_fp7O1Y zDit6ya41$&)hDDJ2l?}bRw;gz%Fs1gpXYwfk*-i`Vh|up%KgfhZ7V-M&YyeClJn^} zeh!~m_~!@p1C^GSTB@dSUL#ivLkrG8J2;}5?J zg7$9l6ioHt|F2+y7&d+j2X6An&H9^9ejEUuKdAoagfBjxC&DC+BW^u6NFzv4!%9&Uuc>BhJHeUM}a8ob&5C<(%Vx z><{ucjGX}BT*t-baDJnUdBpjYap#;bV}B@TJ0<2yPd1!8Z3b|hgN*+Z)vN^P=+9Wc zO8G3e{U~Sq7gCmgQohJJ8$18Qap#re&cEWGOXI)po{PTK!@((J$yy){4E5E#W@qho~@|DX!zo_DiE7dpdd9dcY5c-4FwO?`$OL17dcJ*o~ zTl3(z9IkS$x_@=u7uT-+(!<|cURR5vng_q5KC^c9{SI8Y>Rz?7?5j&Z|D`|t0wuq4 z_u2=*}Us${P?%LI54?gmZHLJgLckSAH>)`OJyKC=O zD=U|M`3qkx`;%o~Tv_plOaJKefAB@u+m$O)3N)w;DS?^$`z zgAY8q@?Q0gRS!S3_A{{d@PljI!2SQnbOf;4@qdB8S;ny?`N79=`Jeq`ei+LUS155x zy#Gq^-N*qsuz#na)Ss0IHi0p(a*$*11pY2^u9hhVw$t+8#oW;{LiAo zYwNqn>$)!ZRr`fEf!l=#zI(aw&~bN#@Wk|uK11J%IfC=SmkUPu-Keki1Ft9(90u>& zW!)m-QFjI6ujPqdTOr^|@U(@xD_nnozn1jKuMio^M}#+E%k>Sm?#9P$@5&C5hs;X1 zy~OotnLl-X1HYmsEx%$-8sCMo$=S$h!%E$?5I9$GG|hh%Wt5o+*{`B)WAen5A5!We z#Dw^IwCk&v98CGUaIWPca~EPj8K&X8LJqGn&UM`?)V=KR*8|@bb9nmpRp`>TfFGhB z`h$904v4SsQtE!hLE9Px?i6`q)}>4p@LY$dZ}*otnEa!s1&4uIm-57$9iBcsD*jww z11#|&jzk=J`V(0rb)hq2J9RbR;b7W|921#xVA_?oL$)+4{M{jkr=GhF z!Qk(YIdvzZ{C=@}eF^-mb9n84t>8h_o#)`|QU0g}%zgy_=n4nxwl5bM#-UR9E@0Tx z{RRGRR~~xqUM2DoVA|q%0RBd+@Tm8Vox%g(b6WTTVA$3%PXeD48S*KIr~mihqh*SL zM;sZ=Ulw`rtAdWq#JRvBk*@&`iwyLy$`ee!$iZ5Eo+GbuiG#1F{6de6>0r%Qi_8FI zpi8%xxL){T;F$2h-F*o~vUXnavJ= zJ>}aym~G)$C4br@f6jw1cx2x8U}+2O-WzmyjYDafdnr^pktz0k=VcyEuxYs|JI4)pEY z(4}Q?{C2JfOCM4HxAR1vINy$j}|%d zjOU}`o7RImI_8wg6-*hGmVe~3!&Cl|x6?9@3^_8_!_FfYM20ve{D4wxE(u?awT3!5 zmTL_{>;6)al5ujSnRqJ=a73Bk)zXo%poK0N=ma;TiM$TOD5G zga_|*WH|O7>T`JNdJ7qR$WXr0cF_{AFCNohf_`V$vr#4D8Am12aBsOBe7#55~Ex=aB<~DI-46?jx>m z)YIX}XujSf9|4Abj*UmE9A4w)4$raiNV&);U{iR=*6egJ^I^?pU}@Jwkkc444~5e5 zYl{VUfzNj^$LgP5a4=*35M`i;K0Gv6WQb!9&p133cQD)XP^<8$_fW!-*F1frKa{rx zqb(1$J2K?gmU!?Qk*Pr&T_51vLvCybfDej1@Y-6zkY8ITb;FS17^Yq5SX=MNuw9R^ zugO}B}U&-|Jr=vYk z?U-QHtyv`)I%^_nnVJ>A66c!bf}!)l%OV4v4_*?U*lic|JUEc9`(T&Iqg@Yn3Qrsr zo^@-4CpLwrtrFphbA^ZguMpEW*#BCwVDMja^#iZz5P8&HV~Y%No$zS;8n?ZaciT(e zZ7=zGA`hR}%n?1n_l>0W+{ZXDwvfLM_1&>|-)X_*-8i89zD|!!B3<_@`GTSEt20F= z30x*T@LhSr_W`^94501s$?e~}N(7U4WnlMfmBK^zYgK}Wf!TKYPniy2#ul;q8qVEz zeWzM@$bV;z;J1NmJu-EI$-`Gy&v*KShtBVyzUCoQ7fj37%@rQL)w%u?R|=1MbsnGV zIy`)*=%GxP@YLTUJn?|=@S$!{c;FQa@imToZ}8-P+~P%k%c)apGx|LD&p^P5f! zhMp#uhb`-X@XOJb0bu$MnI{o9jUn@7(8I^m*s_6X7j>UJD7XqZmX>+4OECB*#L$h~ zldXbbs~*1UwH`9{(8YCRVka=pHBY=kc<8Q=2v599_!8i1;fd>nPXN#H;0nQ2;L(p- zzXc2%+Ai8ue?WNRdco9#zSAACS6Tkf{}14qPWP(EXSjbK=dy z!>`BOwh+5M$AA-}hqy!Jq3KU4TF$drpbbUt1oJaMJ)I6ht_JaA&C!)ra%&pAsymf#xTsK^t? zgr}ak@W78P6g~nxSNLkkK$kn$9zQ5NWFAinPd$CYQ_phY#=I#p}T?lB~}fq zgzo}R8S>P_x|nyw3ChbHY@+{=33oyUZPW55@J^8@wuPsj4&i~HNC`in)W#u)4})vK zxz^JO%rQ*6#Dl_D0<*68v+-?*57#NRNeS-5Iua6j@D|4*<%z?>Lywg&Jn*KVgTtu1 zN#w&-kTFHR1epCuJ;de0Q%{BP#Q3;zvp5FC&rL-R&o*ujH0DBRuug3br8Q@(Q>{^bprMGHma< zdWY9IE_JEDRpf~i9)72Xw;f*BZFhK$yF{M04vIYRraHkEFzYftDabJ9oGBsxjJ32Tzlez zBR_Ef7=G)x5wlM@uZf3+$MK0v!UL}lIXq*yo_)u0LLBz+c^)2RZojNAa(IrP_49-u z1YRgSvFYK&1(dwfI9@&K_=pnU*(bS5k3L=KH-7aZ+3XLeSO^F zHE#9rkaOd+o_!?aZM`l0FzOy~cpZ~2hu8R^$PYp$De}ayM?G5Rv_~FgWBSjDJoV$F zdDguoJn@LbhZXQ;hbP{g5+27b3x%&zDw^l;?2Bl=!)rW8c<77H6`pvW!&7Ip#Nmmz zurFj@Z>bUNApSG3&I0$S>fYn!%u_{jdL7cL%@Urt!{M3J8uvTA#$CeGpM$~^_X$4;d`x&^eB3xUo)aFjTLv7SYt56U z!*h*zvP}3Y>={lwyxud2yvDG{`8cT>*SzH-Zv#tv!@y6HXRd&rC*3wCAcJ!qhe6;K zA_M%SB^WZ#bUB#UTurc{nYQ z@Wk*#%Two0;fePPKLFe*Jn;eHX-oXqc6&VXeQEiG>0rjQ>72+Ufm0$we8IyHdHA=5 zFNVyp@W6?M4zG2N2oE2hIVgNJu=vT?ZU{Mi82)d_6?x*Y@Poj4!UHE@L-#xCK8bT3 zp9ExP3hn|HnK1Dj4?owbt9kKL+ckx!-Q^+=*$q{~6R+^_u&w)){3;KRwvF-i!bA54 zOL*d_@boPvJaMZ>KH-t~^!0{L;RhfuG1UH}zP3wV;vA-LN#Ti419R?EX3!&l&cmlX z{E&xdUvmtz?y!fy9tw+9Ic=})oPaG4z3)uCa z7`n9ooxtrP5ByZC@bLGk)561MLdG-aNbG{h3*0%pA4FY4c;cDD zqb(bYg(qGpd=l6cp14f-6mYrl#1+C*XQlAOZa+qVtAr5)I+kw+apuBsr@BRsL&kE}Z&Jn=b^ zM+`QmgeSfrJh-QZ1Veu73P)y=37KJ$M|-zgj?APG)|yU{f!$3wcm3HaanLgRMV>N- zBd_mi%oKUV@9**+-NKL%!DGC!u_k)YZ0PB2T+Pt1Iz+w?xJTq6yLHgPe9U<(`-^QSz94))e5(*UfVYLG{>#GG z;hF`yv^;T8_$uI#@WlDTL+9oq;eoeOKm9>@i|CnD3@m!+=QC?WrW$p{PwwY8OFT7> zi~a<7e6&Brp15tcg@@hE?II67E#fC_waj#Q?GOBLeR~GBbwA?x495U{hW=+Ng{Q3x z4$ru49&&i?n;SRS+A>%8KHzyGPh28=6?~ZE;7O2eDR*Qh8IYkZ_6z0dgN%ok3XitMHUbc;pWVZ-MU;p14PN$hNF%oBO&d@^6;iHn4<12%*wUMM_b)zaZ$ z9Z&I1&qv11?MK+t{=s68;eiv#?(^`+Jp4eKe|nz7Glx7~CfGpTw?#ezJS_4S@Fn4iM}%kF8AG-gIIe`R1P%&M z91lf70q#ljTU{RQ zc)CwyLYO0lV6<_2k;vC!+`@*|8G*d?FZUSR^F$sp+a=DEZ1_MK`cn@1bArQ=K^@IQ zX4?=j{UpBN;ZF;1LC>)82Jj`}i8%(SzZm*c!bAVll;QXv0metiAIBE@Ch=*3oVGg` zGNOm_ttu_QZ9wEL)PSw*ri`nHc&G5-w$W$G6T9stuJiD&KXLF8;fdXNQohO~zZ{r$ z=|iRPz^!G%7X#Bb+C{9k&GX35P0Mealjd7pe^}S`lQ`-iOP-ddH5bR z1w%Hv(2>sqUcW|ol&`NAp4jynGEW>#%RJGQmU%)6Mr@y=erZeeZIL%%YskX~g{RK; zG=4lGGVu5Dox%e@;mSk*y1umhx@y7Dzb-G$H@J4;R}5vYKO2hDGEbfsT!p>XfXEOZ z6CUlZ?-3q4>Rr3Q{HeCq3I88+eFJU?37-$1bvXtg|2W#<`mlY_gU_X99zz{1GZ%G} zX_;r(F2*y0^^r2v3H+Gb7RW#Dwj~T1_~Gh#W{${1rs=Zq<-n+~Wgy#xcDjBxRSIvQ zzf@Z0aaTSFTdPDKc)cqRJx|za`E@-WOnDg()=a63Hm!rNt`A!`3x=Q1xEMY>6Bl{l zhB`+ka|F2F;Wh4*x`>AbIjs}=Hz-FY3+;WJwxlnb=npa5UM3iJn@nK(3HqCNVqz|x_h=~mFcC>3269xXB98&6c z1^=rTr<5vi`MxxM(#v)JK#T`LCvj!e#CPOqfLC?Rr70P{7`1O z;A&vl(qoUfTzJUtFoh?ET`j}9U3i6yjE5bqX}t4*6T_V`_`lzS+nqR*|K2$Ve=nqz zU75zuLnq@;{(0&_KN7c%q_N#0GWn=$3lIFg3&K-pRT_V9rW2pZ)sUGBjQD6g$AjHC z)Iz3Q+6deZpY>crU$uF#T_-XL*ouk_a9fe^G4P#&>y_Gt_UgC+w9uhnVd@Nme z_h#W!;Om5^4E$stwUdvE40+gMoNs{a?m15UHSUnM>{sfq!RvONhD;eS<6r}q2v0mL z_yF*T$N>L!m0;A}V~Wf{V2mZL6Zo%P44D^P{or@Qwzh@i3uv#FKL+gT2ktP0?*X1G z^1yp*gon<(^}++cd?C%hy4;Dwflj4ft#IN){KG_=|Ka8|-*q|7zk)WiFDU;CkY&s(nr9r?oZ=aB59ddsy+OgH2wkn z(Yd8VsUK|i;0nnz)2 zPsAMgV^zR$N1pf}(T|LCUWZa=`qKEv=hAraavGnNm{a~A=B4?6s7&J%D?HdEe}e7B zTw~o6)gFvCj`3Ey?wb{9{>}0fmc(6zR8{stnkDi#MhSK~$)TZ&E$A^^1){k4$GC%hC^N(}W{JA_2 zu1Vwb`#reNgD<7=F~pzwBm^DDP?vdz_)Rx%=>IpVll?^uomvL=-`pv6f&VEa7_t8+ z)Yme=Z@T*D0M`l+{Lji6hd=ECMt#mBjmtdPcI-|mhYZFj`$A*J8UAS8DR$>U=Ah^Y z{#W$lXJxJbSJWTFut!_}+KSJBV%TEt(skh*=iqhJ)9%bo zjYq_X67a*~8}TKjriwrBpe}9w8)Ehj?2TdQqJHwj`-NA)lqV1T4q`rrJu?3`AhxO? zHz+;;4;Kqx3I4L+<-kRPR{*1*bbk@o36FmGH%oY8v{8?f2r%qwdEnuoVCZ}&Cb%5@ zT*0tAj51xf0vI-QUEp_0gkJ~@8=5DkU5?3e{FVv2@V+!(=6>L6jr|iM%0D6D;GBBk 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 AimF90C#SDAR-_o&O@*p8J&WU6MtKq89;K+&kH z*=Uzd)xjYogJNvHfCb%ZWyuiEqP3$Ujk)@KB#n}@03%d#kE^6FPrn^SqqGE3GX<6L zANQg)bFe8|IUO&)odBb)i}{tw+3?THhRII`Vp@zD(v_RcV#h-y^{_AW<~!6>1t0wCz-0_QWnwmA-+XPCN~Fqr>`7o%qty z)l&bm81U1mcn6jCjX&}L;&V3r6Bs`6>o)2+%~$`?ks?fuoI+>EH~Sofdc zxeKd@Sa>ll_Vr=sAy)fPn5LZvy|CeEOoT`v?CoXN}XlI+uIQOV$LqF*(<<_Qep_8bnjLH(f3C{q^vYaH7he}A|NR%X9GMPrcs6y z_5;<&G)Gr<4&~qQav+uom$JG`s@FC?f^`CHDK2SlmvU*)UDRmU73IErmq|`6(o*jQ zrU1trCU>!Be<()zY_k8eSi{VE0*Nw$yEYmc@{N_RSg>5nHy83xXslqcSnAq{!t+h2 zI!|$Q8?!xK8~(v|ie01HxN&|eMUGL*>2=5Csw_ zT}v!zPRmm+8!TIX1eYc{TuWVqn!tBPg;!KzLcu)1*I_wA6k57pKz|1Snc;m#bjP*I zCX?h&@Gdk1)@1~1tkRMjBYHSg{Ru{CkkkV=fIT!DYX{RY!Z+;445{QyhZ8y~?t&EM zVzX!q7ODZP9@0={&nsxzoE&%5LKpwxcp%p6j*V)Jh1TR;m2qJye-z3HnlaQIAMyd7 z_w*8q1M^+{7Gz+Zc{O+Bl(}bAMHTa0q(<5}^yp$*{cb}7nzwvzOGI~f9d<~ev4S$f zaIxkNNq$ok5b;|G`s)ceN%@}C5NjzEK-qEqOF5&u^xkB%UW#n zxzsppv6h%yq9`9WbKLRRa8(>8qdEr5(waN2lY#bZ$G~r|gJubO<$=H)Ew28U+XSnG z==o}ixp9)^ji$nUUWF-(xbYY*j##NX0oF5(v6{o&5S5P#P+i?A_bsFpmj9*ZaynGJ zm*eH1qa}^8*(b2R;=M?T8>T6#zPP0IgaSxS9=G zuKam5cPw*XB4}^u^GC^(sT#K#drCF4uak|K&ys9D+bJ{yjX)cY_F&=~eW$2Adf9w5 zs7<~=Z9yNpO9YH2fN=Mmc=y8kQ|=tgeqSLHPv!NPkExMKjj?E+-Z(98xTS$4{&(Rd zhI}m!Q6=X59v8?M+2fj{CBhhGu=XS)kQU1Kqd0?-E@@FiT0(QN?UbuDdm<4bXz&=s zq)H?DXFo?Dx{4bno)^;9N)YsRG80f|wIc%RNbH3S%ubUHsyx6-z*a+r#l>DvFHgXj zqTSSk<{Z>IckNxw*$dvXc0LRFKachrEntkd7V^ghi!ZZZbl(`xZWt_eQ2}k3LG%I& zcD#iDk96}IlsmPw}PR`A($WD_l>7TFItTm_& z`rXWy;-jJ5!qQ^sRC=`&(2xKtKPcq?6B7^w*#Y>b6c=l9s8Ex8k&1+Rk{1W~=MYHB zgz9PlTFdbAs5|e87(9tX@Dmu-KsodCd&-l5{`Y|mYUFKn48F=<}%1bxf~;#Y34;UdmvXMAj(pAmI!C@ zN^C`8sH%%svH~O79M$im@T4uMnB{Dx_ff+o`-h&4huX|+<1%Gcwn<_+B6=c4&o}%L z0NFb>d_tN*tj|~FJPS>q9N&_^Nn-nt~ z1Ge86s;fDu7uK`k2^UoEbp%)KpnTZ*3$9YZoWK)T==PCC5d%Xp$3VMT3{|j;tu@(Z z(QbGti*0sjP=)pq3-CUL74D!r31+H>BR2DF{?IklO=ei3=>Gf3?|?~)vBFY6mdFIQ zs3lx29$@#IRR>p{=atKY?iH{V^BV7Gi#Dft7i_kwFd)FjV+brhg?-3R-y%tU4a$dWJeuUrfIx5s2%OBD0D?<^a69iLzoS=gT@wJO)&|<3Rj$n@EXy}4 zIRh9ek~_VUzT9>bP1UrTv#=5qOl!4N3Rez7mu=>o01Omx*-Opt(Um$zI#?@zS`Wrf zs#;*a8l;k|KynC>f~>%V)}w_#@0f{R3aoU|)S;zr*@Gb=57^|8mf8TfEvReg=vycJ zparCpD4nC%<_Ow?*aMB*zXT-*66-I@aga~DtcgKYbbtQ|brw~yd<8gP#1eJb9u;FB zdsuDSSHDvHQBdW78P(`8e*<4j)a*F75wlG+YZ-vWYP;)G&-Z!7bw8;$Blle*FD|Ja)7 z_inVl_S$Q2l8O$qB@$;IewQ*frbIPZbC<~d-pv!?-H-hrgqaYwSnd}b8oamm`~)a? zhqw5OOTG0R%9%oKol#5O3M{=#`A7;UUS;z&)Wy)IK(4)|y0@|Z3nXo>r+{>bAvb$p z{t^L}H(D)k80@X<$7cF-3%$=LQG8YUJ^Xew0U+iz8uB1`b`py=d+P^~1+^8TW=dE{ z3pqZBVQxEBjBtcvCNCX|E=8td{zn@XwIG}Ti>~1Wl@eB7BGFqSQ3hdci-W3xpyf`k zSrj|b+PEc#iVckF^GCZ=DJY$SP*B5`SVC98)LbVV5;b*yz@=lcrM?^G{2UP5+HMqX z_5y`?>yjy#q1}65x^j8kdUMU9WYluB=0JMDqI^AWJ*rJc9Y<@_@5( z(4H&VtxO$58;@1y%0gOZj>5W)AMBx-dHX@Kh+DYEJyF^8u;jjmt*?YgZ^GiP{tNI( zY(w9O#7$7(K8!)8D{$9Ws&cn|mN1*U6}qx(F@X>1atC!?u8Z$FkNn#yk-D&wiPXr3 zq$4%)APy<;ER(xY!3=a?Sl^<+Gz;BB#&l_&&=yP#VX9OH2jxjEG2{d)pxk&7T$fHLlc^*jur-(Z8P zZVgh_YCXce3U15Z7O;wK0Fmhb9)x%uyb!V$jSC90AxI2TZ{7qb8}AzpqCGYrB(6SX zRM*0ugF}beIQg;9z%NzL^ENwl%fO|wSV^9oP@*Ffj)RqN> zjrZ4G)Jbx8;QO%E#WQg*40?^J|ayE>=RL1)Ixh`-8nF&{Crw-9Yw!k z(Tsy5il+-opYG}&)&kI4@=O3+;y(iARK==!W^bO=s~$%=_f@bN^D5M=dAYfF$rss0 z{vnd|?8UIGS!9@K#EFJ=eJFdQ2EEfvAl#cb>CHhDRbw*c-YH*#kp&-(94JyPhPjK1 zSyX3PI;VPyI8|U*_AH_iOZ`%m3n^g8?qCw6KMaDD$~80y#2V1qg@XZ~QO~NL)BH4g zl&z?QK99>7z0mC2^Ng0dQtF0ujC%fe=V(lH!Z=CDXm2(EHjEf{`QlDxDokRLaUU{b z?ds@42i6ZzynI@t4XE%48O8D|bM!G%$m=i$%hctS#Vm(Lh4x`z{+eh@JxOVOF*GtE z^`C(UqvKELHGTNy8F!dqf5-AnJIvy1-eJYphGks05{mIyE7+nuYlUid3;+$e0WM;4 zh-Z6}8W*KaXlU>qqlg|of*7y|94n1DOhZF!2gQA+i4i*l_82jehX8+%6W|kRbQfzM zMl^0f5mZnBwgNj&Wle$WNgthFds%O8F@J$_@h8kU_alLuz&ML^JD@Ut5bLZV9mD9V zZ@3G6SBAqKL(6wvEr(?k%z!tOF{JHODb_BJ<#c_74US5-c@M%6upEn^``BiZW8u37 zzA=S-0xH(tpjX}Z9WL! zO+=!wfk6Vcnf6ECt-&i3W-+gdp!TruC!#PPe4N3FO%Lz>K7=V5ALafXp!P6*M zX|ZZflicFsC^VU_GUS z70(RegvwLUHY8xYM*K|z4irrdj-et^(J(j!25oxLnt?#0!SY`Q7S1)bVBY~+s@niQ zR(@Ibe)qIeSOWWrDly}YcX3+9DtAa_*uEST+mG1HE~Bx}T9#u?L38a^Vlz80Vy;~Z zQ$ZHg=i2-=kkd9|uARW=QSh3F!xL@_^$;f9eaJ!k%9oSFBi@_;FcVvy{6SQTQGUgE z^CM{=mK8qi@f#3@vte$HS7y`>nU8V zpN3X=>$C8tnWla^9BO?Ry}hUD{X!?bU#4?r>hId={qOJNU9shbkob7di_gog;!}T6 ze0KW8=a=u`v+cS1AU@1t^g4|#qNXS?A+?^iz*TQA#oaledb{Ch5kOsIlzc4$Sg;|A(>K+hD6*Pxh>TbBa0&q;IyWk-m2G+o)s%UPc@mxtIXsNFv3MpQ}2eSeRMhOW+ z7FpQB1=9G+v((2J3FTTBvj08{*~@!=gPxD98nA>U$zZWO)KKCG_ve97ARfDunC_ou0)huIVq@CA^`;l5MG1<0us+dVzL*Z((2LH zAv<Q2J7(3yVK2 z$7+dNS>7I72Nr`8_5R6%AO0GP{tkCj1b-MmIvs z65Ze!Xej@t*)b@U1yZ>eOshruKFYDRHIxrDJHCybQ;9cd?xb>qH zUwQ>r}^ixFLqU z2Hvb3oYvQk09!I}^*Lw9od494Lvi@H>Kbf)^XYnFu^+ukb zoaTh!l;O>wczk!kyLC2RtMD}789EdB*UnE;>Cl-Br466OyXyR;fZ;EmpA46gh@wKM zH;9Mh>B7^AryWl#9-O)B#+keS3C-2Swtbwp8xMXKe=ZK)ho_Vu7ndf zi}cCJ^OLUw7W4%r-g*#jj>ig5_}&QnOFZ~imqCr7A=*rE($zaKL@bastV z&<|ndwpb64$*K+$`l}fuJ}l}jZE$d-p~CKOI^1+<6j_j zO71cENSZr3@PT)pMzv)6o4oS|hg{zbxdy^6F)?D66Pq;l_rME1X8Yy!<2iJ>y2-sT zH0LkSwwo|B&w`b!{UT0dj0=3k=zw$d{QTRS+=eCcMQjyV8^-Z_DC>1)I4E`@;1|~J zVQ~g{#2Fsr2R=H|H)fu4>89!n-hw|Vmqx8mu1Z>pRK^buBCfnCW&!4qs^l_z>v-Q( zzv45MH}Mj%7zhWk`=&wb)`YOI$mGP$1Z2l?s+2ux24s`?QOZom1$5X?!gxWz-a~q7 zSn97kgERd0j)qAajqCtv-*aIKvp!jvm_`6UXz#!|0BpK#ytdH-OY&ID{%QfLN^o4H?q-|y(jkr@|x@E)C#u4 zu!}dw{ztb7b^vp*6r1+0wh5mM929DjN83A~;&7NMXmenxQB4ahs`W=98MYQIdoQs= z{+?8SS7KsoqLYqt`9Dd-Sw7WTe^{Q3W1WRYcG7UnADEojVQ8yuq04I2LZfP`KjHou z1tuO@vAjYpFbykQvW915n8iauZgr`Sc1*t}efmuk5)e)l6v75$6n4|Ra*z$|+*z@c z{|qx8liSri9Jh3wPz{!M9mmx?BhB0}lXvk4AVUg?VtDJA_O+-dp&Ek{WjSjiIgpmF zZB6zh(m>167n^z>oR3>kM*fw$N^F|#PuLnrN%VPA7dqIz8P@*J{*RPSNkyOvFCr%( zGG!s+(uU(EATBM@Cr`t8!I|ug6x*@>3pk^KT?TxEtf_w$!dqE0eGNwg3lT>t@6Eu; z?F{SDz|oUO&mHYdJSF#1dZe0w)C*9>XNIHI$#$e$Z>qM~k#=4D;!H%0zc*uo?G#*A zxKf-?#`S;H->G~gu|uqbousOk$dRz}86gFm^OeDj4adL@$Y>%%q=Z^KaDi#XY~nI3JY4%JcPS&Qj4{eaW0X6o zRO=|^Pkacn6m}P;+QF44F+rUcDOU))vv^7=V|CsEbz3<8v*q_kuwl|>{+^1}QeQ_E z5PZ#*dua9fz5jrY5(d?tZraf7g+2&pDt`j)Ow}abZGl<~V^iW^fGI+?A)CB21;E*p z+(yS%P^F9n^Za1Q6$PY zRgL1G5OCV9TIxPDI$~Q z;FKV94X7m{R)Ql5=Dq__vfKZ)@h;`-x$6v7bMIq!8|`ZUp7|FRb}(t%k5{^MYFR8?EZ>e z$ZkJ@kQ4Tg+{-br*yBd~<0jcICJg0r`r2#QdmUf&pP1qXyo(G*c?tnFBXF(v?k*Aj zx(+Qx33wj|m?*`>?ljT~d{H91)1)rO0d;f0Kn68fY|1A4N0z!8z=wTPulXn|Lu!+{ z+^8b|V!Taw+ZUVUm5o4GgVTajj&KkXudne~B+OBV1X?=+fG2*Oa0~1%*tZ})EpVeq zWCdDBq$)GQ{}$@3={V=D6L7~vI2%x7)dg9Y&4L=X!7n0y`_@l%HGC%lm=pp*v01d? zUn%8ElK*3ip}_n$O|->D(3y#NktJMqe4$BrS*}%&R95^JJbR z$15w1gCazE0tZJ{7i0Oq#;lzXLE0LqIwIx+xd0+e<^&_ioTU=I<7nHWQMj0?Af>2~ zKl~M`C+Il6CPsukhSIJxDvy{_#OT-&q!vL}MB!=-$5<|IwAj-8v48Fb;gGgU_a31)LDU$0QjmBl7ay#rg5S`1ae@~tp)WX+L{#v)j6VG!d~ zIeVOpYyt*@FAukaTw+ZR`ot)%%c4;X`gerxQ*%vft`XATU2<=gkzE#sA^y)Th9}L! zx+4q>u^DV2^pFXx_kT)jzywML>|d|XV}~-2_4Az{$o=LO{@uu)FHJ2-J$?)M&c}Kcg^g> z%p!2KYy9Ud?9f#lt(PqsP(BOZX}>_X=CH}C(@GNFvn2qmuL*3<0f*rvOnjcR!v)sk zzhndt3@Ml9u8XajTLvdvVYII>$$2_|!~A_MjmD4{clr^7+e!@X24WZE0+SU#7~F8= zwyjt3xFsf(rh?hwME53>`Xn9Q%RC(A93TTU%dz!~}#i6+SMgDTDT4qx3HWEj<+l05h%p{jKE{X#e8ADto&ZubVYbVrr#t;`dGJ-#h z^DfxBfE@{>i#V%y$yLmwP5_PI$T+8ic)*Nz!7T%-NnI2*0RC1&mUilVTzqs(sAmpP zhmFG7_*lF@AUu|vZX*D8PWntAUov{F8Am-N7HnY;Cm+_7Ze+r9Vhyy4&vNpg3^=%1*g5Un%g_& zO>80+{1?)kM4FTG{QwcKkzwmn{SW&MOzoxw5f-och(C=p;hTCz&G0#*0+IgI(yl@my9eS z6LQamF#Tb;Z-h*F(vA$r;Ho4AcvfYL`XX2Zev(b2%#Pm`yWR2Nh2y`|AQEV zrH*t905VLOcbQZqD53;vktqzH<1YJ$3G6b*XtLOEzSO5++qw_sTJ zvSja*QR*EqroGlak>**T8?u%V7UVePdI}=8s+zp>je?6qa&ITe{Shp7=#VU=a{H|F zpvCpq;XIMB$<$9GeSu{SokY4?ihdFqn~?MqY$JuGXwqybgI$(qwgYFyFlnSYSjnN~ zfQ0qHW@wAB9yktNlD-}|`#!RkZ6}*Z(r+hYeT2J?0tO7k!T@fcG|-vX;;p1?%*(T5%z)mFI{{4m40c;+ufPI;dY(c7{2^GG;I@-h;6Bu7zzZFBkOLi>RL)`XmQ65e%`IO12QsZTYHSa`)xqx zV}wkc%b-TcG+IX>egzR?c{g+^xOT&Ydp3U)q)N^9Kgtidu9SONCju8`=Ln40T>Jwp zeSi;3JsHr_%?mhuQ3$8rY+)&D!&OpdKrja4Tv-#cCy8|KSUnBwP#UlbYO1nUTAP8L zTj9a@0q&Eru;t%C{ZZEQJ`Gh`=E^W_vbIssUIc|3ZK?kUc<9&(;llDvBYdcE167D7 z7xSIM<>(^leul<|>G4i7&3~p}v=x0CL(98aF75)0BlJMP`yR_1D6ltIN3-Ta7)NyT z7k{N`#k>UN!9W7JpMpy{m`2Ba3eYF9=o6rRs1I|BZfr)^6PF10)pQr1 zVhZ=wF(~5rZv%9LPnZ1g@EN}42*S+>ffbZjL0p2%IP_f_C=0m-)kz&Scsc$my| z@qOXLpp-X75Vvmloc5b{DnWD%lQuw)UyHPg8XCo6!?aLISNY^94N#p{+Q6t z78OCQW+H8dIA3I+@C~UL-0@HiK#01g`U|`)%6jU01OKPnP$O-=)y>oceoO(7hH-rK zMOe8bVmu;hFAt!Vmb!UxSGK+>S>H|p3n_m0MKHBe{yA)0FbY5!;fo+1!x1QqMcr=y z*GL0y(H!%;Pr-z=)RpK7RB%J(9+Xpg8PlSR?;I*&=-5Z5UWSVg!lEM=FwR*w+r=-y zqkLgEG*=nk-2ETOzZ->QwqghfwtWdkPSW9h1<8|h5;5Xc=D+%TNMv$P+ zswa!RO#=XdYu^;Jn z5D>&GUxW{rg*4;(Sg(knBZFYAWu!0O(t^&z`LQ%pFN{ulSQ+f~c<0AdSCoPl%OB*u*oDQb!Y|-3#>4nXUfLvV!mx zu#ruSea`!ENl11Snb%@7Vcr~rzjiiVQZ9dKJN9NGXuTr40QavQUX9CR#wo z6~*c0RSi}aqOrPd`gU}jRH&S%tJ8$We1;(=M6Ob7F$L|9P+L*GXub;Iit zp!_BZE7W6Xj)DC(hJ~HwX88H!{&tuIggNI(8+QGQU;VbmDBCe{n}=xn6&E&sI|r^F zSVNuk&+X`>`-u2*pFnM6MPIcCa5f=#LjcG~ZJV+`X{xBTMcAoZ(!#!$rE~Ipsx?mKJPo55(;^PRM*vK3Vi(XO6 zWNrPbVy&dBEHDn3#VKAoC69x*5}yMeU)Chzt^{lpE@KKqg=^H>)rG5YG3d*OBZC+O zz2hM8FiZkF+OPB;7hcFkd#H0KA*aqL=q$XJ+76ZrUJ>{~_?{ZbBeu32Xz_h?HKU)1 zv)0o^erTGJekRgib!UzB3Sc^iYu9FxhhOs+ng*h`P=)Q}y6T2ZXr2*8rbM>a$gG_% z!0c@-NvXRxYN9+zoK41RA;{ELpplG%raG*|H&GIa;@@RV1XfDC5QzP$7~;SW-Lt4~ zO{LJLQpr7qMMagZj}D!6(f8gCVhhW(O1&O6(dm~ga44jnZX3tem|=JgK5=ixOy%oA zoc;Q0-Ob*a>%7Z;Yh~E>!y4Eq$?psMVwj}zvoN=M6N3S_mz#JHp1__}&tZW<6Jr{f zTodgv_0KbsIpaP`=eE&S5YBGcTKNX-0FYl2YDu?x(P3w!N=O2oDy zUei9qIRzkzj(1l+_LyWX;+t-lB*BkM*uxp7dx|u7Mhbr&(+ei1@&h;lMK^_j0?`qp z6>h4XeFjFlWQzIvzoW~;B#F!JhqpD0U9_`&A$#I!P=-9axET7q(#mcK4VARN1{t6W z1cvfVY7Qj{q>eZX*b+lQ5Q(tuoU-vcY#Cz-aOdnaw<*{Dp4^A?A=ov|^cT>5Wl_1R zBV{|KhYgaYZZ`_IH(Bal#g_!SdRhvo<)Q5IblB0x(lxe@bT;cWDu)4kc?O*XOtHM+ zgGrRv_LOikjIh z!U@c~Anfny_U-)+Gga-rF}r+%1*dP&RObZCbN>tnZezpt@5r1zTPgm% zjSe0B3j{uNQt@H%$MQv>3f7C0o>eWe1U|TS;Mzj|HmwM*XaUa7LUu&LdEyk~Fm#bV zyso$y5Xr{k;y|np2qgq&)3ww!Xc9Egkn(9|hP>k5Svs=TQzp6wdq~0Ta+BUWDKJ65 zqN^~r`OmPjft+)mjH~I8-xTDtJJKz6r_e&2Zgr*hLcx6%Rzkpv zhJ>%9v5={MDI|4N5<)NFYB}`r$Qq5dzQFb3&OEdt4Tm1+^1Jgq5dhOo4?#fPe|CJ| zRAlG$QwwE*Ya^&cVc?shuvBUg1HO9Q@r28n#B#BPgVy2~A<}5#n<9dmy{o%0qM>QA zeZa>;a34~aqbR|G_v{1%k*9$hYjTEw=89YK_%r~a9EA2#TmpQB1!qyw@Ic?*g`ua9 z_DewQ?IiPKRqGOC9fw~y02af179|YK95Kx4$gc>D5rv5HdxVG<{JutAJf~IzNpD&|bL7}vLU_Mw?E3%otv-fM$Niw! zI2U#p#r(ZL3WiupRiZy=^r9v-j&2{N^**LeYA#5un74fmNeEOPkZpZ5I0Wz@?+MxE zBU*wk=I>^T1rTm)#Jv5w#UWjXMjVuKFAaAXFVp!w@`;1-;HZ!W4mVpW01C z5kf3Xvaj1m6w%^ceSWC>uQ~f2-T&(y)cqNv`$36U_WfAF`k~eScHfg~jgIWrVi4jq z8UGEfEY_L$zlyJ!|C9Jy`A@|+h5xP3KREZw6m0zSHa(R{rTEM4?Zvjsi-$gu4d<(f%eDCEZ@m;aW1}35G-bdPs^rrZ*h&Z+b|YJthFHhcG=P-5w*I(xG`$ zgsjW3&oYV-7yl83M4*ARp%@(Fs0xymBDQ z@|rONHZ53WwP^^4^@a4m{etjPl4995}8jY*-enE$w*%blNb9fBNAt5}p=jUl4eWBxLpazQXE1)KGq@+3_{3{u9X5Kh*5FG-T?ZLe~C{fx;r803-8%2!@ys02lO0*4d6; zPyh~6zu^Uwot2(<_L9}JBRQoB}Kh_4cxv=f%vXbvBmTx@@A=!Mv|6QZZh=k;{G_F7f+YfF1xfL~c{l3ZRKsq`G*xpOCO;KNW} zjQt?ye@Xddvf%)3CSpfxKbeeOQHXgE%btw6OF7gv-@Bo{t7~bs z!G)h@I;3@c(toV}-ukXUjDmzPn-M@<3_Qx3U#gm1Hub0|x%M+E_sN*W%HghjTI*&W z#%a-xPrQrjyVwlFSJ?MpGw_22)z@X0m;&Rmb(Kk}MD!?cbrkK3d{vEK^oUv;hXp)Q zYynKC)KQR{o;<3;ssK_?tJcvq1-;cvAb66h3}pm+W~x$oCV)ZN6;%DXRV0ZsUv46Y>`4SI(Bx35u>c`6-ZT%Xt3+~ z9AKpbtQ$)P`adL^UG{Ppv$4ZdkC1WJp$`1|*g&G(tJ<&+*YTMK;}?$!H^205=wQLB zX#Z!?p!fSS58K-}028YF1w!bm7rLao@PkbC$2_0^^$r{AEucK}kd9iA1gfqdW2t)@ zaQ&68s`zVNg}XV9WgZ^tD({@JxaGuX|C;(i9HmvWvEvn(j4qor)Ljs^!@Xr7W04u` zNWqh5F&gwP!VmO(R~NCQ>FAVs5qcbf@&6KpS4G=SE$z7vq-LL(PE;envuyb#kQt$x zT4xu0HUC{e-mb$r6VQ4mL_rPH^N#>;JNau@V_~6fGIah8upTCQ{%iz2pFj_@4c;zx zWa?p^n#pV;5%)(^AYJP`(D8YMq&>YGaIfs&LekKf6S)e!c6^F$_5PFN+rR*U(ZrK1 zDGOjHmUk(aaSa+zS0tqmpkYf;{j$1Lzd;d##Xf8nf{~iyWgH{s{rPlvH zjEDZU4*P!x4_$yx`ESWXXA{*V5qST-d8iKOBEUJ4hm!xlGY=)aeg_XNK=9wrLpKcT zio$C;+$rK{z=|Z_)>f)Iwn89M%eScVi)#7nYWXg;{8hF56}5buTE0gue;zton7Pb) z4>k|<|N?iz$Do)KM?qBR%7&hrgT+UFAP0+*n5vkvKnrgCQ+TF(VnG3J zk>&$mf}3Z{0xyX&Re2YRUH30n7ig?927Wmw(>-m@ zP3{aF`+9Rup5*x5}Yy zJAkJGy!xJ%@E|W0q{^?#H$bQB)N{J~0%<7u52ED6NXd~{Pj}$$?>8aKoOsJKkD`z& zW6#f^Nb=q_s5*B?TCzT_D!%6#1c%X^4)j_DdhL|O)bljr6z7XtRa{w5F5FddJ&)m| z%C7_r0)F?U=`-e-*6q71FfCH(y4P-R3jDj`NtfIU^>V#;X{gkF0HyziVd1(d`q%R1>Vc_;YCof_;((nu z1?#M>mc7R+U`?e=LFpCtBNinMj(5L#mwX>uo=Jdj|GRU^cVa!3PpYF8;PxaV*w$BJ zZwh~b?qM&BLuR0D@s3nI3lhCiwFhB28 zR<}w8v_V@FLm8FT2PM_QtzWXCAXz<&- z_idJ}zrtgDMzY?9X9J$s@wDQZ+8|kz@!&RU>(h8<;1Qdp%6a$jya!9P3HU8)?7Mh^ zbcmC|DEpA;fvK(dQ8nNVGhVZ!{rzUgQ9Q@+bl^FT=MQ*J;Q0_wC!UjdKDylOI5ihj z5Vb{hZmqyFIkq`3`X>DLTV8ZJS>bwupcDBAFeS=_tsH(iuEO4mT@w6SU6L`qLLJkP z7u}p^h-%KmPmC4QE`84=6Sk+rU1+KQIbq3{TcH~0W}F%vi812zo~6GTzFax3a%L0u za*C+pF|~sT!w=4)9((0<3Qt1vEO@6^X21(8tE#buybUxB{$}gLeo5FqZV7g(pzQ=8 zF@f(_P8d%6^0(7Y9ZCyc*7GHLL60Gud(Ahav{!I0JLZcs-TWte9{R33Q|%yEz6*#qXt z9Pi}kYmQx-6J|U8A5%Ipx}|ag}r(&PAwjNBt)F?i^K~k-v7zu zqdkd-3ZOPaKY>R&b_*UE9Kj=l#3O@O^T@9RkNgS^#Sd42NA?Zz$gc&D{Cc6_kzW&! z>?0oeRd|5m2i9q4GR!CU!7NAc$*!yTB&T0zwbVaFtj@{(J=V8KR~s(lkmYHj4G3Yj zW9TLPvLMc7ibI(nS@yQEk8CHWwoYxY{glWPrj9ccAXi)Vf9nmN8o^y~w_?n0-ij!)1Fs^hZ?)pJfV_>5tCzH`uJW4#*^N}FSb~z0xupt7{MdWcAKP=mB zsauBt)v*g#P)BIfv5Pr*CZm#CsO>@d7A5GXp1o={JvrdqGG-2ZhYA|7c7de6! zY0f@Si^&4qn252DChR^CqX>c%#MrD8V=zLDdx#kEt71dM_+=tapbQfu)L=R>>J#?= z0%FYn3&a>4ny_E}i-ag9?5`5#SHDdF@;QCNrk^kUKic~e_@=7t|JOFf&_yB^1St{( z1O-a=+ z2Ip|vjCZ>{rI$nnmwrV@;Fo{jp;<9=VKrBcBMI)5nnRXqtfxXwg=2ArK0^aVX+z3( z$m*jguH$G7S>2g}Z_!rFtRD2`#~UlhL#w7*idEgXYN9yRXvyQn{ey}}3yQ{~OKgU; z&Wl?p$6@FSHT<^^jQVdPU-!&v${hp|!Gz?gr2Jrpu4zhatX+8$pAdAz-#cGxlLF2->46i=!k(!?r_eR-ilR z42lm)*+&ClRrsD_1r9e?yItFHbzbR(b|KgEOC|2z$S3^D{O|;9H@w@pnu?@a>>LK6 zBMn**GDxqS`5-z_ZDPJo>uOmMA{nF`TjKl?YhE%136mO_UqhZco?jc%YRBIBBSR_@ zgK&pb(!$1d(eA&~x+q^KafJ>-&$>=APdGorBBMz3v3EKgwg}hVqB(c{x+ni^B$T$! zPYtdJl2pW@JzuQDct!$cUOjEAuY8NGO5{cQZR4Tejy3eFtfpVXY5Y!F*hYAsjL3Ta zt>bat2tCRh-460b?|m?qLGlhE-AT;qYj|}h30B{L3B?+#1>`=j8d5F0L*w8^8rW8m z=jv+^OxYdk!EZ}ayB2y8HX17U1zZuYk8Ks{EH2^|vU%08t=1qWMC)EVhi}#pLF6^E zW$Ceo@#==N}} zd+x!h0VhZU;?W3?0SRQ66oP9KcVRGts;-$>wOqTp9)7hkbzechV$sYiDl93EqOmc?%}S z79BZ-jPG)2+!)fxzyxumV}xOXxiH-!SF1?sFlB|6ab=NlWb^GFAWT2vFDHQeu{Y$0 zc??YvjrL-04=_iV+yhMFTJyp^!Pm>gWCjsNTNLb}BDUI!yViFQmbz5zq=Ir?c?mb} z5d&3=6Jk@{I{aAeg9r``)KWBHxXS@f1oXkhMLuxiec%8r0)5`(F&sd$AI-kI?jW}N z2WVXuLCk}Vs26UQr@JPw^n&d5iJW@W0+)f-|Le8rQo;4`mc4_w?2vMYo|ZjStJ}*D z5}>-?R~>K-2UM5LBSNt~M&c7Vz5;)RWdd|2 zbo6wBz>t?A>^=PW#Jl{45+8(X)BOh=H8|w<1~!l0lYM)68=dUq!rjjL!b>f&f5J&t zSL3Nt;y2JaHyo4lADR>JGM7+P+6sjz!}&x=^h1HSz>^D}i0{NHgrCu4J>hPY05S%J z1`)}gxR1A*_aYL^TE|Ze`*=A$Qv3Q8+S+&5;WBtZ^D7Af6Z^dsdY(a~1|_|@uXu(~3ebUrQ?R|T>+iwKIJPfNxiNGKBvCF7g*Z#YF(lsNIxcZ= zwJb;ht%#Xg?J6o4(v_roA}9$2=|D%Jmp|IQc0(@^;Ez*${Pf7=0v#v zJ4#|*5FHW}%_F6-0jgrRkg8aBT>X?(D1(L7tGkvo*(%Wqyl-Hy6a^@=ox*r^$>K~( zT+tTNAnVm_dl&7oI670exS?U+J|GxmJd8gYuyBR*EQ83M+9S=K+BMAsel>)#g?AifKn{o{8kUN~UQ3XP?+y|#zpOm97%H;7 z=erQ92c65H6B!L0TR5X@uLiD#j_cZMYHys#a7TPtl-w0cL?Q}je26m{k9f~yBz`FL z3`Ev$vW$nNb}JRz?7gPMcPK+%Vs=Nuk13cgpfW%s>d**xT7-6}&=txb(hz zjS$@*@?W7eK82CD=O=XdQCL?)M%(d0fRL`DDIuJEaHq5bo1GNJK}npOfvPw#+=aM{ z46M{5d_0?Z6vx3^%^lB=DT|N^q<)5yTI-H<%mL&(u5hL&$TgDm*iyeDk!4)>3a2FK zYTpeOGVlNlQ4hmdTl=UK>;;R3&ACn7N9;_x+2L37881u7DTukqvn0ia;$ z`mJe}911(zJ$4^Xn|Gv)qDdQY4J;Afvjy;;P&Br>c8t3t9W~I-JnD*~*`P5LUmi|B z91HOi7@c`l^(anH1W9cQg!u&L$E!W(Xy5`;Yr_j?o^Igqo#bEI@=fn98LEV^UlAlAZUf!M1_?Oa;rYiJtUz(#;t49= zq0;X}MaWO&{u#F>lwKBvA1FO5DoFBN0TX~%t>%psx+HFiJ5K>PLZ}UwpF+ezPFL!VfxO33&h}-Ub9}d={3t{OZ%(_BLmnBPS>7os# zWhOWLdXg}X8=wunb_Q>8m>gSegm7ZaKe|1>8--^eZn=}f`;Hsd0At8|39OGhoi?MQ;IWxZ*YH;<{k;NNuMI5iy(x#)QXJ3<%&6cQ zRru{X8#hH=OkeOAcBN46>DSu*NO97|RNNgnMTlk3QDlkRoOm_jiz`8X@PI^a-@mbwJ1z!7hH?G1ADqc;D~V%Yo~>SkSBkFzb|j;+Ug}OEEsN|%Kt@z z!6zvS(->2$Snz;8kBiigu_G|qrI)RMhw1QD&Rn|dkZf}YCAv?E%M`}3-;z;Fy-HD5BF&yg%`wyrB%9= zC}(>VT8PUB9o=05-JYqP@haf&YVG1qYBvOzdW!kuk0IDt(fSd?8Prm}H#REd1oTr; z)!jRg`|Nc%z`8ETWhkr;=2{lucm~$V(^{gIJ+-d-sZV$!*W*$i@Y{AXkHd=ts_GkR zTfqgFojdB zsdUG8p-s?3TMKFDcd$eOVKh77jkU#y;pt#MgjaDXkfcXdx5j@s`Xe#P**_6hv)}=) zJEXz8K$07}HQDoy7VNoc!NK3MyJ0JXt%Aju4AQxINM6NOb1kv@ZfI}>*PU>ejv+13 z{(;zM4yUDwPYEe0Dvdzfd6kd~8fq`iUXR5E*v_=Df^a3m)qNduWK8qu`-=NEj4AW0JT`X)Ka_Nsrn`?rA1Nx~ zljG;wEC?eR{Jq?PxmDaypKw1Iog>_3rRPM$!SM{+NqUmqrS3ZU-jFLHHw%AgAeG4n zo>c;(4Q$Ov)?@dXQ%=PJiFUJ(0t_pOIeiwatmFSF;k?$E4!o=yss zac$sq8cr?XbhLKqxbfaH_x%;|%8L8m@*4GIG;}+P=^LpwKBM=7f;+hj^+f+huWz%~rG6X6MA2cH2~oW3q+9d&7#SnVjNGQ+Bq+ES_fN zvcy(cC!4axCdXt~j>X0~DXa@%%FfL)iA^@Mc%p?fiE~^|4mL4t;ykfbJk^rP*&PUd zw{TgesTMJpWf40~Iry1 zMs&2b7pSb3o)U?KEZ(PNR#0j@toaQM{o@BZQyun9i_>X$^s|^am&1~ZyirR87?hMY zI4N0<1HTNDWXrUhEva^^jk7q&k4a+En8El>X5@^FiD439OQxVqqNRD*e%a1`4vU3> znQq~RQv;B_e}FwcJKLT~aTDy0q&zF?Fg1;EX%w*$_bSyF@;S>Q+ zN7%8N<71t~ogeSgwc8Wjdp!A6&tAP_`beZQxk9N@YqYFRZ-_O<#rI7} zOzPKvz`&;mC8rD?k~%akJp(7%M~)gj=9#hM#!oO!%rsjjP0q4Tc{V%8X3u@j;pALX zr{zt5{tq)|&YI0QTsF=Mim^Bxc88c@BEv97Bo9eX_qxz4lRj{8|A1E}aY#!1z`=no z43nmk$Q6-c@iwt3H#ggwY2vJQn>Y)kpJOtEhT+a}mYiHp%-O}+c9WSW)&#LX|7`0- zhsiNrYz1979H8{<=`mrc*%p)2LVb!eWg;fXJ0SJ$PO;OKn`?K#$70G6PeKK9><$ak zfHj9NK@493)Pc$;j|}TAj&CZ43u&jM4@^b|DB>iCJqKA>onn*IX~~(GJzZ>eInd3; zHYA1K#fP%mten-9ZGE0kJ}iU6TWw~lFuIsYJkd27@8aopmm{#OG2(%o7(sLF=+oKO zXDvvbs)N4a%I3uON&E;wnE_K&rrw$MoLno789n-BW;>n~PjcBZd7Sd)G&L2<=HwhM z8X3g+=RFg%vr|k~8((*-w~XpdgOkN(cTLU`J9AB$s4s$}lbEubAuJGI(%bOWSaNw3B5Rq@Urg*A*#&dG!--xHAc)1wf#8a&f&V}K;v4Lo;=QE&kp-B19Em6i8s02C1v5;FHPc~t+9z@1;a0wu2|ar@;v?BR=+TryH%i6C z#4!3?hkddGqnVB7ahL5`n|+!s7JbEs!Xz4}JBNi~LZe`;m?HoFFycG@dNBUKJN@o- z8Gz;9Z~e_>?)+;WzJO`^qtD{^^B0)H9H!|n7~g;H=g%Ks{5u8Q(f(rSGyA_x0YL?g zf7syN*W+(NGUo&}{RIcz-=9DJofQ4gy8NRaKsiO>&z~c`HQ7b9rTr(K+r!^qZJR=g zm?pc|78FFCAirQv;oNyI{BeHK0{6n=7hhVm_~loYyt?$Y*Z=hAzbyOf@)avry|H@D zn`_@%_xAdCHoUv>y-n|b@ZshyA8pFl5>jP#`~tbe5Q$`xD4Vk2+trKg<;^& zNV^Oj96y+WIdE`4IC^B+N!aZeT3<_y;4f)w54a=lD$o1NUK0i(|;dDOh(8 zY}$0jBMtZ^o19!c_H0wZ=E!yB@^0RDZ!$~@*d(UOmcI79cxG67Qkq;Alb8&a2g-&b zqNFG=%8lX!6G#&{0cwCDAPV>b+JHSE5x4|OfmuSZ?-}5?{0k=CW))WseT|4)q61&h z242~UyC;NCMEJl1zMRjb_s`lfqB8(;znlMiPcWjrfP49q`yZcVMEoS}BLq|@t@;zf|?tgp!vDW7Pf$i`IC|`XE5Lo^| z|Igre=r(_R&u*6g?(F9A1IsrehY{HTf$0bOllyDSn)?Ul|NR;WrM}6C@&fq1HLwfc zXP5~AZV!T2d}R~EWCys#z^xu`xui?Y_v90=8E$ube&@G)vGQB|_N5^?c{~G`xda&m5RF`n6hHAc3Dvm`jcJq3R(9TO(_!_2iNj8N>s z;CTQ~PX|$HlA3rl>1co3WM@3HlfvKW!3?@bj1kQ9f)Q4;B_Ye?$grmn&#Uir&cc-5 zJsq^i3LYC?>ciJD{w)!lEQftMGeR)j%j@Hjl@T)3WpPYTwK#ZgGuWRzaSMD@?G zW|wTPShO);2PY?_ zm~y?8gft!vX{3e>yPrgubAh2i4F)eI6ZH{gBVJr{7liQ;mXmo#x|i6QwR}y|`EPLk zZ(jUx;+rr|vfBrebrZtbE>Fhw!DVPp%ewz3=$t58hLFI)IO7%YBBA_l5rm z;San~^TwmhH*a{}7~@SO;I}dTS*!RMLm_A|^yIjcVrKlwDJOYRh=9IKBFA~=wu=RP+-Kg1kn5v0TB93a-(;eZ^(~iJp6u? zF2yAi*KG3XQpV)=5TLaWDDTbya#sTAJ>K_D?LzOV0E&|apm6Cv6AJ`B{ZTL}Z{m@W ze-1zl$OS|L8~`dS)q~2D51=v^_{=#l$-fXl{&NA84rEN2CjrZS@2g-^dDZ|ZzqbGs zZYzMww;w?M#{lHt4oD&V_;EJ)+qh5OZ@)7UPK{5H&*nG%9{zW~c`x^S`Tw)w{pt8k zfBgTX$+tZ&WFVUA3X|IC#x_PoZ8rfX(USru;a&ifXsUWEBYGI-W|&07GhnudnE?}8 zjF@Pc9bndc#E6JCw!?f3<}#R_U}|8BVKOi~!w_y^M32MF+6*2C%nX>*VJ5qEr2h9E#+G(C*%Sp30U`iGfB?V%ZtOz;1b6_a0S5t7fX#qSfDM3k zfHi=XfMtN!0ZRaj01E+g0eOI2Ko)?)PXLSrqyiEFdVmDb6(9yg14Mv&9HhGfz~Nth zt&A!#G-kxWJPor3eA<5mvwaVZK}0_km!~626Q_EpUsHdG12kZe$%k2hH7~UfwXGO1 z8$jcaIP?{2uDd?@=+Knz6o{bymLJ#JYVgTKwdD%j0hDT$%WNLF<Yes&NnK@ewlAeuKLSs;swEJ6Uw`hNGJ2zzR!HZ z%D)(&GlU&mol8GAjHAuEuZ9%AW@}yeld(+kL+=r&^d#A?OCwa`*Ddjtsy!vgG z@#XS#oh$LPs2zWP&v<6?$4j(H?>_eafhESST`JCQ|5ztAxt}+hhK(wn^?v${)}M?w z9=p`1xW$f_=e7AI(b(1a<^}DW-M^c??kVHU4XbLln`iVp_~o$J%s;f)*Ck_GVZ-7A z!{VRW_RnW_OOTdq(0496q?yzIwQbC;W4hDxM+!TYCv+7MmE+@!t_eDo)m`cw=n ze=hoPms7G!0~d|fuKnYVk`X80oU`_gEwZy&A3XF{+KR+cTSdLP4Xo*{QVdDoxc}L1 zFO3qcDLJ!i<}aR#$CjU;KYGMs{m#_F$J-4aWSMxY@TK=!ESdRGP46=+_8+bke7W{G z4YBm(i!fX9eVMwgq|wfM60OtNsRN7#(D?WoU<=?V;40uDM3w*s19AZVI4t~V-kt_n z3fK%d0{9U?g9u&9oC3%O{MSC1fKH=uXC;>;U8TdNLuD43Q}$=sO4(Z32H6L)ZL%G* za@ii)LD?6wQ?jpR-^glZmt{Z6Zps>DA#$PoL3wL=J9)JHarqPSUUG?ipnQRRr~J75 zEBSf(Mfnx^HF-xxg2JT8Qe-P~6`UeZF+-8Bn5)>YII1|VIIXBw^ivL1W-Fb_Jmm~! zzH*gvukw~spc1MgR3cTBs+}rYC00#Q<*GPUo@$2bmMT~sp^j6JR8LS(Qg2Xyp#DsK zOWj^0)y&nruQ6zow4=2aZFl`beYu_yW3B}5ACsMs%~b3~j*PN}vX!!}@>SK->QU

M81}YPb4j^;-42>Z9tD>TlFPs9R_vHJvp*G;x|_O`2w$CP(Ac%+So&EY&R2tkZ1N ze4_bOvrki_xvKeD^MLj#tr7XXseMQLx%QN{PTPuAvhT5n+0$&4E?SqR%hS!$Ezm8} zt<dKi}Y>v9ra!GJ@qoZT5r@3&}ZmJ>Bs5K`YgRo@6=D% z&(as`SL-+GKh*Egm+ANGkLauQm-N^4L59wT?uG=zc*Aps5<`XIm_ZO58QVTKHFi|2 zC3bo2Td^O;9*eDxjWqT!#u(McSmOlaPUCLlN#i%h?~Fei(ctI@9vA{ixTLM5lSCQl;##OjCxc+o~T^cU3>B?xX&TdX;*sdYAeH z@cg6trdpzzt$A5fuK7}PQS*bQwe}J1AZ@C4oOY7dp`EUsqkUDo0(jl5-L9?B?$aLD zUe#u^4%W>sW=+8AVciD(X8k^Wjb3LMX2>(lGb}dz$*{`suHlg3gkg5<_Shq_s9>D8 zp8X^vB#R}>CF>*~Np?!AB)23&X=`ausZu&Xnk`)|Jua=4j*;cbN@Ts{gP>?>A1L?- zd4wWL5v`Cbl0m=EDW;)*^At-IpD1b+KPlQNzf?Y;N>eRYeXmlYZXc-2)D7ww&`oP? zwDw7DB5ISVJ*oXx+fg@2cU8AX-=J@2=!ACbWsn#YhOvf1ly;qAgJF|lvtgTIJ6f{b z@L+6IY`fU#SaIwNv5R9jpdGiNCMB_7$A%jX#zf-)W3n;Tm|+}gde)j+84AdLBX4~f7k8-6`$AstPN$u*@xJ+Y$sOF_GMGpG=t$xTgjefud+AUFr8f&ZhXY}v@sW@x@=@7Fw8!bXP5Ld>F3h#r1jEdS(?lt zdt3G~#*OiEPW~~E<<5!>#X?1$;+A5tG6Q44Uz7)wpDVvs_E4p&{-|1^TCdu#I;J|K zIQA8Jjj9h-e^c#LeXcsKva&*boW4+BgmGt|{;>Y6{yeBR)DUHO)bOOCkHKK* zhdwvjU^X}m9~cf8E*g5q%3?LKSt!HO*wMzx#(a!4KTsW40&g&^l0wNs$!5tR^gNX` zLHf8%D*HuNrZ}iLqj*sHu6ncjik7~aMj@<3s*q}c;{h0Lm=cCR<)N3y$rTC>KZ7h$ zysp@$D97A!Q6W_JP$nt|D6^FFmFtw1N{>>g>Y*Bd+GVNcs^+WKsmfKADvwH_7OI(p z*jpiekt9meP7*Br$OA2h`Uhrx@wtfrD_dQ*reL5GHbK7 zoOXtGu6ChziFTQGjdlY+GL>UwI;uUbt zyP4g_Zf8r_a`d+2Y&BcMdf1EX74{l?gRKXZ3v?nKqZjB=wcnrLG4MMEe#gM?82B9n I_l1G~0d!oN!~g&Q literal 0 HcmV?d00001 diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/bdsqr_mex.c b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/bdsqr_mex.c new file mode 100644 index 0000000..004c000 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/bdsqr_mex.c @@ -0,0 +1,71 @@ +/* +MEX interface for LAPACK routine bdsqr. +Matlab calling sequence: + [sigma,bnd] = bdsqr(alpha,beta) +*/ + +#include +#include +#include "mex.h" + +/* Templates for FORTRAN routines: */ +void dbdqr_(int *n, double *d, double *e, double *c1, double *c2); +void dbdsqr_(char *uplo, int *n, int *ncvt, int *nru, int *ncc, + double *d, double *e, double *vt, int *ldt, double *u, + int *ldu, double *c, int *ldc, double *work, int *info); + +/* Here comes the gateway function to be called by Matlab: */ +void mexFunction(int nlhs, mxArray *plhs[], + int nrhs, const mxArray *prhs[]) +{ + int m, n, i, info, zero=0, one=1; + double *d,*e,dummy, *wrk, *bnd; + + if (nrhs != 2) + mexErrMsgTxt("bdsqr requires two input arguments"); + else if (nlhs != 2) + mexErrMsgTxt("bdsqr requires two output arguments"); + + m = mxGetM(prhs[0]); /* get the dimensions of the input */ + n = mxGetN(prhs[0]); + /* make sure input input vectors are same length */ + if (m != mxGetM(prhs[1]) ) + mexErrMsgTxt("alpha and beta must have the same size"); + /* make sure input is m x 1 */ + if ( n != 1 || mxGetN(prhs[1]) != 1 || n != mxGetN(prhs[1])) + mexErrMsgTxt("alpha and beta must be a m x 1 vectors"); + + /* Create/allocate return arguments */ + for (i=0; i<2; i++) { + plhs[i]=mxCreateDoubleMatrix(m,1,mxREAL); + } + + e = mxCalloc(m,sizeof(double)); + wrk = mxCalloc(4*m-4,sizeof(double)); + d = mxGetPr(plhs[0]); + memcpy(d,mxGetPr(prhs[0]), m*sizeof(double)); + memcpy(e,mxGetPr(prhs[1]), m*sizeof(double)); + bnd = mxGetPr(plhs[1]); + for (i=0; i 0) + mexWarnMsgTxt("DBDSQR: singular values did not converge"); + + /* Free work arrays */ + mxFree(e); + mxFree(wrk); +} + + + diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/compute_int.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/compute_int.m new file mode 100644 index 0000000..e3aa06e --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/compute_int.m @@ -0,0 +1,56 @@ +function int = compute_int(mu,j,delta,eta,LL,strategy,extra) +%COMPUTE_INT: Determine which Lanczos vectors to reorthogonalize against. +% +% int = compute_int(mu,eta,LL,strategy,extra)) +% +% Strategy 0: Orthogonalize vectors v_{i-r-extra},...,v_{i},...v_{i+s+extra} +% with nu>eta, where v_{i} are the vectors with mu>delta. +% Strategy 1: Orthogonalize all vectors v_{r-extra},...,v_{s+extra} where +% v_{r} is the first and v_{s} the last Lanczos vector with +% mu > eta. +% Strategy 2: Orthogonalize all vectors with mu > eta. +% +% Notice: The first LL vectors are excluded since the new Lanczos +% vector is already orthogonalized against them in the main iteration. + +% Rasmus Munk Larsen, DAIMI, 1998. + +if (delta= ETA.') +end +switch strategy + case 0 + I0 = find(abs(mu(1:j))>=delta); + if length(I0)==0 + [mm,I0] = max(abs(mu(1:j))); + end + int = zeros(j,1); + for i = 1:length(I0) + for r=I0(i):-1:1 + if abs(mu(r))0 + int(1:LL) = 0; + end + int = find(int); + case 1 + int=find(abs(mu(1:j))>eta); + int = max(LL+1,min(int)-extra):min(max(int)+extra,j); + case 2 + int=find(abs(mu(1:j))>=eta); +end +int = int(:); \ No newline at end of file diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/dbdqr.f b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/dbdqr.f new file mode 100644 index 0000000..755a9f8 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/dbdqr.f @@ -0,0 +1,23 @@ + + subroutine dbdqr(n, D, E, c1, c2) + implicit none + integer n + double precision D(*),E(*),c1,c2 + + integer i + double precision cs,sn,r + + if (n.lt.2) return + do i=1,n-1 + call dlartg(d(i),e(i),cs,sn,r) + d(i) = r + e(i) = sn*d(i+1) + d(i+1) = cs*d(i+1) + enddo + call dlartg(d(n),e(n),cs,sn,r) + d(n) = r + e(n) = 0.0 + c1 = sn + c2 = cs + end + diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/helio.mat b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/helio.mat new file mode 100644 index 0000000000000000000000000000000000000000..b43fb5d5e3b29815341d2b072c1ace5f2d1ca5b9 GIT binary patch literal 256353 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 literal 0 HcmV?d00001 diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanbpro.doc b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanbpro.doc new file mode 100644 index 0000000..381410b --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanbpro.doc @@ -0,0 +1,85 @@ +LANBPRO Lanczos bidiagonalization with partial reorthogonalization. + +LANBPRO computes the Lanczos bidiagonalization of a real +matrix using the with partial reorthogonalization. + +[U_k,B_k,V_k,R,ierr,work] = LANBPRO(A,K,R0,OPTIONS,U_old,B_old,V_old) +[U_k,B_k,V_k,R,ierr,work] = LANBPRO('Afun','Atransfun',M,N,K,R0, ... + OPTIONS,U_old,B_old,V_old) + +Computes K steps of the Lanczos bidiagonalization algorithm with partial +reorthogonalization (BPRO) with M-by-1 starting vector R0, producing a +lower bidiagonal K-by-K matrix B_k, an N-by-K matrix V_k, an M-by-K +matrix U_k and a M-by-1 vector such that + A*V_k = U_k*B_k + R +Partial reorthogonalization is used to keep the columns of V_K and U_k +semiorthogonal: + MAX(DIAG((EYE(K) - V_K'*V_K))) <= OPTIONS.delta +and + MAX(DIAG((EYE(K) - U_K'*U_K))) <= OPTIONS.delta. + +B_k = LANBPRO(...) returns the bidiagonal matrix only. + +The first input argument is either a real matrix, or a string +containing the name of an M-file which applies a linear operator +to the columns of a given matrix. In the latter case, the second +input must be the name of an M-file which applies the transpose of +the same linear operator to the columns of a given matrix, +and the third and fourth arguments must be M and N, the dimensions +of then problem. + +The OPTIONS structure is used to control the reorthogonalization: + OPTIONS.delta: Desired level of orthogonality + (default = sqrt(eps/K)). + OPTIONS.eta : Level of orthogonality after reorthogonalization + (default = eps^(3/4)/sqrt(K)). + OPTIONS.cgs : Flag for switching between different reorthogonalization + algorithms: + 0 = iterated modified Gram-Schmidt (default) + 1 = iterated classical Gram-Schmidt + OPTIONS.elr : If OPTIONS.elr = 1 (default) then extended local + reorthogonalization is enforced. + OPTIONS.onesided + : If OPTIONS.onesided = 0 (default) then both the left + (U) and right (V) Lanczos vectors are kept + semiorthogonal. + OPTIONS.onesided = 1 then only the columns of U are + are reorthogonalized. + OPTIONS.onesided = -1 then only the columns of V are + are reorthogonalized. + OPTIONS.waitbar + : The progress of the algorithm is display graphically. + +If both R0, U_old, B_old, and V_old are provided, they must +contain a partial Lanczos bidiagonalization of A on the form + + A V_old = U_old B_old + R0 . + +In this case the factorization is extended to dimension K x K by +continuing the Lanczos bidiagonalization algorithm with R0 as a +starting vector. + +The output array work contains information about the work used in +reorthogonalizing the u- and v-vectors. + work = [ RU PU ] + [ RV PV ] +where + RU = Number of reorthogonalizations of U. + PU = Number of inner products used in reorthogonalizing U. + RV = Number of reorthogonalizations of V. + PV = Number of inner products used in reorthogonalizing V. + +References: +R.M. Larsen, Ph.D. Thesis, Aarhus University, 1998. + +G. H. Golub & C. F. Van Loan, "Matrix Computations", +3. Ed., Johns Hopkins, 1996. Section 9.3.4. + +B. N. Parlett, ``The Symmetric Eigenvalue Problem'', +Prentice-Hall, Englewood Cliffs, NJ, 1980. + +H. D. Simon, ``The Lanczos algorithm with partial reorthogonalization'', +Math. Comp. 42 (1984), no. 165, 115--142. + + +Rasmus Munk Larsen, DAIMI, 1998. diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanbpro.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanbpro.m new file mode 100644 index 0000000..2e3e272 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanbpro.m @@ -0,0 +1,699 @@ +function [U,B_k,V,p,ierr,work] = lanbpro(varargin) + +%LANBPRO Lanczos bidiagonalization with partial reorthogonalization. +% LANBPRO computes the Lanczos bidiagonalization of a real +% matrix using the with partial reorthogonalization. +% +% [U_k,B_k,V_k,R,ierr,work] = LANBPRO(A,K,R0,OPTIONS,U_old,B_old,V_old) +% [U_k,B_k,V_k,R,ierr,work] = LANBPRO('Afun','Atransfun',M,N,K,R0, ... +% OPTIONS,U_old,B_old,V_old) +% +% Computes K steps of the Lanczos bidiagonalization algorithm with partial +% reorthogonalization (BPRO) with M-by-1 starting vector R0, producing a +% lower bidiagonal K-by-K matrix B_k, an N-by-K matrix V_k, an M-by-K +% matrix U_k and an M-by-1 vector R such that +% A*V_k = U_k*B_k + R +% Partial reorthogonalization is used to keep the columns of V_K and U_k +% semiorthogonal: +% MAX(DIAG((EYE(K) - V_K'*V_K))) <= OPTIONS.delta +% and +% MAX(DIAG((EYE(K) - U_K'*U_K))) <= OPTIONS.delta. +% +% B_k = LANBPRO(...) returns the bidiagonal matrix only. +% +% The first input argument is either a real matrix, or a string +% containing the name of an M-file which applies a linear operator +% to the columns of a given matrix. In the latter case, the second +% input must be the name of an M-file which applies the transpose of +% the same linear operator to the columns of a given matrix, +% and the third and fourth arguments must be M and N, the dimensions +% of then problem. +% +% The OPTIONS structure is used to control the reorthogonalization: +% OPTIONS.delta: Desired level of orthogonality +% (default = sqrt(eps/K)). +% OPTIONS.eta : Level of orthogonality after reorthogonalization +% (default = eps^(3/4)/sqrt(K)). +% OPTIONS.cgs : Flag for switching between different reorthogonalization +% algorithms: +% 0 = iterated modified Gram-Schmidt (default) +% 1 = iterated classical Gram-Schmidt +% OPTIONS.elr : If OPTIONS.elr = 1 (default) then extended local +% reorthogonalization is enforced. +% OPTIONS.onesided +% : If OPTIONS.onesided = 0 (default) then both the left +% (U) and right (V) Lanczos vectors are kept +% semiorthogonal. +% OPTIONS.onesided = 1 then only the columns of U are +% are reorthogonalized. +% OPTIONS.onesided = -1 then only the columns of V are +% are reorthogonalized. +% OPTIONS.waitbar +% : The progress of the algorithm is display graphically. +% +% If both R0, U_old, B_old, and V_old are provided, they must +% contain a partial Lanczos bidiagonalization of A on the form +% +% A V_old = U_old B_old + R0 . +% +% In this case the factorization is extended to dimension K x K by +% continuing the Lanczos bidiagonalization algorithm with R0 as a +% starting vector. +% +% The output array work contains information about the work used in +% reorthogonalizing the u- and v-vectors. +% work = [ RU PU ] +% [ RV PV ] +% where +% RU = Number of reorthogonalizations of U. +% PU = Number of inner products used in reorthogonalizing U. +% RV = Number of reorthogonalizations of V. +% PV = Number of inner products used in reorthogonalizing V. + +% References: +% R.M. Larsen, Ph.D. Thesis, Aarhus University, 1998. +% +% G. H. Golub & C. F. Van Loan, "Matrix Computations", +% 3. Ed., Johns Hopkins, 1996. Section 9.3.4. +% +% B. N. Parlett, ``The Symmetric Eigenvalue Problem'', +% Prentice-Hall, Englewood Cliffs, NJ, 1980. +% +% H. D. Simon, ``The Lanczos algorithm with partial reorthogonalization'', +% Math. Comp. 42 (1984), no. 165, 115--142. +% + +% Rasmus Munk Larsen, DAIMI, 1998. + +% Check input arguments. + +global LANBPRO_TRUTH +LANBPRO_TRUTH=0; + +if LANBPRO_TRUTH==1 + global MU NU MUTRUE NUTRUE + global MU_AFTER NU_AFTER MUTRUE_AFTER NUTRUE_AFTER +end + +if nargin<1 | length(varargin)<2 + error('Not enough input arguments.'); +end +narg=length(varargin); + +A = varargin{1}; +if isnumeric(A) | isstruct(A) + if isnumeric(A) + if ~isreal(A) + error('A must be real') + end + [m n] = size(A); + elseif isstruct(A) + [m n] = size(A.R); + end + k=varargin{2}; + if narg >= 3 & ~isempty(varargin{3}); + p = varargin{3}; + else + p = rand(m,1)-0.5; + end + if narg < 4, options = []; else options=varargin{4}; end + if narg > 4 + if narg<7 + error('All or none of U_old, B_old and V_old must be provided.') + else + U = varargin{5}; B_k = varargin{6}; V = varargin{7}; + end + else + U = []; B_k = []; V = []; + end + if narg > 7, anorm=varargin{8}; else anorm = []; end +else + if narg<5 + error('Not enough input arguments.'); + end + Atrans = varargin{2}; + if ~isstr(Atrans) + error('Afunc and Atransfunc must be names of m-files') + end + m = varargin{3}; + n = varargin{4}; + if ~isreal(n) | abs(fix(n)) ~= n | ~isreal(m) | abs(fix(m)) ~= m + error('M and N must be positive integers.') + end + k=varargin{5}; + if narg < 6, p = rand(m,1)-0.5; else p=varargin{6}; end + if narg < 7, options = []; else options=varargin{7}; end + if narg > 7 + if narg < 10 + error('All or none of U_old, B_old and V_old must be provided.') + else + U = varargin{8}; B_k = varargin{9}; V = varargin{10}; + end + else + U = []; B_k = []; V=[]; + end + if narg > 10, anorm=varargin{11}; else anorm = []; end +end + +% Quick return for min(m,n) equal to 0 or 1. +if min(m,n) == 0 + U = []; B_k = []; V = []; p = []; ierr = 0; work = zeros(2,2); + return +elseif min(m,n) == 1 + if isnumeric(A) + U = 1; B_k = A; V = 1; p = 0; ierr = 0; work = zeros(2,2); + else + U = 1; B_k = feval(A,1); V = 1; p = 0; ierr = 0; work = zeros(2,2); + end + if nargout<3 + U = B_k; + end + return +end + +% Set options. +%m2 = 3/2*(sqrt(m)+1); +%n2 = 3/2*(sqrt(n)+1); +m2 = 3/2; +n2 = 3/2; +delta = sqrt(eps/k); % Desired level of orthogonality. +eta = eps^(3/4)/sqrt(k); % Level of orth. after reorthogonalization. +cgs = 0; % Flag for switching between iterated MGS and CGS. +elr = 2; % Flag for switching extended local + % reorthogonalization on and off. +gamma = 1/sqrt(2); % Tolerance for iterated Gram-Schmidt. +onesided = 0; t = 0; waitb = 0; + +% Parse options struct +if ~isempty(options) & isstruct(options) + c = fieldnames(options); + for i=1:length(c) + if strmatch(c(i),'delta'), delta = getfield(options,'delta'); end + if strmatch(c(i),'eta'), eta = getfield(options,'eta'); end + if strmatch(c(i),'cgs'), cgs = getfield(options,'cgs'); end + if strmatch(c(i),'elr'), elr = getfield(options,'elr'); end + if strmatch(c(i),'gamma'), gamma = getfield(options,'gamma'); end + if strmatch(c(i),'onesided'), onesided = getfield(options,'onesided'); end + if strmatch(c(i),'waitbar'), waitb=1; end + end +end + +if waitb + waitbarh = waitbar(0,'Lanczos bidiagonalization in progress...'); +end + +if isempty(anorm) + anorm = []; est_anorm=1; +else + est_anorm=0; +end + +% Conservative statistical estimate on the size of round-off terms. +% Notice that {\bf u} == eps/2. +FUDGE = 1.01; % Fudge factor for ||A||_2 estimate. + +npu = 0; npv = 0; ierr = 0; +p = p(:); +% Prepare for Lanczos iteration. +if isempty(U) + V = zeros(n,k); U = zeros(m,k); + beta = zeros(k+1,1); alpha = zeros(k,1); + beta(1) = norm(p); + % Initialize MU/NU-recurrences for monitoring loss of orthogonality. + nu = zeros(k,1); mu = zeros(k+1,1); + mu(1)=1; nu(1)=1; + + numax = zeros(k,1); mumax = zeros(k,1); + force_reorth = 0; nreorthu = 0; nreorthv = 0; + j0 = 1; +else + j = size(U,2); % Size of existing factorization + % Allocate space for Lanczos vectors + U = [U, zeros(m,k-j)]; + V = [V, zeros(n,k-j)]; + alpha = zeros(k+1,1); beta = zeros(k+1,1); + alpha(1:j) = diag(B_k); if j>1 beta(2:j) = diag(B_k,-1); end + beta(j+1) = norm(p); + % Reorthogonalize p. + if j=gamma*normold + stop = 1; + else + normold = alpha(j); + end + end + end + + if est_anorm + if j==2 + anorm = max(anorm,FUDGE*sqrt(alpha(1)^2+beta(2)^2+alpha(2)*beta(2))); + else + anorm = max(anorm,FUDGE*sqrt(alpha(j-1)^2+beta(j)^2+alpha(j-1)* ... + beta(j-1) + alpha(j)*beta(j))); + end + end + + if ~fro & alpha(j) ~= 0 + % Update estimates of the level of orthogonality for the + % columns 1 through j-1 in V. + nu = update_nu(nu,mu,j,alpha,beta,anorm); + numax(j) = max(abs(nu(1:j-1))); + end + + if j>1 & LANBPRO_TRUTH + NU(1:j-1,j-1) = nu(1:j-1); + NUTRUE(1:j-1,j-1) = V(:,1:j-1)'*r/alpha(j); + end + + if elr>0 + nu(j-1) = n2*eps; + end + + % IF level of orthogonality is worse than delta THEN + % Reorthogonalize v_j against some previous v_i's, 0<=i delta | force_reorth ) & alpha(j)~=0 + % Decide which vectors to orthogonalize against: + if fro | eta==0 + int = [1:j-1]'; + elseif force_reorth==0 + int = compute_int(nu,j-1,delta,eta,0,0,0); + end + % Else use int from last reorth. to avoid spillover from mu_{j-1} + % to nu_j. + + % Reorthogonalize v_j + [r,alpha(j),rr] = reorth(V,r,alpha(j),int,gamma,cgs); + npv = npv + rr*length(int); % number of inner products. + nu(int) = n2*eps; % Reset nu for orthogonalized vectors. + + % If necessary force reorthogonalization of u_{j+1} + % to avoid spillover + if force_reorth==0 + force_reorth = 1; + else + force_reorth = 0; + end + nreorthv = nreorthv + 1; + end + end + + + % Check for convergence or failure to maintain semiorthogonality + if alpha(j) < max(n,m)*anorm*eps & j 0 + % A vector numerically orthogonal to span(Q_k(:,1:j)) was found. + % Continue iteration. + bailout=0; + break; + end + end + if bailout + j = j-1; + ierr = -j; + break; + else + r=r/nrmnew; % Continue with new normalized r as starting vector. + force_reorth = 1; + if delta>0 + fro = 0; % Turn off full reorthogonalization. + end + end + elseif j delta*alpha(j) +% fro = 1; + ierr = j; + end + + if j>1 & LANBPRO_TRUTH + NU_AFTER(1:j-1,j-1) = nu(1:j-1); + NUTRUE_AFTER(1:j-1,j-1) = V(:,1:j-1)'*r/alpha(j); + end + + + if alpha(j) ~= 0 + V(:,j) = r/alpha(j); + else + V(:,j) = r; + end + + %%%%%%%%%% Lanczos step to generate u_{j+1}. %%%%%%%%%%%%% + if waitb + waitbar((2*j+1)/(2*k),waitbarh) + end + + if isnumeric(A) + p = A*V(:,j) - alpha(j)*U(:,j); + elseif isstruct(A) + p = A.Rt\V(:,j) - alpha(j)*U(:,j); + else + p = feval(A,V(:,j)) - alpha(j)*U(:,j); + end + beta(j+1) = norm(p); + % Extended local reorthogonalization + if beta(j+1)= gamma*normold + stop = 1; + else + normold = beta(j+1); + end + end + end + + if est_anorm + % We should update estimate of ||A|| before updating mu - especially + % important in the first step for problems with large norm since alpha(1) + % may be a severe underestimate! + if j==1 + anorm = max(anorm,FUDGE*pythag(alpha(1),beta(2))); + else + anorm = max(anorm,FUDGE*sqrt(alpha(j)^2+beta(j+1)^2 + alpha(j)*beta(j))); + end + end + + + if ~fro & beta(j+1) ~= 0 + % Update estimates of the level of orthogonality for the columns of V. + mu = update_mu(mu,nu,j,alpha,beta,anorm); + mumax(j) = max(abs(mu(1:j))); + end + + if LANBPRO_TRUTH==1 + MU(1:j,j) = mu(1:j); + MUTRUE(1:j,j) = U(:,1:j)'*p/beta(j+1); + end + + if elr>0 + mu(j) = m2*eps; + end + + % IF level of orthogonality is worse than delta THEN + % Reorthogonalize u_{j+1} against some previous u_i's, 0<=i<=j. + if onesided~=1 & (fro | mumax(j) > delta | force_reorth) & beta(j+1)~=0 + % Decide which vectors to orthogonalize against. + if fro | eta==0 + int = [1:j]'; + elseif force_reorth==0 + int = compute_int(mu,j,delta,eta,0,0,0); + else + int = [int; max(int)+1]; + end + % Else use int from last reorth. to avoid spillover from nu to mu. + +% if onesided~=0 +% fprintf('i = %i, nr = %i, fro = %i\n',j,size(int(:),1),fro) +% end + % Reorthogonalize u_{j+1} + [p,beta(j+1),rr] = reorth(U,p,beta(j+1),int,gamma,cgs); + npu = npu + rr*length(int); nreorthu = nreorthu + 1; + + % Reset mu to epsilon. + mu(int) = m2*eps; + + if force_reorth==0 + force_reorth = 1; % Force reorthogonalization of v_{j+1}. + else + force_reorth = 0; + end + end + + % Check for convergence or failure to maintain semiorthogonality + if beta(j+1) < max(m,n)*anorm*eps & j 0 + % A vector numerically orthogonal to span(Q_k(:,1:j)) was found. + % Continue iteration. + bailout=0; + break; + end + end + if bailout + ierr = -j; + break; + else + p=p/nrmnew; % Continue with new normalized p as starting vector. + force_reorth = 1; + if delta>0 + fro = 0; % Turn off full reorthogonalization. + end + end + elseif j delta*beta(j+1) +% fro = 1; + ierr = j; + end + + if LANBPRO_TRUTH==1 + MU_AFTER(1:j,j) = mu(1:j); + MUTRUE_AFTER(1:j,j) = U(:,1:j)'*p/beta(j+1); + end +end +if waitb + close(waitbarh) +end + +if j5 + work = [[nreorthu,npu];[nreorthv,npv]]; +end + + + +function mu = update_mu(muold,nu,j,alpha,beta,anorm) + +% UPDATE_MU: Update the mu-recurrence for the u-vectors. +% +% mu_new = update_mu(mu,nu,j,alpha,beta,anorm) + +% Rasmus Munk Larsen, DAIMI, 1998. + +binv = 1/beta(j+1); +mu = muold; +eps1 = 100*eps/2; +if j==1 + T = eps1*(pythag(alpha(1),beta(2)) + pythag(alpha(1),beta(1))); + T = T + eps1*anorm; + mu(1) = T / beta(2); +else + mu(1) = alpha(1)*nu(1) - alpha(j)*mu(1); +% T = eps1*(pythag(alpha(j),beta(j+1)) + pythag(alpha(1),beta(1))); + T = eps1*(sqrt(alpha(j).^2+beta(j+1).^2) + sqrt(alpha(1).^2+beta(1).^2)); + T = T + eps1*anorm; + mu(1) = (mu(1) + sign(mu(1))*T) / beta(j+1); + % Vectorized version of loop: + if j>2 + k=2:j-1; + mu(k) = alpha(k).*nu(k) + beta(k).*nu(k-1) - alpha(j)*mu(k); + %T = eps1*(pythag(alpha(j),beta(j+1)) + pythag(alpha(k),beta(k))); + T = eps1*(sqrt(alpha(j).^2+beta(j+1).^2) + sqrt(alpha(k).^2+beta(k).^2)); + T = T + eps1*anorm; + mu(k) = binv*(mu(k) + sign(mu(k)).*T); + end +% T = eps1*(pythag(alpha(j),beta(j+1)) + pythag(alpha(j),beta(j))); + T = eps1*(sqrt(alpha(j).^2+beta(j+1).^2) + sqrt(alpha(j).^2+beta(j).^2)); + T = T + eps1*anorm; + mu(j) = beta(j)*nu(j-1); + mu(j) = (mu(j) + sign(mu(j))*T) / beta(j+1); +end +mu(j+1) = 1; + + +function nu = update_nu(nuold,mu,j,alpha,beta,anorm) + +% UPDATE_MU: Update the nu-recurrence for the v-vectors. +% +% nu_new = update_nu(nu,mu,j,alpha,beta,anorm) + +% Rasmus Munk Larsen, DAIMI, 1998. + +nu = nuold; +ainv = 1/alpha(j); +eps1 = 100*eps/2; +if j>1 + k = 1:(j-1); +% T = eps1*(pythag(alpha(k),beta(k+1)) + pythag(alpha(j),beta(j))); + T = eps1*(sqrt(alpha(k).^2+beta(k+1).^2) + sqrt(alpha(j).^2+beta(j).^2)); + T = T + eps1*anorm; + nu(k) = beta(k+1).*mu(k+1) + alpha(k).*mu(k) - beta(j)*nu(k); + nu(k) = ainv*(nu(k) + sign(nu(k)).*T); +end +nu(j) = 1; + +function x = pythag(y,z) +%PYTHAG Computes sqrt( y^2 + z^2 ). +% +% x = pythag(y,z) +% +% Returns sqrt(y^2 + z^2) but is careful to scale to avoid overflow. + +% Christian H. Bischof, Argonne National Laboratory, 03/31/89. + +[m n] = size(y); +if m>1 | n>1 + y = y(:); z=z(:); + rmax = max(abs([y z]'))'; + id=find(rmax==0); + if length(id)>0 + rmax(id) = 1; + x = rmax.*sqrt((y./rmax).^2 + (z./rmax).^2); + x(id)=0; + else + x = rmax.*sqrt((y./rmax).^2 + (z./rmax).^2); + end + x = reshape(x,m,n); +else + rmax = max(abs([y;z])); + if (rmax==0) + x = 0; + else + x = rmax*sqrt((y/rmax)^2 + (z/rmax)^2); + end +end + diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanbpro.txt b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanbpro.txt new file mode 100644 index 0000000..381410b --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanbpro.txt @@ -0,0 +1,85 @@ +LANBPRO Lanczos bidiagonalization with partial reorthogonalization. + +LANBPRO computes the Lanczos bidiagonalization of a real +matrix using the with partial reorthogonalization. + +[U_k,B_k,V_k,R,ierr,work] = LANBPRO(A,K,R0,OPTIONS,U_old,B_old,V_old) +[U_k,B_k,V_k,R,ierr,work] = LANBPRO('Afun','Atransfun',M,N,K,R0, ... + OPTIONS,U_old,B_old,V_old) + +Computes K steps of the Lanczos bidiagonalization algorithm with partial +reorthogonalization (BPRO) with M-by-1 starting vector R0, producing a +lower bidiagonal K-by-K matrix B_k, an N-by-K matrix V_k, an M-by-K +matrix U_k and a M-by-1 vector such that + A*V_k = U_k*B_k + R +Partial reorthogonalization is used to keep the columns of V_K and U_k +semiorthogonal: + MAX(DIAG((EYE(K) - V_K'*V_K))) <= OPTIONS.delta +and + MAX(DIAG((EYE(K) - U_K'*U_K))) <= OPTIONS.delta. + +B_k = LANBPRO(...) returns the bidiagonal matrix only. + +The first input argument is either a real matrix, or a string +containing the name of an M-file which applies a linear operator +to the columns of a given matrix. In the latter case, the second +input must be the name of an M-file which applies the transpose of +the same linear operator to the columns of a given matrix, +and the third and fourth arguments must be M and N, the dimensions +of then problem. + +The OPTIONS structure is used to control the reorthogonalization: + OPTIONS.delta: Desired level of orthogonality + (default = sqrt(eps/K)). + OPTIONS.eta : Level of orthogonality after reorthogonalization + (default = eps^(3/4)/sqrt(K)). + OPTIONS.cgs : Flag for switching between different reorthogonalization + algorithms: + 0 = iterated modified Gram-Schmidt (default) + 1 = iterated classical Gram-Schmidt + OPTIONS.elr : If OPTIONS.elr = 1 (default) then extended local + reorthogonalization is enforced. + OPTIONS.onesided + : If OPTIONS.onesided = 0 (default) then both the left + (U) and right (V) Lanczos vectors are kept + semiorthogonal. + OPTIONS.onesided = 1 then only the columns of U are + are reorthogonalized. + OPTIONS.onesided = -1 then only the columns of V are + are reorthogonalized. + OPTIONS.waitbar + : The progress of the algorithm is display graphically. + +If both R0, U_old, B_old, and V_old are provided, they must +contain a partial Lanczos bidiagonalization of A on the form + + A V_old = U_old B_old + R0 . + +In this case the factorization is extended to dimension K x K by +continuing the Lanczos bidiagonalization algorithm with R0 as a +starting vector. + +The output array work contains information about the work used in +reorthogonalizing the u- and v-vectors. + work = [ RU PU ] + [ RV PV ] +where + RU = Number of reorthogonalizations of U. + PU = Number of inner products used in reorthogonalizing U. + RV = Number of reorthogonalizations of V. + PV = Number of inner products used in reorthogonalizing V. + +References: +R.M. Larsen, Ph.D. Thesis, Aarhus University, 1998. + +G. H. Golub & C. F. Van Loan, "Matrix Computations", +3. Ed., Johns Hopkins, 1996. Section 9.3.4. + +B. N. Parlett, ``The Symmetric Eigenvalue Problem'', +Prentice-Hall, Englewood Cliffs, NJ, 1980. + +H. D. Simon, ``The Lanczos algorithm with partial reorthogonalization'', +Math. Comp. 42 (1984), no. 165, 115--142. + + +Rasmus Munk Larsen, DAIMI, 1998. diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/laneig.doc b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/laneig.doc new file mode 100644 index 0000000..daf2730 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/laneig.doc @@ -0,0 +1,62 @@ +LANEIG Compute a few eigenvalues and eigenvectors. + LANEIG solves the eigenvalue problem A*v=lambda*v, when A is + real and symmetric using the Lanczos algorithm with partial + reorthogonalization (PRO). + + [V,D] = LANEIG(A) + [V,D] = LANEIG('Afun',N) + + The first input argument is either a real symmetric matrix, or a + string containing the name of an M-file which applies a linear + operator to the columns of a given matrix. In the latter case, + the second input argument must be N, the order of the problem. + + The full calling sequence is + + [V,D,ERR] = LANEIG(A,K,SIGMA,OPTIONS) + [V,D,ERR] = LANEIG('Afun',N,K,SIGMA,OPTIONS) + + On exit ERR contains the computed error bounds. K is the number of + eigenvalues desired and SIGMA is numerical shift or a two letter string + which specifies which part of the spectrum should be computed: + + SIGMA Specified eigenvalues + + 'AL' Algebraically Largest + 'AS' Algebraically Smallest + 'LM' Largest Magnitude (default) + 'SM' Smallest Magnitude (does not work when A is an m-file) + 'BE' Both Ends. Computes k/2 eigenvalues + from each end of the spectrum (one more + from the high end if k is odd.) + + The OPTIONS structure specifies certain parameters in the algorithm. + + Field name Parameter Default + + OPTIONS.tol Convergence tolerance 16*eps + OPTIONS.lanmax Dimension of the Lanczos basis. + OPTIONS.v0 Starting vector for the Lanczos rand(n,1)-0.5 + iteration. + OPTIONS.delta Level of orthogonality among the sqrt(eps/K) + Lanczos vectors. + OPTIONS.eta Level of orthogonality after 10*eps^(3/4) + reorthogonalization. + OPTIONS.cgs reorthogonalization method used 0 + '0' : iterated modified Gram-Schmidt + '1' : iterated classical Gram-Schmidt + OPTIONS.elr If equal to 1 then extended local 1 + reorthogonalization is enforced. + + See also LANPRO, EIGS, EIG. + + References: + R.M. Larsen, Ph.D. Thesis, Aarhus University, 1998. + + B. N. Parlett, ``The Symmetric Eigenvalue Problem'', + Prentice-Hall, Englewood Cliffs, NJ, 1980. + + H. D. Simon, ``The Lanczos algorithm with partial reorthogonalization'', + Math. Comp. 42 (1984), no. 165, 115--142. + + Rasmus Munk Larsen, DAIMI, 1998 diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/laneig.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/laneig.m new file mode 100644 index 0000000..3feee8e --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/laneig.m @@ -0,0 +1,374 @@ +function [V,D,bnd,j,work] = laneig(A,nin,k,sigma,options) + +%LANEIG Compute a few eigenvalues and eigenvectors. +% LANEIG solves the eigenvalue problem A*v=lambda*v, when A is +% real and symmetric using the Lanczos algorithm with partial +% reorthogonalization (PRO). +% +% [V,D] = LANEIG(A) +% [V,D] = LANEIG('Afun',N) +% +% The first input argument is either a real symmetric matrix, or a +% string containing the name of an M-file which applies a linear +% operator to the columns of a given matrix. In the latter case, +% the second input argument must be N, the order of the problem. +% +% The full calling sequence is +% +% [V,D,ERR] = LANEIG(A,K,SIGMA,OPTIONS) +% [V,D,ERR] = LANEIG('Afun',N,K,SIGMA,OPTIONS) +% +% On exit ERR contains the computed error bounds. K is the number of +% eigenvalues desired and SIGMA is numerical shift or a two letter string +% which specifies which part of the spectrum should be computed: +% +% SIGMA Specified eigenvalues +% +% 'AL' Algebraically Largest +% 'AS' Algebraically Smallest +% 'LM' Largest Magnitude (default) +% 'SM' Smallest Magnitude (does not work when A is an m-file) +% 'BE' Both Ends. Computes k/2 eigenvalues +% from each end of the spectrum (one more +% from the high end if k is odd.) +% +% The OPTIONS structure specifies certain parameters in the algorithm. +% +% Field name Parameter Default +% +% OPTIONS.tol Convergence tolerance 16*eps +% OPTIONS.lanmax Dimension of the Lanczos basis. +% OPTIONS.v0 Starting vector for the Lanczos rand(n,1)-0.5 +% iteration. +% OPTIONS.delta Level of orthogonality among the sqrt(eps/K) +% Lanczos vectors. +% OPTIONS.eta Level of orthogonality after 10*eps^(3/4) +% reorthogonalization. +% OPTIONS.cgs reorthogonalization method used 0 +% '0' : iterated modified Gram-Schmidt +% '1' : iterated classical Gram-Schmidt +% OPTIONS.elr If equal to 1 then extended local 1 +% reorthogonalization is enforced. +% +% See also LANPRO, EIGS, EIG. + +% References: +% R.M. Larsen, Ph.D. Thesis, Aarhus University, 1998. +% +% B. N. Parlett, ``The Symmetric Eigenvalue Problem'', +% Prentice-Hall, Englewood Cliffs, NJ, 1980. +% +% H. D. Simon, ``The Lanczos algorithm with partial reorthogonalization'', +% Math. Comp. 42 (1984), no. 165, 115--142. + +% Rasmus Munk Larsen, DAIMI, 1998 + + +%%%%%%%%%%%%%%%%%%%%% Parse and check input arguments. %%%%%%%%%%%%%%%%%%%%%% + +if ~isstr(A) + if nargin<1 + error('Not enough input arguments.'); + end + [m n] = size(A); + Aisfunc = 0; + if m~=n | ~isequal(A,A') | ~isreal(A) + error('A must be real symmetric') + end + if nargin < 4 | isempty(sigma) + options = []; + else + options = sigma; + end + if nargin < 3 | isempty(k), sigma = 'LM'; else, sigma = k; end + if nargin < 2 | isempty(nin), k = min(n,5); else, k = nin; end +else + if nargin<2 + error('Not enough input arguments.'); + end + Aisfunc = 1; + n = nin; + if nargin < 5 | isempty(options) + options.tol = 16*eps; + options.lanmax = n; + options.v0 = rand(n,1)-0.5; + end + if nargin < 4 | isempty(sigma), sigma = 'LM'; end + if nargin < 3 | isempty(k), k = min(n,5); end +end + +if ~isnumeric(k) | real(abs(fix(k)))~=k | ~isnumeric(n) | real(abs(fix(n)))~=n + error('Input arguments N and K must be positive integers.') +end + +% Quick return for n<2 or k<1 +if n < 1 | k<1 + if nargout < 2 + V = zeros(k,1); + else + V = eye(n,k); + D = zeros(k,k); + bnd =zeros(k,1); + end + return +end +if n == 1 + if ~Aisfunc + D = A; + V = 1; + bnd = 0; + else + D = feval(A,1); + V = 1; + dnb = 0; + end + if nargout<2 + V=D; + end + return +end + +% A is the matrix of all zeros (not detectable if A is a string) +if ~Aisfunc + if nnz(A)==0 + if nargout < 2 + V = zeros(k,1); + else + V = eye(n,k); + D = zeros(k,k); + bnd =zeros(k,1); + end + return + end +end + +lanmax = n; +tol = 16*eps; +r = rand(n,1)-0.5; +part = sigma; +% Parse options struct +if ~isempty(options) & isstruct(options) + c = fieldnames(options); + for i=1:length(c) + if strmatch(c(i),'v0'), r = getfield(options,'v0'); r=r(:); end + if strmatch(c(i),'tol'), tol = getfield(options,'tol'); end + if strmatch(c(i),'lanmax'), lanmax = getfield(options,'lanmax'); end + end +end + +% Protect against absurd arguments. +tol = max(tol,eps); +lanmax = min(lanmax,n); +if size(r,1)~=n + error('v0 must be a vector of length n') +end + +lanmax = min(lanmax,n); +if k>lanmax + error('K must satisfy K <= LANMAX <= N.'); +end +ksave = k; + +if strcmp(sigma,'SM') & ~isstr(A) + sigma = 0; +end + + +% Prepare for shift-and-invert if sigma is numeric. +if isnumeric(sigma) + part = 'LM'; + if isstr(A) + error('Shift-and-invert works only when the matrix A is given explicitly.'); + else + pmmd = symmmd(A); + A = A(pmmd,pmmd); + [S.L,S.U] = lu(A - sigma*speye(n)); + condU = condest(S.U); + dsigma = n * full(max(max(abs(A)))) * eps; + if sigma < 0 + sgnsig = -1; + else + sgnsig = 1; + end + sigitr = 1; + while condU > 1/eps & ((dsigma <= 1 & sigitr <= 10) | ~isfinite(condU)) + disps1 = sprintf(['sigma = %10e is near an exact eigenvalue of A,\n' ... + 'so we cannot use the LU factorization of (A-sigma*I): ' ... + ' condest(U) = %10e.\n'],sigma,condU); + if abs(sigma) < 1 + sigma = sigma + sgnsig * dsigma; + disps2 = sprintf('We are trying sigma + %10e = %10e instead.\n', ... + sgnsig*dsigma,sigma); + else + sigma = sigma * (1 + dsigma); + disps2 = sprintf('We are trying sigma * (1 + %10e) = %10e instead.\n', ... + dsigma,sigma); + end + % if nargout < 3 & dispn ~= 0 + disp([disps1 disps2]) + % end + [S.L,S.U] = lu(A - sigma*speye(n)); + condU = condest(S.U); + dsigma = 10 * dsigma; + sigitr = sigitr + 1; + end + end + A = S; +end + + +neig = 0; nrestart=-1; +if ~strcmp(part,'BE') + j = min(2*k+2,lanmax); +else + j = min(k+1,lanmax); +end + + +%%%%%%%%%%%%%%%%%%%%% Here begins the computation %%%%%%%%%%%%%%%%%%%%%% + +V = []; T = []; anorm = []; work = zeros(1,2); rnorm=-1; + + + + +while neig < k + %%%%%%%%%%%%%%%%%%%%% Compute Lanczos tridiagonalization %%%%%%%%%%%%%%%%% + j = min(lanmax,j+1-mod(j,2)); + % "Trick" to avoid unwanted zero eigenvalues when laneig is used for + % SVD calculations. (Nothing to if lanmax is odd, though.) + + if ~isstr(A) + [V,T,r,anorm,ierr,w] = lanpro(A,j,r,options,V,T,anorm); + else + [V,T,r,anorm,ierr,w] = lanpro(A,n,j,r,options,V,T,anorm); + end + work= work + w; + + if ierr<0 % Invariant subspace of dimension -ierr found. + j = -ierr; + end + + %%%%%%%%%%%%%%%%%% Compute eigenvalues and error bounds %%%%%%%%%%%%%%%%%% + % Analyze T + [D,top,bot,err] = tqlb([full(diag(T))],full([0;diag(T,1)])); + % if err>0 + % printf(['TQLB failed. Eigenvalue no. %i did not converge in 30', ... + % ' iterations'],err); + % end + % full(T) + % [P,D] = eig(full(T)); + % D = diag(D); + % bot = P(end,:)'; + % [P(1,:)' P(end,:)'] + [D,I] = sort(D); + bot = bot(I); + + % Set simple error bounds + rnorm = norm(r); + bnd = rnorm*abs(bot); + + % Use Largest Ritz value to estimate ||A||_2. This might save some + % reorth. in case of restart. + anorm = max(abs(D)); + + % Estimate gap structure and refine error bounds + bnd = refinebounds(D,bnd,n*eps*anorm); + + %%%%%%%%%%%%%%%%%%% Check convergence criterion %%%%%%%%%%%%%%%%%%%% + % Reorder eigenvalues according to SIGMA + switch part + case 'AS' + IPART = 1:j; + case 'AL' + IPART = j:-1:1; + case 'LM' + [dummy,IPART] = sort(-abs(D)); + case 'BE' + if j=lanmax % Maximal dimension of Krylov subspace reached => Bail out! + if neig0 + % j = j + ceil(min(20,max(2,((j-1)*(k-neig+1))/(2*(neig+1))))); + j = j + min(100,max(2,0.5*(k-neig)*j/(neig+1))); + elseif neig1 + j = size(T,1); + [Q,D] = eig(full(T)); D = diag(D); + [D,I] = sort(D); + % Compute and normalize Ritz vectors (overwrite V to save memory). + V = V*Q(:,I(IPART(1:k))); + for i=1:k + nq = norm(V(:,i)); + if isfinite(nq) & nq~=0 & nq~=1 + V(:,i) = V(:,i)/nq; + end + end + [D,I] = sort(D); + D = D(IPART(1:k)); + if isnumeric(sigma) + D = sigma + 1./D; + V(pmmd,:) = V; + end +end + +% Pick out desired part of the spectrum +if length(D)~=k + D = D(1:k); + bnd = bnd(1:k); +end + +if nargout<2 + V = D; +else + D = diag(D); +end + diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/laneig.txt b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/laneig.txt new file mode 100644 index 0000000..daf2730 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/laneig.txt @@ -0,0 +1,62 @@ +LANEIG Compute a few eigenvalues and eigenvectors. + LANEIG solves the eigenvalue problem A*v=lambda*v, when A is + real and symmetric using the Lanczos algorithm with partial + reorthogonalization (PRO). + + [V,D] = LANEIG(A) + [V,D] = LANEIG('Afun',N) + + The first input argument is either a real symmetric matrix, or a + string containing the name of an M-file which applies a linear + operator to the columns of a given matrix. In the latter case, + the second input argument must be N, the order of the problem. + + The full calling sequence is + + [V,D,ERR] = LANEIG(A,K,SIGMA,OPTIONS) + [V,D,ERR] = LANEIG('Afun',N,K,SIGMA,OPTIONS) + + On exit ERR contains the computed error bounds. K is the number of + eigenvalues desired and SIGMA is numerical shift or a two letter string + which specifies which part of the spectrum should be computed: + + SIGMA Specified eigenvalues + + 'AL' Algebraically Largest + 'AS' Algebraically Smallest + 'LM' Largest Magnitude (default) + 'SM' Smallest Magnitude (does not work when A is an m-file) + 'BE' Both Ends. Computes k/2 eigenvalues + from each end of the spectrum (one more + from the high end if k is odd.) + + The OPTIONS structure specifies certain parameters in the algorithm. + + Field name Parameter Default + + OPTIONS.tol Convergence tolerance 16*eps + OPTIONS.lanmax Dimension of the Lanczos basis. + OPTIONS.v0 Starting vector for the Lanczos rand(n,1)-0.5 + iteration. + OPTIONS.delta Level of orthogonality among the sqrt(eps/K) + Lanczos vectors. + OPTIONS.eta Level of orthogonality after 10*eps^(3/4) + reorthogonalization. + OPTIONS.cgs reorthogonalization method used 0 + '0' : iterated modified Gram-Schmidt + '1' : iterated classical Gram-Schmidt + OPTIONS.elr If equal to 1 then extended local 1 + reorthogonalization is enforced. + + See also LANPRO, EIGS, EIG. + + References: + R.M. Larsen, Ph.D. Thesis, Aarhus University, 1998. + + B. N. Parlett, ``The Symmetric Eigenvalue Problem'', + Prentice-Hall, Englewood Cliffs, NJ, 1980. + + H. D. Simon, ``The Lanczos algorithm with partial reorthogonalization'', + Math. Comp. 42 (1984), no. 165, 115--142. + + Rasmus Munk Larsen, DAIMI, 1998 diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanpro.doc b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanpro.doc new file mode 100644 index 0000000..38649e0 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanpro.doc @@ -0,0 +1,75 @@ +LANPRO Lanczos tridiagonalization with partial reorthogonalization + LANPRO computes the Lanczos tridiagonalization of a real symmetric + matrix using the symmetric Lanczos algorithm with partial + reorthogonalization. + + [Q_K,T_K,R,ANORM,IERR,WORK] = LANPRO(A,K,R0,OPTIONS,Q_old,T_old) + [Q_K,T_K,R,ANORM,IERR,WORK] = LANPRO('Afun',N,K,R0,OPTIONS,Q_old,T_old) + + Computes K steps of the Lanczos algorithm with starting vector R0, + and returns the K x K tridiagonal T_K, the N x K matrix Q_K + with semiorthonormal columns and the residual vector R such that + + A*Q_K = Q_K*T_K + R . + + Partial reorthogonalization is used to keep the columns of Q_K + semiorthogonal: + MAX(DIAG((eye(k) - Q_K'*Q_K))) <= OPTIONS.delta. + + + The first input argument is either a real symmetric matrix, a struct with + components A.L and A.U or a string containing the name of an M-file which + applies a linear operator to the columns of a given matrix. In the latter + case, the second input argument must be N, the order of the problem. + + If A is a struct with components A.L and A.U, such that + L*U = (A - sigma*I), a shift-and-invert Lanczos iteration is performed + + The OPTIONS structure is used to control the reorthogonalization: + OPTIONS.delta: Desired level of orthogonality + (default = sqrt(eps/K)). + OPTIONS.eta : Level of orthogonality after reorthogonalization + (default = eps^(3/4)/sqrt(K)). + OPTIONS.cgs : Flag for switching between different reorthogonalization + algorithms: + 0 = iterated modified Gram-Schmidt (default) + 1 = iterated classical Gram-Schmidt + OPTIONS.elr : If OPTIONS.elr = 1 (default) then extended local + reorthogonalization is enforced. + OPTIONS.Y : The lanczos vectors are reorthogonalized against + the columns of the matrix OPTIONS.Y. + + If both R0, Q_old and T_old are provided, they must contain + a partial Lanczos tridiagonalization of A on the form + + A Q_old = Q_old T_old + R0 . + + In this case the factorization is extended to dimension K x K by + continuing the Lanczos algorithm with R0 as starting vector. + + On exit ANORM contains an approximation to ||A||_2. + IERR = 0 : K steps were performed succesfully. + IERR > 0 : K steps were performed succesfully, but the algorithm + switched to full reorthogonalization after IERR steps. + IERR < 0 : Iteration was terminated after -IERR steps because an + invariant subspace was found, and 3 deflation attempts + were unsuccessful. + On exit WORK(1) contains the number of reorthogonalizations performed, and + WORK(2) contains the number of inner products performed in the + reorthogonalizations. + + See also LANEIG, REORTH, COMPUTE_INT + + References: + R.M. Larsen, Ph.D. Thesis, Aarhus University, 1998. + + G. H. Golub & C. F. Van Loan, "Matrix Computations", + 3. Ed., Johns Hopkins, 1996. Chapter 9. + + B. N. Parlett, ``The Symmetric Eigenvalue Problem'', + Prentice-Hall, Englewood Cliffs, NJ, 1980. + + H. D. Simon, ``The Lanczos algorithm with partial reorthogonalization'', + Math. Comp. 42 (1984), no. 165, 115--142. + + Rasmus Munk Larsen, DAIMI, 1998 diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanpro.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanpro.m new file mode 100644 index 0000000..6b82a6d --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanpro.m @@ -0,0 +1,445 @@ +function [Q_k,T_k,r,anorm,ierr,work] = lanpro(A,nin,kmax,r,options,... + Q_k,T_k,anorm) + +%LANPRO Lanczos tridiagonalization with partial reorthogonalization +% LANPRO computes the Lanczos tridiagonalization of a real symmetric +% matrix using the symmetric Lanczos algorithm with partial +% reorthogonalization. +% +% [Q_K,T_K,R,ANORM,IERR,WORK] = LANPRO(A,K,R0,OPTIONS,Q_old,T_old) +% [Q_K,T_K,R,ANORM,IERR,WORK] = LANPRO('Afun',N,K,R0,OPTIONS,Q_old,T_old) +% +% Computes K steps of the Lanczos algorithm with starting vector R0, +% and returns the K x K tridiagonal T_K, the N x K matrix Q_K +% with semiorthonormal columns and the residual vector R such that +% +% A*Q_K = Q_K*T_K + R . +% +% Partial reorthogonalization is used to keep the columns of Q_K +% semiorthogonal: +% MAX(DIAG((eye(k) - Q_K'*Q_K))) <= OPTIONS.delta. +% +% +% The first input argument is either a real symmetric matrix, a struct with +% components A.L and A.U or a string containing the name of an M-file which +% applies a linear operator to the columns of a given matrix. In the latter +% case, the second input argument must be N, the order of the problem. +% +% If A is a struct with components A.L and A.U, such that +% L*U = (A - sigma*I), a shift-and-invert Lanczos iteration is performed +% +% The OPTIONS structure is used to control the reorthogonalization: +% OPTIONS.delta: Desired level of orthogonality +% (default = sqrt(eps/K)). +% OPTIONS.eta : Level of orthogonality after reorthogonalization +% (default = eps^(3/4)/sqrt(K)). +% OPTIONS.cgs : Flag for switching between different reorthogonalization +% algorithms: +% 0 = iterated modified Gram-Schmidt (default) +% 1 = iterated classical Gram-Schmidt +% OPTIONS.elr : If OPTIONS.elr = 1 (default) then extended local +% reorthogonalization is enforced. +% OPTIONS.Y : The lanczos vectors are reorthogonalized against +% the columns of the matrix OPTIONS.Y. +% +% If both R0, Q_old and T_old are provided, they must contain +% a partial Lanczos tridiagonalization of A on the form +% +% A Q_old = Q_old T_old + R0 . +% +% In this case the factorization is extended to dimension K x K by +% continuing the Lanczos algorithm with R0 as starting vector. +% +% On exit ANORM contains an approximation to ||A||_2. +% IERR = 0 : K steps were performed succesfully. +% IERR > 0 : K steps were performed succesfully, but the algorithm +% switched to full reorthogonalization after IERR steps. +% IERR < 0 : Iteration was terminated after -IERR steps because an +% invariant subspace was found, and 3 deflation attempts +% were unsuccessful. +% On exit WORK(1) contains the number of reorthogonalizations performed, and +% WORK(2) contains the number of inner products performed in the +% reorthogonalizations. +% +% See also LANEIG, REORTH, COMPUTE_INT + +% References: +% R.M. Larsen, Ph.D. Thesis, Aarhus University, 1998. +% +% G. H. Golub & C. F. Van Loan, "Matrix Computations", +% 3. Ed., Johns Hopkins, 1996. Chapter 9. +% +% B. N. Parlett, ``The Symmetric Eigenvalue Problem'', +% Prentice-Hall, Englewood Cliffs, NJ, 1980. +% +% H. D. Simon, ``The Lanczos algorithm with partial reorthogonalization'', +% Math. Comp. 42 (1984), no. 165, 115--142. + +% Rasmus Munk Larsen, DAIMI, 1998 + + +% Check input arguments. +if nargin<1, error('Not enough input arguments.'); end +if isnumeric(A) | isstruct(A) + if isnumeric(A) + [m n] = size(A); + if m~=n | ~isequal(A,A') | ~isreal(A) + error('A must be real symmetric') + end + elseif isstruct(A) + [m n] = size(A.L); + end + + if nargin<7 | isempty(T_k), + anorm = []; est_anorm=1; + else + anorm = T_k; est_anorm=0; + end + if nargin<6, Q_k=[]; T_k=[]; else, T_k = Q_k; Q_k = options; end + if nargin<4 | isempty(r), options = []; else, options = r; end + if nargin<3 | isempty(kmax), + r = rand(n,1)-0.5; + else + r = kmax; + end + if nargin<2 | isempty(nin); kmax = max(10,n/10); else, kmax = nin; end +else + if nargin<2 + error('Not enough input arguments.'); + end + % Check input functions and parse to create an internal object + % if an explicit expression is given. + [A, msg] = fcnchk(A); + if ~isempty(msg) + error(msg); + end + n = nin; + if nargin<8 | isempty(anorm), anorm = []; est_anorm=1; else est_anorm=0; end + if nargin<7, Q_k=[]; T_k=[]; end + if nargin<5 | isempty(options), options = []; end + if nargin<4 | isempty(r), r = rand(n,1)-0.5; end + if nargin<3 | isempty(kmax); kmax = max(10,n/10); end +end + +% Set options. +delta = sqrt(eps/kmax); % Desired level of orthogonality. +eta = eps^(3/4)/sqrt(kmax); % Level of orth. after reorthogonalization. +cgs = 0; % Flag for switching between iterated CGS and MGS. +elr = 1; % Flag for switching extended local + % reorthogonalization on and off. +deflate = 0; % Flag for deflation against OPTIONS.Y + +% Parse options struct +if ~isempty(options) & isstruct(options) + c = fieldnames(options); + for i=1:length(c) + if strmatch(c(i),'delta'), delta = getfield(options,'delta'); end + if strmatch(c(i),'eta'), eta = getfield(options,'eta'); end + if strmatch(c(i),'cgs'), cgs = getfield(options,'cgs'); end + if strmatch(c(i),'elr'), elr = getfield(options,'elr'); end + if strmatch(c(i),'Y'), deflate = ~isempty(options.Y); end + end +end + +np = 0; nr = 0; ierr=0; + +% Rule-of-thumb estimate on the size of round-off terms: +eps1 = sqrt(n)*eps/2; % Notice that {\bf u} == eps/2. +gamma = 1/sqrt(2); + +% Prepare Lanczos iteration +if isempty(Q_k) % New Lanczos tridiagonalization. + % Allocate space + alpha = zeros(kmax+1,1); beta = zeros(kmax+1,1); + Q_k = zeros(n,kmax); + q = zeros(n,1); beta(1)=norm(r); + omega = zeros(kmax,1); omega_max = omega; omega_old = omega; + omega(1) = 0; force_reorth= 0; + j0 = 1; +else % Extending existing Lanczos tridiagonalization. + j = size(Q_k,2); % Size of existing factorization + % Allocate space + Q_k = [Q_k zeros(n,kmax-j)]; + alpha = zeros(kmax+1,1); beta = zeros(kmax+1,1); + alpha(1:j) = diag(T_k); + if j>1 + beta(2:j) = diag(T_k,-1); + end + q = Q_k(:,j); + % Reorthogonalize r. + beta(j+1) = norm(r); + if j1 + t1 = q_old'*r; + t2 = q'*r; + r = r - (q_old*t1 + q*t2); % Add small terms together first to + if beta(j)~=0 % reduce risk of cancellation. + beta(j) = beta(j) + t1; + end + alpha(j) = alpha(j) + t2; + end + beta(j+1) = sqrt(r'*r); % Quick and dirty estimate. + end + + % Update Gersgorin estimate of ||T_k|| if required +% if est_anorm & beta(j+1)~=0 +% T_k = spdiags([[beta(2:j);0] alpha(1:j) beta(1:j)],-1:1,j,j); +% anorm = sqrt(norm(T_k'*T_k,1)) +% end + if est_anorm & beta(j+1)~=0 + anorm = update_gbound(anorm,alpha,beta,j); + end + + % Update omega-recurrence + if j>1 & ~fro & beta(j+1)~=0 + [omega,omega_old] = update_omega(omega,omega_old,j,alpha,beta,... + eps1,anorm); + omega_max(j) = max(abs(omega)); + end + + % Reorthogonalize if required + if j>1 & (fro | force_reorth | omega_max(j)>delta) & beta(j+1)~=0 + if fro + int = 1:j; + else + if force_reorth == 0 + force_reorth= 1; % Do forced reorth to avoid spill-over from q_{j-1}. + int = compute_int(omega,j,delta,eta,0,0,0); + else + force_reorth= 0; + end + end + [r,beta(j+1),rr] = reorth(Q_k,r,beta(j+1),int,gamma,cgs); + omega(int) = eps1; + np = np + rr*length(int(:)); nr = nr + 1; + else + beta(j+1) = norm(r); % compute norm accurately. + end + + if deflate + [r,beta(j+1),rr] = reorth(options.Y,r,beta(j+1),1:size(options.Y,2), ... + gamma,cgs); + end + + if j 0 + % A vector numerically orthogonal to span(Q_k(:,1:j)) was found. + % Continue iteration. + bailout=0; + break; + end + end + if bailout + ierr = -j; + break; + else + r=r/nrmnew; % Continue with new normalized r as starting vector. + force_reorth = 1; + if delta>0 + fro = 0; % Turn off full reorthogonalization. + end + end + elseif j delta then omega(j+1) will + % immediately exceed delta, and thus forcing a reorth. to occur at the + % next step. The components of omega will mainly be determined + % by the initial value and not the recurrence, and therefore we + % cannot tell reliably which components exceed eta => we might + % as well switch to full reorthogonalization to avoid trouble. + % The user is probably trying to determine pathologically + % small ( < sqrt(eps)*||A||_2 ) eigenvalues. + % warning(['Semiorthogonality cannot be maintained at iteration ', ... + % num2str(j),'. The matrix is probably ill-conditioned.', ... + % ' Switching to full reorthogonalization.']) + fro = 1; + ierr = j; + end +end + +% Set up tridiagonal T_k in sparse matrix data structure. +T_k = spdiags([[beta(2:j);0] alpha(1:j) beta(1:j)],-1:1,j,j); +if nargout<2 + Q_k = T_k; +elseif j~=size(Q_k,2) + Q_k = Q_k(:,1:j); +end +work = [nr np]; + + +function [omega,omega_old] = update_omega(omega, omega_old, j, ... + alpha,beta,eps1,anorm) +% UPDATE_OMEGA: Update Simon's omega_recurrence for the Lanczos vectors. +% +% [omega,omega_old] = update_omega(omega, omega_old,j,eps1,alpha,beta,anorm) +% + +% Rasmus Munk Larsen, DAIMI, 1998. + +% Estimate of contribution to roundoff errors from A*v +% fl(A*v) = A*v + f, +% where ||f|| \approx eps1*||A||. +% For a full matrix A, a rule-of-thumb estimate is eps1 = sqrt(n)*eps. +T = eps1*anorm; +binv = 1/beta(j+1); + +omega_old = omega; +% Update omega(1) using omega(0)==0. +omega_old(1)= beta(2)*omega(2)+ (alpha(1)-alpha(j))*omega(1) - ... + beta(j)*omega_old(1); +omega_old(1) = binv*(omega_old(1) + sign(omega_old(1))*T); +% Update remaining components. +k=2:j-2; +omega_old(k) = beta(k+1).*omega(k+1) + (alpha(k)-alpha(j)).*omega(k) ... + + beta(k).*omega(k-1) - beta(j)*omega_old(k); +omega_old(k) = binv*(omega_old(k) + sign(omega_old(k))*T); +omega_old(j-1) = binv*T; +% Swap omega and omega_old. +temp = omega; +omega = omega_old; +omega_old = omega; +omega(j) = eps1; + + +function anorm = update_gbound(anorm,alpha,beta,j) +%UPDATE_GBOUND Update Gerscgorin estimate of 2-norm +% ANORM = UPDATE_GBOUND(ANORM,ALPHA,BETA,J) updates the Gerscgorin bound +% for the tridiagonal in the Lanczos process after the J'th step. +% Applies Gerscgorins circles to T_K'*T_k instead of T_k itself +% since this gives a tighter bound. + +if j==1 % Apply Gerscgorin circles to T_k'*T_k to estimate || A ||_2 + i=j; + % scale to avoid overflow + scale = max(abs(alpha(i)),abs(beta(i+1))); + alpha(i) = alpha(i)/scale; + beta(i+1) = beta(i+1)/scale; + anorm = 1.01*scale*sqrt(alpha(i)^2+beta(i+1)^2 + abs(alpha(i)*beta(i+1))); +elseif j==2 + i=1; + % scale to avoid overflow + scale = max(max(abs(alpha(1:2)),max(abs(beta(2:3))))); + alpha(1:2) = alpha(1:2)/scale; + beta(2:3) = beta(2:3)/scale; + + anorm = max(anorm, scale*sqrt(alpha(i)^2+beta(i+1)^2 + ... + abs(alpha(i)*beta(i+1) + alpha(i+1)*beta(i+1)) + ... + abs(beta(i+1)*beta(i+2)))); + i=2; + anorm = max(anorm,scale*sqrt(abs(beta(i)*alpha(i-1) + alpha(i)*beta(i)) + ... + beta(i)^2+alpha(i)^2+beta(i+1)^2 + ... + abs(alpha(i)*beta(i+1))) ); +elseif j==3 + % scale to avoid overflow + scale = max(max(abs(alpha(1:3)),max(abs(beta(2:4))))); + alpha(1:3) = alpha(1:3)/scale; + beta(2:4) = beta(2:4)/scale; + i=2; + anorm = max(anorm,scale*sqrt(abs(beta(i)*alpha(i-1) + alpha(i)*beta(i)) + ... + beta(i)^2+alpha(i)^2+beta(i+1)^2 + ... + abs(alpha(i)*beta(i+1) + alpha(i+1)*beta(i+1)) + ... + abs(beta(i+1)*beta(i+2))) ); + i=3; + anorm = max(anorm,scale*sqrt(abs(beta(i)*beta(i-1)) + ... + abs(beta(i)*alpha(i-1) + alpha(i)*beta(i)) + ... + beta(i)^2+alpha(i)^2+beta(i+1)^2 + ... + abs(alpha(i)*beta(i+1))) ); +else + % scale to avoid overflow + % scale = max(max(abs(alpha(j-2:j)),max(abs(beta(j-2:j+1))))); + % alpha(j-2:j) = alpha(j-2:j)/scale; + % beta(j-2:j+1) = beta(j-2:j+1)/scale; + + % Avoid scaling, which is slow. At j>3 the estimate is usually quite good + % so just make sure that anorm is not made infinite by overflow. + i = j-1; + anorm1 = sqrt(abs(beta(i)*beta(i-1)) + ... + abs(beta(i)*alpha(i-1) + alpha(i)*beta(i)) + ... + beta(i)^2+alpha(i)^2+beta(i+1)^2 + ... + abs(alpha(i)*beta(i+1) + alpha(i+1)*beta(i+1)) + ... + abs(beta(i+1)*beta(i+2))); + if isfinite(anorm1) + anorm = max(anorm,anorm1); + end + i = j; + anorm1 = sqrt(abs(beta(i)*beta(i-1)) + ... + abs(beta(i)*alpha(i-1) + alpha(i)*beta(i)) + ... + beta(i)^2+alpha(i)^2+beta(i+1)^2 + ... + abs(alpha(i)*beta(i+1))); + if isfinite(anorm1) + anorm = max(anorm,anorm1); + end +end diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanpro.txt b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanpro.txt new file mode 100644 index 0000000..38649e0 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lanpro.txt @@ -0,0 +1,75 @@ +LANPRO Lanczos tridiagonalization with partial reorthogonalization + LANPRO computes the Lanczos tridiagonalization of a real symmetric + matrix using the symmetric Lanczos algorithm with partial + reorthogonalization. + + [Q_K,T_K,R,ANORM,IERR,WORK] = LANPRO(A,K,R0,OPTIONS,Q_old,T_old) + [Q_K,T_K,R,ANORM,IERR,WORK] = LANPRO('Afun',N,K,R0,OPTIONS,Q_old,T_old) + + Computes K steps of the Lanczos algorithm with starting vector R0, + and returns the K x K tridiagonal T_K, the N x K matrix Q_K + with semiorthonormal columns and the residual vector R such that + + A*Q_K = Q_K*T_K + R . + + Partial reorthogonalization is used to keep the columns of Q_K + semiorthogonal: + MAX(DIAG((eye(k) - Q_K'*Q_K))) <= OPTIONS.delta. + + + The first input argument is either a real symmetric matrix, a struct with + components A.L and A.U or a string containing the name of an M-file which + applies a linear operator to the columns of a given matrix. In the latter + case, the second input argument must be N, the order of the problem. + + If A is a struct with components A.L and A.U, such that + L*U = (A - sigma*I), a shift-and-invert Lanczos iteration is performed + + The OPTIONS structure is used to control the reorthogonalization: + OPTIONS.delta: Desired level of orthogonality + (default = sqrt(eps/K)). + OPTIONS.eta : Level of orthogonality after reorthogonalization + (default = eps^(3/4)/sqrt(K)). + OPTIONS.cgs : Flag for switching between different reorthogonalization + algorithms: + 0 = iterated modified Gram-Schmidt (default) + 1 = iterated classical Gram-Schmidt + OPTIONS.elr : If OPTIONS.elr = 1 (default) then extended local + reorthogonalization is enforced. + OPTIONS.Y : The lanczos vectors are reorthogonalized against + the columns of the matrix OPTIONS.Y. + + If both R0, Q_old and T_old are provided, they must contain + a partial Lanczos tridiagonalization of A on the form + + A Q_old = Q_old T_old + R0 . + + In this case the factorization is extended to dimension K x K by + continuing the Lanczos algorithm with R0 as starting vector. + + On exit ANORM contains an approximation to ||A||_2. + IERR = 0 : K steps were performed succesfully. + IERR > 0 : K steps were performed succesfully, but the algorithm + switched to full reorthogonalization after IERR steps. + IERR < 0 : Iteration was terminated after -IERR steps because an + invariant subspace was found, and 3 deflation attempts + were unsuccessful. + On exit WORK(1) contains the number of reorthogonalizations performed, and + WORK(2) contains the number of inner products performed in the + reorthogonalizations. + + See also LANEIG, REORTH, COMPUTE_INT + + References: + R.M. Larsen, Ph.D. Thesis, Aarhus University, 1998. + + G. H. Golub & C. F. Van Loan, "Matrix Computations", + 3. Ed., Johns Hopkins, 1996. Chapter 9. + + B. N. Parlett, ``The Symmetric Eigenvalue Problem'', + Prentice-Hall, Englewood Cliffs, NJ, 1980. + + H. D. Simon, ``The Lanczos algorithm with partial reorthogonalization'', + Math. Comp. 42 (1984), no. 165, 115--142. + + Rasmus Munk Larsen, DAIMI, 1998 diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lansvd.doc b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lansvd.doc new file mode 100644 index 0000000..d3a73c8 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lansvd.doc @@ -0,0 +1,58 @@ +LANSVD Compute a few singular values and singular vectors. + LANSVD computes singular triplets (u,v,sigma) such that + A*u = sigma*v and A'*v = sigma*u. Only a few singular values + and singular vectors are computed using the Lanczos + bidiagonalization algorithm with partial reorthogonalization (BPRO). + + S = LANSVD(A) + S = LANSVD('Afun','Atransfun',M,N) + + The first input argument is either a matrix or a + string containing the name of an M-file which applies a linear + operator to the columns of a given matrix. In the latter case, + the second input must be the name of an M-file which applies the + transpose of the same operator to the columns of a given matrix, + and the third and fourth arguments must be M and N, the dimensions + of the problem. + + [U,S,V] = LANSVD(A,K,'L',...) computes the K largest singular values. + + [U,S,V] = LANSVD(A,K,'S',...) computes the K smallest singular values. + + The full calling sequence is + + [U,S,V] = LANSVD(A,K,SIGMA,OPTIONS) + [U,S,V] = LANSVD('Afun','Atransfun',M,N,K,SIGMA,OPTIONS) + + where K is the number of singular values desired and + SIGMA is 'L' or 'S'. + + The OPTIONS structure specifies certain parameters in the algorithm. + Field name Parameter Default + + OPTIONS.tol Convergence tolerance 16*eps + OPTIONS.lanmax Dimension of the Lanczos basis. + OPTIONS.p0 Starting vector for the Lanczos rand(n,1)-0.5 + iteration. + OPTIONS.delta Level of orthogonality among the sqrt(eps/K) + Lanczos vectors. + OPTIONS.eta Level of orthogonality after 10*eps^(3/4) + reorthogonalization. + OPTIONS.cgs reorthogonalization method used 0 + '0' : iterated modified Gram-Schmidt + '1' : iterated classical Gram-Schmidt + OPTIONS.elr If equal to 1 then extended local 1 + reorthogonalization is enforced. + + See also LANBPRO, SVDS, SVD + + References: + R.M. Larsen, Ph.D. Thesis, Aarhus University, 1998. + + B. N. Parlett, ``The Symmetric Eigenvalue Problem'', + Prentice-Hall, Englewood Cliffs, NJ, 1980. + + H. D. Simon, ``The Lanczos algorithm with partial reorthogonalization'', + Math. Comp. 42 (1984), no. 165, 115--142. + + Rasmus Munk Larsen, DAIMI, 1998 diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lansvd.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lansvd.m new file mode 100644 index 0000000..f28dee2 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lansvd.m @@ -0,0 +1,343 @@ +function [U,S,V,bnd,j] = lansvd(varargin) + +%LANSVD Compute a few singular values and singular vectors. +% LANSVD computes singular triplets (u,v,sigma) such that +% A*u = sigma*v and A'*v = sigma*u. Only a few singular values +% and singular vectors are computed using the Lanczos +% bidiagonalization algorithm with partial reorthogonalization (BPRO). +% +% S = LANSVD(A) +% S = LANSVD('Afun','Atransfun',M,N) +% +% The first input argument is either a matrix or a +% string containing the name of an M-file which applies a linear +% operator to the columns of a given matrix. In the latter case, +% the second input must be the name of an M-file which applies the +% transpose of the same operator to the columns of a given matrix, +% and the third and fourth arguments must be M and N, the dimensions +% of the problem. +% +% [U,S,V] = LANSVD(A,K,'L',...) computes the K largest singular values. +% +% [U,S,V] = LANSVD(A,K,'S',...) computes the K smallest singular values. +% +% The full calling sequence is +% +% [U,S,V] = LANSVD(A,K,SIGMA,OPTIONS) +% [U,S,V] = LANSVD('Afun','Atransfun',M,N,K,SIGMA,OPTIONS) +% +% where K is the number of singular values desired and +% SIGMA is 'L' or 'S'. +% +% The OPTIONS structure specifies certain parameters in the algorithm. +% Field name Parameter Default +% +% OPTIONS.tol Convergence tolerance 16*eps +% OPTIONS.lanmax Dimension of the Lanczos basis. +% OPTIONS.p0 Starting vector for the Lanczos rand(n,1)-0.5 +% iteration. +% OPTIONS.delta Level of orthogonality among the sqrt(eps/K) +% Lanczos vectors. +% OPTIONS.eta Level of orthogonality after 10*eps^(3/4) +% reorthogonalization. +% OPTIONS.cgs reorthogonalization method used 0 +% '0' : iterated modified Gram-Schmidt +% '1' : iterated classical Gram-Schmidt +% OPTIONS.elr If equal to 1 then extended local 1 +% reorthogonalization is enforced. +% +% See also LANBPRO, SVDS, SVD + +% References: +% R.M. Larsen, Ph.D. Thesis, Aarhus University, 1998. +% +% B. N. Parlett, ``The Symmetric Eigenvalue Problem'', +% Prentice-Hall, Englewood Cliffs, NJ, 1980. +% +% H. D. Simon, ``The Lanczos algorithm with partial reorthogonalization'', +% Math. Comp. 42 (1984), no. 165, 115--142. + +% Rasmus Munk Larsen, DAIMI, 1998 + + +%%%%%%%%%%%%%%%%%%%%% Parse and check input arguments. %%%%%%%%%%%%%%%%%%%%%% + +if nargin<1 | length(varargin)<1 + error('Not enough input arguments.'); +end + +A = varargin{1}; +if ~isstr(A) + if ~isreal(A) + error('A must be real') + end + [m n] = size(A); + if length(varargin) < 2, k=min(min(m,n),6); else k=varargin{2}; end + if length(varargin) < 3, sigma = 'L'; else sigma=varargin{3}; end + if length(varargin) < 4, options = []; else options=varargin{4}; end +else + if length(varargin)<4 + error('Not enough input arguments.'); + end + Atrans = varargin{2}; + if ~isstr(Atrans) + error('Atransfunc must be the name of a function') + end + m = varargin{3}; + n = varargin{4}; + if length(varargin) < 5, k=min(min(m,n),6); else k=varargin{5}; end + if length(varargin) < 6, sigma = 'L'; else sigma=varargin{6}; end + if length(varargin) < 7, options = []; else options=varargin{7}; end +end + +if ~isnumeric(n) | real(abs(fix(n))) ~= n | ~isnumeric(m) | ... + real(abs(fix(m))) ~= m | ~isnumeric(k) | real(abs(fix(k))) ~= k + error('M, N and K must be positive integers.') +end + + +% Quick return for min(m,n) equal to 0 or 1 or for zero A. +if min(n,m) < 1 | k<1 + if nargout<3 + U = zeros(k,1); + else + U = eye(m,k); S = zeros(k,k); V = eye(n,k); bnd = zeros(k,1); + end + return +elseif min(n,m) == 1 & k>0 + if isstr(A) + % Extract the single column or row of A + if n==1 + A = feval(A,1); + else + A = feval(Atrans,1)'; + end + end + if nargout==1 + U = norm(A); + else + [U,S,V] = svd(full(A)); + bnd = 0; + end + return +end + +% A is the matrix of all zeros (not detectable if A is defined by an m-file) +if isnumeric(A) + if nnz(A)==0 + if nargout<3 + U = zeros(k,1); + else + U = eye(m,k); S = zeros(k,k); V = eye(n,k); bnd = zeros(k,1); + end + return + end +end + +lanmax = min(m,n); +tol = 16*eps; +p = rand(m,1)-0.5; +% Parse options struct +if isstruct(options) + c = fieldnames(options); + for i=1:length(c) + if any(strcmp(c(i),'p0')), p = getfield(options,'p0'); p=p(:); end + if any(strcmp(c(i),'tol')), tol = getfield(options,'tol'); end + if any(strcmp(c(i),'lanmax')), lanmax = getfield(options,'lanmax'); end + end +end + +% Protect against absurd options. +tol = max(tol,eps); +lanmax = min(lanmax,min(m,n)); +if size(p,1)~=m + error('p0 must be a vector of length m') +end + +lanmax = min(lanmax,min(m,n)); +if k>lanmax + error('K must satisfy K <= LANMAX <= MIN(M,N).'); +end + + + +%%%%%%%%%%%%%%%%%%%%% Here begins the computation %%%%%%%%%%%%%%%%%%%%%% + +if strcmp(sigma,'S') + if isstr(A) + error('Shift-and-invert works only when the matrix A is given explicitly.'); + else + % Prepare for shift-and-invert Lanczos. + if issparse(A) + pmmd = colmmd(A); + A.A = A(:,pmmd); + else + A.A = A; + end + if m>=n + if issparse(A.A) + A.R = qr(A.A,0); + A.Rt = A.R'; + p = A.Rt\(A.A'*p); % project starting vector on span(Q1) + else + [A.Q,A.R] = qr(A.A,0); + A.Rt = A.R'; + p = A.Q'*p; % project starting vector on span(Q1) + end + else + error('Sorry, shift-and-invert for m 1/eps + error(['A is rank deficient or too ill-conditioned to do shift-and-' ... + ' invert.']) + end + end +end + +ksave = k; +neig = 0; nrestart=-1; +j = min(k+max(8,k)+1,lanmax); +U = []; V = []; B = []; anorm = []; work = zeros(2,2); + +while neig < k + + %%%%%%%%%%%%%%%%%%%%% Compute Lanczos bidiagonalization %%%%%%%%%%%%%%%%% + if ~isstr(A) + [U,B,V,p,ierr,w] = lanbpro(A,j,p,options,U,B,V,anorm); + else + [U,B,V,p,ierr,w] = lanbpro(A,Atrans,m,n,j,p,options,U,B,V,anorm); + end + work= work + w; + + if ierr<0 % Invariant subspace of dimension -ierr found. + j = -ierr; + end + + %%%%%%%%%%%%%%%%%% Compute singular values and error bounds %%%%%%%%%%%%%%%% + % Analyze B + resnrm = norm(p); + % We might as well use the extra info. in p. + % S = svd(full([B;[zeros(1,j-1),resnrm]]),0); + % [P,S,Q] = svd(full([B;[zeros(1,j-1),resnrm]]),0); + % S = diag(S); + % bot = min(abs([P(end,1:j);Q(end,1:j)]))'; + + [S,bot] = bdsqr(diag(B),[diag(B,-1); resnrm]); + +% Use Largest Ritz value to estimate ||A||_2. This might save some + % reorth. in case of restart. + anorm=S(1); + + % Set simple error bounds + bnd = resnrm*abs(bot); + + % Examine gap structure and refine error bounds + bnd = refinebounds(S.^2,bnd,n*eps*anorm); + + %%%%%%%%%%%%%%%%%%% Check convergence criterion %%%%%%%%%%%%%%%%%%%% + i=1; + neig = 0; + while i<=min(j,k) + if (bnd(i) <= tol*abs(S(i))) + neig = neig + 1; + i = i+1; + else + i = min(j,k)+1; + end + end + + %%%%%%%%%% Check whether to stop or to extend the Krylov basis? %%%%%%%%%% + if ierr<0 % Invariant subspace found + if j=lanmax % Maximal dimension of Krylov subspace reached. Bail out + if j>=min(m,n) + neig = ksave; + break; + end + if neig0 + % increase j by approx. half the average number of steps pr. converged + % singular value (j/neig) times the number of remaining ones (k-neig). + j = j + min(100,max(2,0.5*(k-neig)*j/(neig+1))); + else + % As long a very few singular values have converged, increase j rapidly. + % j = j + ceil(min(100,max(8,2^nrestart*k))); + j = max(1.5*j,j+10); + end + j = ceil(min(j+1,lanmax)); + nrestart = nrestart + 1; +end + + + +%%%%%%%%%%%%%%%% Lanczos converged (or failed). Prepare output %%%%%%%%%%%%%%% +k = min(ksave,j); + +if nargout>2 + j = size(B,2); + % Compute singular vectors + [P,S,Q] = svd(full([B;[zeros(1,j-1),resnrm]]),0); + S = diag(S); + if size(Q,2)~=k + Q = Q(:,1:k); + P = P(:,1:k); + end + % Compute and normalize Ritz vectors (overwrites U and V to save memory). + if resnrm~=0 + U = U*P(1:j,:) + (p/resnrm)*P(j+1,:); + else + U = U*P(1:j,:); + end + V = V*Q; + for i=1:k + nq = norm(V(:,i)); + if isfinite(nq) & nq~=0 & nq~=1 + V(:,i) = V(:,i)/nq; + end + nq = norm(U(:,i)); + if isfinite(nq) & nq~=0 & nq~=1 + U(:,i) = U(:,i)/nq; + end + end +end + +% Pick out desired part the spectrum +S = S(1:k); +bnd = bnd(1:k); + +if strcmp(sigma,'S') + [S,p] = sort(-1./S); + S = -S; + bnd = bnd(p); + if nargout>2 + if issparse(A.A) + U = A.A*(A.R\U(:,p)); + V(pmmd,:) = V(:,p); + else + U = A.Q(:,1:min(m,n))*U(:,p); + V = V(:,p); + end + end +end + +if nargout<3 + U = S; + S = B; % Undocumented feature - for checking B. +else + S = diag(S); +end diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lansvd.txt b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lansvd.txt new file mode 100644 index 0000000..d3a73c8 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/lansvd.txt @@ -0,0 +1,58 @@ +LANSVD Compute a few singular values and singular vectors. + LANSVD computes singular triplets (u,v,sigma) such that + A*u = sigma*v and A'*v = sigma*u. Only a few singular values + and singular vectors are computed using the Lanczos + bidiagonalization algorithm with partial reorthogonalization (BPRO). + + S = LANSVD(A) + S = LANSVD('Afun','Atransfun',M,N) + + The first input argument is either a matrix or a + string containing the name of an M-file which applies a linear + operator to the columns of a given matrix. In the latter case, + the second input must be the name of an M-file which applies the + transpose of the same operator to the columns of a given matrix, + and the third and fourth arguments must be M and N, the dimensions + of the problem. + + [U,S,V] = LANSVD(A,K,'L',...) computes the K largest singular values. + + [U,S,V] = LANSVD(A,K,'S',...) computes the K smallest singular values. + + The full calling sequence is + + [U,S,V] = LANSVD(A,K,SIGMA,OPTIONS) + [U,S,V] = LANSVD('Afun','Atransfun',M,N,K,SIGMA,OPTIONS) + + where K is the number of singular values desired and + SIGMA is 'L' or 'S'. + + The OPTIONS structure specifies certain parameters in the algorithm. + Field name Parameter Default + + OPTIONS.tol Convergence tolerance 16*eps + OPTIONS.lanmax Dimension of the Lanczos basis. + OPTIONS.p0 Starting vector for the Lanczos rand(n,1)-0.5 + iteration. + OPTIONS.delta Level of orthogonality among the sqrt(eps/K) + Lanczos vectors. + OPTIONS.eta Level of orthogonality after 10*eps^(3/4) + reorthogonalization. + OPTIONS.cgs reorthogonalization method used 0 + '0' : iterated modified Gram-Schmidt + '1' : iterated classical Gram-Schmidt + OPTIONS.elr If equal to 1 then extended local 1 + reorthogonalization is enforced. + + See also LANBPRO, SVDS, SVD + + References: + R.M. Larsen, Ph.D. Thesis, Aarhus University, 1998. + + B. N. Parlett, ``The Symmetric Eigenvalue Problem'', + Prentice-Hall, Englewood Cliffs, NJ, 1980. + + H. D. Simon, ``The Lanczos algorithm with partial reorthogonalization'', + Math. Comp. 42 (1984), no. 165, 115--142. + + Rasmus Munk Larsen, DAIMI, 1998 diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/mminfo.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/mminfo.m new file mode 100644 index 0000000..b01157a --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/mminfo.m @@ -0,0 +1,108 @@ +function [rows, cols, entries, rep, field, symm] = mminfo(filename) +% +% function [rows, cols, entries, rep, field, symmetry] = mminfo(filename) +% +% Reads the contents of the Matrix Market file 'filename' +% and extracts size and storage information. +% +% In the case of coordinate matrices, entries refers to the +% number of coordinate entries stored in the file. The number +% of non-zero entries in the final matrix cannot be determined +% until the data is read (and symmetrized, if necessary). +% +% In the case of array matrices, entries is the product +% rows*cols, regardless of whether symmetry was used to +% store the matrix efficiently. +% +% + +mmfile = fopen(filename,'r'); +if ( mmfile == -1 ) + disp(filename); + error('File not found'); +end; + +header = fgets(mmfile); +if (header == -1 ) + error('Empty file.') +end + +% NOTE: If using a version of Matlab for which strtok is not +% defined, substitute 'gettok' for 'strtok' in the +% following lines, and download gettok.m from the +% Matrix Market site. +[head0,header] = strtok(header); % see note above +[head1,header] = strtok(header); +[rep,header] = strtok(header); +[field,header] = strtok(header); +[symm,header] = strtok(header); +head1 = lower(head1); +rep = lower(rep); +field = lower(field); +symm = lower(symm); +if ( length(symm) == 0 ) + disp('Not enough words in header line.') + disp('Recognized format: ') + disp('%%MatrixMarket matrix representation field symmetry') + error('Check header line.') +end +if ( ~ strcmp(head0,'%%MatrixMarket') ) + error('Not a valid MatrixMarket header.') +end +if ( ~ strcmp(head1,'matrix') ) + disp(['This seems to be a MatrixMarket ',head1,' file.']); + disp('This function only knows how to read MatrixMarket matrix files.'); + disp(' '); + error(' '); +end + +% Read through comments, ignoring them + +commentline = fgets(mmfile); +while length(commentline) > 0 & commentline(1) == '%', + commentline = fgets(mmfile); +end + +% Read size information, then branch according to +% sparse or dense format + +if ( strcmp(rep,'coordinate')) % read matrix given in sparse + % coordinate matrix format + + [sizeinfo,count] = sscanf(commentline,'%d%d%d'); + while ( count == 0 ) + commentline = fgets(mmfile); + if (commentline == -1 ) + error('End-of-file reached before size information was found.') + end + [sizeinfo,count] = sscanf(commentline,'%d%d%d'); + if ( count > 0 & count ~= 3 ) + error('Invalid size specification line.') + end + end + rows = sizeinfo(1); + cols = sizeinfo(2); + entries = sizeinfo(3); + +elseif ( strcmp(rep,'array') ) % read matrix given in dense + % array (column major) format + + [sizeinfo,count] = sscanf(commentline,'%d%d'); + while ( count == 0 ) + commentline = fgets(mmfile); + if (commentline == -1 ) + error('End-of-file reached before size information was found.') + end + [sizeinfo,count] = sscanf(commentline,'%d%d'); + if ( count > 0 & count ~= 2 ) + error('Invalid size specification line.') + end + end + rows = sizeinfo(1); + cols = sizeinfo(2); + entries = rows*cols; +end + +fclose(mmfile); +% Done. + diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/mmread.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/mmread.m new file mode 100644 index 0000000..ba1512f --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/mmread.m @@ -0,0 +1,222 @@ +function [A,rows,cols,entries,rep,field,symm] = mmread(filename) +% +% function [A] = mmread(filename) +% +% function [A,rows,cols,entries,rep,field,symm] = mmread(filename) +% +% Reads the contents of the Matrix Market file 'filename' +% into the matrix 'A'. 'A' will be either sparse or full, +% depending on the Matrix Market format indicated by +% 'coordinate' (coordinate sparse storage), or +% 'array' (dense array storage). The data will be duplicated +% as appropriate if symmetry is indicated in the header. +% +% Optionally, size information about the matrix can be +% obtained by using the return values rows, cols, and +% entries, where entries is the number of nonzero entries +% in the final matrix. Type information can also be retrieved +% using the optional return values rep (representation), field, +% and symm (symmetry). +% + +mmfile = fopen(filename,'r'); +if ( mmfile == -1 ) + disp(filename); + error('File not found'); +end; + +header = fgets(mmfile); +if (header == -1 ) + error('Empty file.') +end + +% NOTE: If using a version of Matlab for which strtok is not +% defined, substitute 'gettok' for 'strtok' in the +% following lines, and download gettok.m from the +% Matrix Market site. +[head0,header] = strtok(header); % see note above +[head1,header] = strtok(header); +[rep,header] = strtok(header); +[field,header] = strtok(header); +[symm,header] = strtok(header); +head1 = lower(head1); +rep = lower(rep); +field = lower(field); +symm = lower(symm); +if ( length(symm) == 0 ) + disp(['Not enough words in header line of file ',filename]) + disp('Recognized format: ') + disp('%%MatrixMarket matrix representation field symmetry') + error('Check header line.') +end +if ( ~ strcmp(head0,'%%MatrixMarket') ) + error('Not a valid MatrixMarket header.') +end +if ( ~ strcmp(head1,'matrix') ) + disp(['This seems to be a MatrixMarket ',head1,' file.']); + disp('This function only knows how to read MatrixMarket matrix files.'); + disp(' '); + error(' '); +end + +% Read through comments, ignoring them + +commentline = fgets(mmfile); +while length(commentline) > 0 & commentline(1) == '%', + commentline = fgets(mmfile); +end + +% Read size information, then branch according to +% sparse or dense format + +if ( strcmp(rep,'coordinate')) % read matrix given in sparse + % coordinate matrix format + + [sizeinfo,count] = sscanf(commentline,'%d%d%d'); + while ( count == 0 ) + commentline = fgets(mmfile); + if (commentline == -1 ) + error('End-of-file reached before size information was found.') + end + [sizeinfo,count] = sscanf(commentline,'%d%d%d'); + if ( count > 0 & count ~= 3 ) + error('Invalid size specification line.') + end + end + rows = sizeinfo(1); + cols = sizeinfo(2); + entries = sizeinfo(3); + + if ( strcmp(field,'real') ) % real valued entries: + + [T,count] = fscanf(mmfile,'%f',3); + T = [T; fscanf(mmfile,'%f')]; + if ( size(T) ~= 3*entries ) + message = ... + str2mat('Data file does not contain expected amount of data.',... + 'Check that number of data lines matches nonzero count.'); + disp(message); + error('Invalid data.'); + end + T = reshape(T,3,entries)'; + A = sparse(T(:,1), T(:,2), T(:,3), rows , cols); + + elseif ( strcmp(field,'complex')) % complex valued entries: + + T = fscanf(mmfile,'%f',4); + T = [T; fscanf(mmfile,'%f')]; + if ( size(T) ~= 4*entries ) + message = ... + str2mat('Data file does not contain expected amount of data.',... + 'Check that number of data lines matches nonzero count.'); + disp(message); + error('Invalid data.'); + end + T = reshape(T,4,entries)'; + A = sparse(T(:,1), T(:,2), T(:,3) + T(:,4)*sqrt(-1), rows , cols); + + elseif ( strcmp(field,'pattern')) % pattern matrix (no values given): + + T = fscanf(mmfile,'%f',2); + T = [T; fscanf(mmfile,'%f')]; + if ( size(T) ~= 2*entries ) + message = ... + str2mat('Data file does not contain expected amount of data.',... + 'Check that number of data lines matches nonzero count.'); + disp(message); + error('Invalid data.'); + end + T = reshape(T,2,entries)'; + A = sparse(T(:,1), T(:,2), ones(entries,1) , rows , cols); + + end + +elseif ( strcmp(rep,'array') ) % read matrix given in dense + % array (column major) format + + [sizeinfo,count] = sscanf(commentline,'%d%d'); + while ( count == 0 ) + commentline = fgets(mmfile); + if (commentline == -1 ) + error('End-of-file reached before size information was found.') + end + [sizeinfo,count] = sscanf(commentline,'%d%d'); + if ( count > 0 & count ~= 2 ) + error('Invalid size specification line.') + end + end + rows = sizeinfo(1); + cols = sizeinfo(2); + entries = rows*cols; + if ( strcmp(field,'real') ) % real valued entries: + A = fscanf(mmfile,'%f',1); + A = [A; fscanf(mmfile,'%f')]; + if ( strcmp(symm,'symmetric') | strcmp(symm,'hermitian') | strcmp(symm,'skew-symmetric') ) + for j=1:cols-1, + currenti = j*rows; + A = [A(1:currenti); zeros(j,1);A(currenti+1:length(A))]; + end + elseif ( ~ strcmp(symm,'general') ) + disp('Unrecognized symmetry') + disp(symm) + disp('Recognized choices:') + disp(' symmetric') + disp(' hermitian') + disp(' skew-symmetric') + disp(' general') + error('Check symmetry specification in header.'); + end + A = reshape(A,rows,cols); + elseif ( strcmp(field,'complex')) % complx valued entries: + tmpr = fscanf(mmfile,'%f',1); + tmpi = fscanf(mmfile,'%f',1); + A = tmpr+tmpi*i; + for j=1:entries-1 + tmpr = fscanf(mmfile,'%f',1); + tmpi = fscanf(mmfile,'%f',1); + A = [A; tmpr + tmpi*i]; + end + if ( strcmp(symm,'symmetric') | strcmp(symm,'hermitian') | strcmp(symm,'skew-symmetric') ) + for j=1:cols-1, + currenti = j*rows; + A = [A(1:currenti); zeros(j,1);A(currenti+1:length(A))]; + end + elseif ( ~ strcmp(symm,'general') ) + disp('Unrecognized symmetry') + disp(symm) + disp('Recognized choices:') + disp(' symmetric') + disp(' hermitian') + disp(' skew-symmetric') + disp(' general') + error('Check symmetry specification in header.'); + end + A = reshape(A,rows,cols); + elseif ( strcmp(field,'pattern')) % pattern (makes no sense for dense) + disp('Matrix type:',field) + error('Pattern matrix type invalid for array storage format.'); + else % Unknown matrix type + disp('Matrix type:',field) + error('Invalid matrix type specification. Check header against MM documentation.'); + end +end + +% +% If symmetric, skew-symmetric or Hermitian, duplicate lower +% triangular part and modify entries as appropriate: +% + +if ( strcmp(symm,'symmetric') ) + A = A + A.' - diag(diag(A)); + entries = nnz(A); +elseif ( strcmp(symm,'hermitian') ) + A = A + A' - diag(diag(A)); + entries = nnz(A); +elseif ( strcmp(symm,'skew-symmetric') ) + A = A - A'; + entries = nnz(A); +end + +fclose(mmfile); +% Done. + diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/mmwrite.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/mmwrite.m new file mode 100644 index 0000000..c68970d --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/mmwrite.m @@ -0,0 +1,274 @@ +function [ err ] = mmwrite(filename,A,comment,field,precision) +% +% Function: mmwrite(filename,A,comment,field,precision) +% +% Writes the sparse or dense matrix A to a Matrix Market (MM) +% formatted file. +% +% Required arguments: +% +% filename - destination file +% +% A - sparse or full matrix +% +% Optional arguments: +% +% comment - matrix of comments to prepend to +% the MM file. To build a comment matrix, +% use str2mat. For example: +% +% comment = str2mat(' Comment 1' ,... +% ' Comment 2',... +% ' and so on.',... +% ' to attach a date:',... +% [' ',date]); +% If ommitted, a single line date stamp comment +% will be included. +% +% field - 'real' +% 'complex' +% 'integer' +% 'pattern' +% If ommitted, data will determine type. +% +% precision - number of digits to display for real +% or complex values +% If ommitted, full working precision is used. +% + +if ( nargin == 5) + precision = 16; +elseif ( nargin == 4) + precision = 16; +elseif ( nargin == 3) + mattype = 'real'; % placeholder, will check after FIND-ing A + precision = 16; +elseif ( nargin == 2) + comment = ''; + % Check whether there is an imaginary part: + mattype = 'real'; % placeholder, will check after FIND-ing A + precision = 16; +end + +mmfile = fopen([filename],'w'); +if ( mmfile == -1 ) + error('Cannot open file for output'); +end; + + +[M,N] = size(A); + +%%%%%%%%%%%%% This part for sparse matrices %%%%%%%%%%%%%%%% +if ( issparse(A) ) + + [I,J,V] = find(A); + if ( sum(abs(imag(nonzeros(V)))) > 0 ) + Vreal = 0; + else + Vreal = 1; + end + + if ( ~ strcmp(mattype,'pattern') & Vreal ) + mattype = 'real'; + elseif ( ~ strcmp(mattype,'pattern') ) + mattype = 'complex'; + end +% +% Determine symmetry: +% + if ( M ~= N ) + symm = 'general'; + issymm = 0; + NZ = length(V); + else + issymm = 1; + NZ = length(V); + for i=1:NZ + if ( A(J(i),I(i)) ~= V(i) ) + issymm = 0; + break; + end + end + if ( issymm ) + symm = 'symmetric'; + ATEMP = tril(A); + [I,J,V] = find(ATEMP); + NZ = nnz(ATEMP); + else + isskew = 1; + for i=1:NZ + if ( A(J(i),I(i)) ~= - V(i) ) + isskew = 0; + break; + end + end + if ( isskew ) + symm = 'skew-symmetric'; + ATEMP = tril(A); + [I,J,V] = find(ATEMP); + NZ = nnz(ATEMP); + elseif ( strcmp(mattype,'complex') ) + isherm = 1; + for i=1:NZ + if ( A(J(i),I(i)) ~= conj(V(i)) ) + isherm = 0; + break; + end + end + if ( isherm ) + symm = 'hermitian'; + ATEMP = tril(A); + [I,J,V] = find(ATEMP); + NZ = nnz(ATEMP); + else + symm = 'general'; + NZ = nnz(A); + end + else + symm = 'general'; + NZ = nnz(A); + end + end + end + +% Sparse coordinate format: + + rep = 'coordinate'; + + + fprintf(mmfile,'%%%%MatrixMarket matrix %s %s %s\n',rep,mattype,symm); + [MC,NC] = size(comment); + if ( MC == 0 ) + fprintf(mmfile,'%% Generated %s\n',[date]); + else + for i=1:MC, + fprintf(mmfile,'%%%s\n',comment(i,:)); + end + end + fprintf(mmfile,'%d %d %d\n',M,N,NZ); + cplxformat = sprintf('%%d %%d %% .%dg %% .%dg\n',precision,precision); + realformat = sprintf('%%d %%d %% .%dg\n',precision); + if ( strcmp(mattype,'real') ) + for i=1:NZ + fprintf(mmfile,realformat,I(i),J(i),V(i)); + end; + elseif ( strcmp(mattype,'complex') ) + for i=1:NZ + fprintf(mmfile,cplxformat,I(i),J(i),real(V(i)),imag(V(i))); + end; + elseif ( strcmp(mattype,'pattern') ) + for i=1:NZ + fprintf(mmfile,'%d %d\n',I(i),J(i)); + end; + else + err = -1; + disp('Unsupported mattype:') + mattype + end; + +%%%%%%%%%%%%% This part for dense matrices %%%%%%%%%%%%%%%% +else + if ( sum(abs(imag(nonzeros(A)))) > 0 ) + Areal = 0; + else + Areal = 1; + end + if ( ~strcmp(mattype,'pattern') & Areal ) + mattype = 'real'; + elseif ( ~strcmp(mattype,'pattern') ) + mattype = 'complex'; + end +% +% Determine symmetry: +% + if ( M ~= N ) + issymm = 0; + symm = 'general'; + else + issymm = 1; + for j=1:N + for i=j+1:N + if (A(i,j) ~= A(j,i) ) + issymm = 0; + break; + end + end + if ( ~ issymm ) break; end + + end + if ( issymm ) + symm = 'symmetric'; + else + isskew = 1; + for j=1:N + for i=j+1:N + if (A(i,j) ~= - A(j,i) ) + isskew = 0; + break; + end + end + if ( ~ isskew ) break; end + end + if ( isskew ) + symm = 'skew-symmetric'; + elseif ( strcmp(mattype,'complex') ) + isherm = 1; + for j=1:N + for i=j+1:N + if (A(i,j) ~= conj(A(j,i)) ) + isherm = 0; + break; + end + end + if ( ~ isherm ) break; end + end + if ( isherm ) + symm = 'hermitian'; + else + symm = 'general'; + end + else + symm = 'general'; + end + end + end + +% Dense array format: + + rep = 'array'; + [MC,NC] = size(comment); + fprintf(mmfile,'%%%%MatrixMarket mtx %s %s %s\n',rep,mattype,symm); + for i=1:MC, + fprintf(mmfile,'%%%s\n',comment(i,:)); + end; + fprintf(mmfile,'%d %d\n',M,N); + cplxformat = sprintf('%% .%dg %% .%dg\n', precision,precision); + realformat = sprintf('%% .%dg\n', precision); + if ( ~ strcmp(symm,'general') ) + rowloop = 'j'; + else + rowloop = '1'; + end + if ( strcmp(mattype,'real') ) + for j=1:N + for i=eval(rowloop):M + fprintf(mmfile,realformat,A(i,j)); + end + end + elseif ( strcmp(mattype,'complex') ) + for j=1:N + for i=eval(rowloop):M + fprintf(mmfile,cplxformat,real(A(i,j)),imag(A(i,j))); + end + end + elseif ( strcmp(mattype,'pattern') ) + err = -2 + disp('Pattern type inconsistant with dense matrix') + else + err = -2 + disp('Unknown matrix type:') + mattype + end +end + +fclose(mmfile); diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/pythag.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/pythag.m new file mode 100644 index 0000000..80ce4bf --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/pythag.m @@ -0,0 +1,31 @@ +function x = pythag(y,z) +%PYTHAG Computes sqrt( y^2 + z^2 ). +% +% x = pythag(y,z) +% +% Returns sqrt(y^2 + z^2) but is careful to scale to avoid overflow. + +% Christian H. Bischof, Argonne National Laboratory, 03/31/89. + +[m n] = size(y); +if m>1 | n>1 + y = y(:); z=z(:); + rmax = max(abs([y';z']))'; + id=find(rmax==0); + if length(id)>0 + rmax(id) = 1; + x = rmax.*sqrt((y./rmax).^2 + (z./rmax).^2); + x(id)=0; + else + x = rmax.*sqrt((y./rmax).^2 + (z./rmax).^2); + end + x = reshape(x,m,n); +else + rmax = max(abs([y;z])); + if (rmax==0) + x = 0; + else + x = rmax*sqrt((y/rmax)^2 + (z/rmax)^2); + end +end + \ No newline at end of file diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/refinebounds.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/refinebounds.m new file mode 100644 index 0000000..003f9ce --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/refinebounds.m @@ -0,0 +1,41 @@ +function [bnd,gap] = refinebounds(D,bnd,tol1) +%REFINEBONDS Refines error bounds for Ritz values based on gap-structure +% +% bnd = refinebounds(lambda,bnd,tol1) +% +% Treat eigenvalues closer than tol1 as a cluster. + +% Rasmus Munk Larsen, DAIMI, 1998 + +j = length(D); + +if j<=1 + return +end +% Sort eigenvalues to use interlacing theorem correctly +[D,PERM] = sort(D); +bnd = bnd(PERM); + + +% Massage error bounds for very close Ritz values +eps34 = sqrt(eps*sqrt(eps)); +[y,mid] = max(bnd); +for l=[-1,1] + for i=((j+1)-l*(j-1))/2:l:mid-l + if abs(D(i+l)-D(i)) < eps34*abs(D(i)) + if bnd(i)>tol1 & bnd(i+l)>tol1 + bnd(i+l) = pythag(bnd(i),bnd(i+l)); + bnd(i) = 0; + end + end + end +end +% Refine error bounds +gap = inf*ones(1,j); +gap(1:j-1) = min([gap(1:j-1);[D(2:j)-bnd(2:j)-D(1:j-1)]']); +gap(2:j) = min([gap(2:j);[D(2:j)-D(1:j-1)-bnd(1:j-1)]']); +gap = gap(:); +I = find(gap>bnd); +bnd(I) = bnd(I).*(bnd(I)./gap(I)); + +bnd(PERM) = bnd; \ No newline at end of file diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/reorth.f b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/reorth.f new file mode 100644 index 0000000..e336ee0 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/reorth.f @@ -0,0 +1,116 @@ + subroutine reorth(n,k,V,ldv,vnew,normv,index,alpha,work, + c iflag,nre) +c +c FORTRAN 77 version of MATLAB routine REORTH: +c +c REORTH Reorthogonalize a vector using iterated Gram-Schmidt +c +c [R_NEW,NORMR_NEW,NRE] = reorth(Q,R,NORMR,INDEX,ALPHA,METHOD) +c reorthogonalizes R against the subset of columns of Q given by INDEX. +c If INDEX==[] then R is reorthogonalized all columns of Q. +c If the result R_NEW has a small norm, i.e. if norm(R_NEW) < ALPHA*NORMR, +c then a second reorthogonalization is performed. If the norm of R_NEW +c is once more decreased by more than a factor of ALPHA then R is +c numerically in span(Q(:,INDEX)) and a zero-vector is returned for R_NEW. +c +c If method==0 then iterated modified Gram-Schmidt is used. +c If method==1 then iterated classical Gram-Schmidt is used. +c +c The default value for ALPHA is 0.5. +c NRE is the number of reorthogonalizations performed (1 or 2). + +c References: +c Aake Bjorck, "Numerical Methods for Least Squares Problems", +c SIAM, Philadelphia, 1996, pp. 68-69. +c +c J.~W. Daniel, W.~B. Gragg, L. Kaufman and G.~W. Stewart, +c ``Reorthogonalization and Stable Algorithms Updating the +c Gram-Schmidt QR Factorization'', Math. Comp., 30 (1976), no. +c 136, pp. 772-795. +c +c B. N. Parlett, ``The Symmetric Eigenvalue Problem'', +c Prentice-Hall, Englewood Cliffs, NJ, 1980. pp. 105-109 + +c Rasmus Munk Larsen, DAIMI, 1998. + implicit none + integer n,k,ldv,i,iflag,nre + double precision V(ldv,*),vnew(*),normv,index(*),work(*) + double precision alpha,normv_old,dnrm2 + integer MAXTRY + parameter (MAXTRY=4) + external dgemv,dnrm2 + +c Hack: If index .ne. 1:k we do MGS to avoid reshuffling. + if (iflag.eq.1) then + do i=1,k + if (int(index(i)).ne.i) then + iflag=0 + goto 100 + endif + enddo + endif + 100 normv_old = 0 + nre = 0 + normv = dnrm2(n,vnew,1) + do while ((normv.lt.alpha*normv_old .or. nre.eq.0)) + if (iflag.eq.1) then +c CGS: + call dgemv('T',n,k,1D0,V,ldv,vnew,1,0D0,work,1) + call dgemv('N',n,k,-1D0,V,ldv,work,1,1D0,vnew,1) + else +c MGS: + call MGS(n,k,V,ldv,vnew,index) + endif + normv_old = normv + normv = dnrm2(n,vnew,1) + nre = nre + 1 + + if ( nre.gt.MAXTRY ) then +c +c vnew is numerically in span(V) => return vnew = (0,0,...,0)^T + normv = 0d0 + do i=1,n + vnew(i) = 0d0 + enddo + return + endif + enddo + end +c +c**************************************************************************** +c + + subroutine MGS(n,k,V,ldv,vnew,index) + implicit none + integer n,k,ldv + double precision V(ldv,*),vnew(*),index(*) + integer i,j,idx + double precision s + +c +c Modified Gram-Schmidt orthogonalization: +c Orthogalizes vnew against the k vectors in V by the +c iterative process +c +c FOR i=1...k DO +c vnew = vnew - DOT( V(:,i), vnew ) * V(:,i) +c + +c This simple version is faster on Pentium machines. +c Compile with "g77 -O6 -funroll-all-loops -fomit-frame-pointer" + + do i=1,k + idx = int(index(i)) + s = 0 + do j=1,n + s = s + V(j,idx)*vnew(j) + enddo + do j=1,n + vnew(j) = vnew(j) - s*V(j,idx) + enddo + enddo + end +c +c**************************************************************************** +c + diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/reorth.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/reorth.m new file mode 100644 index 0000000..5061bad --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/reorth.m @@ -0,0 +1,102 @@ +function [r,normr,nre,s] = reorth(Q,r,normr,index,alpha,method) + +%REORTH Reorthogonalize a vector using iterated Gram-Schmidt +% +% [R_NEW,NORMR_NEW,NRE] = reorth(Q,R,NORMR,INDEX,ALPHA,METHOD) +% reorthogonalizes R against the subset of columns of Q given by INDEX. +% If INDEX==[] then R is reorthogonalized all columns of Q. +% If the result R_NEW has a small norm, i.e. if norm(R_NEW) < ALPHA*NORMR, +% then a second reorthogonalization is performed. If the norm of R_NEW +% is once more decreased by more than a factor of ALPHA then R is +% numerically in span(Q(:,INDEX)) and a zero-vector is returned for R_NEW. +% +% If method==0 then iterated modified Gram-Schmidt is used. +% If method==1 then iterated classical Gram-Schmidt is used. +% +% The default value for ALPHA is 0.5. +% NRE is the number of reorthogonalizations performed (1 or 2). + +% References: +% Aake Bjorck, "Numerical Methods for Least Squares Problems", +% SIAM, Philadelphia, 1996, pp. 68-69. +% +% J.~W. Daniel, W.~B. Gragg, L. Kaufman and G.~W. Stewart, +% ``Reorthogonalization and Stable Algorithms Updating the +% Gram-Schmidt QR Factorization'', Math. Comp., 30 (1976), no. +% 136, pp. 772-795. +% +% B. N. Parlett, ``The Symmetric Eigenvalue Problem'', +% Prentice-Hall, Englewood Cliffs, NJ, 1980. pp. 105-109 + +% Rasmus Munk Larsen, DAIMI, 1998. + +% Check input arguments. +% warning('PROPACK:NotUsingMex','Using slow matlab code for reorth.') +if nargin<2 + error('Not enough input arguments.') +end +[n k1] = size(Q); +if nargin<3 | isempty(normr) +% normr = norm(r); + normr = sqrt(r'*r); +end +if nargin<4 | isempty(index) + k=k1; + index = [1:k]'; + simple = 1; +else + k = length(index); + if k==k1 & index(:)==[1:k]' + simple = 1; + else + simple = 0; + end +end +if nargin<5 | isempty(alpha) + alpha=0.5; % This choice garanties that + % || Q^T*r_new - e_{k+1} ||_2 <= 2*eps*||r_new||_2, + % cf. Kahans ``twice is enough'' statement proved in + % Parletts book. +end +if nargin<6 | isempty(method) + method = 0; +end +if k==0 | n==0 + return +end +if nargout>3 + s = zeros(k,1); +end + + +normr_old = 0; +nre = 0; +while normr < alpha*normr_old | nre==0 + if method==1 + if simple + t = Q'*r; + r = r - Q*t; + else + t = Q(:,index)'*r; + r = r - Q(:,index)*t; + end + else + for i=index, + t = Q(:,i)'*r; + r = r - Q(:,i)*t; + end + end + if nargout>3 + s = s + t; + end + normr_old = normr; +% normr = norm(r); + normr = sqrt(r'*r); + nre = nre + 1; + if nre > 4 + % r is in span(Q) to full accuracy => accept r = 0 as the new vector. + r = zeros(n,1); + normr = 0; + return + end +end diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/reorth.mexglx b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/reorth.mexglx new file mode 100644 index 0000000000000000000000000000000000000000..8ca4c63928092bd4a907c81d807c03610145212b GIT binary patch literal 9640 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 Z|5y8`gQ|a1Kt0Ra%Q literal 0 HcmV?d00001 diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/reorth.mexsg b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/reorth.mexsg new file mode 100644 index 0000000000000000000000000000000000000000..cd3513cbc53ddbe4491021f4fadec15e586d3c33 GIT binary patch literal 25428 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 UtRA0VKIdk+Y7LrJWl@&@FDVrlBLDyZ literal 0 HcmV?d00001 diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/reorth.mexsg64 b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/reorth.mexsg64 new file mode 100644 index 0000000000000000000000000000000000000000..9f4f6a0cac39e11504bbdeec32ad61ed7ac94cd1 GIT binary patch literal 26694 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 +#include "mex.h" + +/* Template for reorth: */ + +void reorth_(int *n, int *k, double *V, int *ldv, double *vnew, + double *normvnew, double *index, double *alpha, double *work, + int *iflag, int *nre); + +/* Here comes the gateway function to be called by Matlab: */ +void mexFunction(int nlhs, mxArray *plhs[], + int nrhs, const mxArray *prhs[]) +{ + int n, k1, k, imethod, inre; + double *work; + + if (nrhs != 6) + mexErrMsgTxt("reorth requires 6 input arguments"); + else if (nlhs < 2) + mexErrMsgTxt("reorth requires at least 2 output arguments"); + + n = mxGetM(prhs[0]); /* get the dimensions of the input */ + k1 = mxGetN(prhs[0]); + k = mxGetM(prhs[3]) * mxGetN(prhs[3]); + + /* Create/allocate return argument, a 1x1 real-valued Matrix */ + plhs[0]=mxCreateDoubleMatrix(n,1,mxREAL); + plhs[1]=mxCreateDoubleMatrix(1,1,mxREAL); + if (nlhs>2) + plhs[2]=mxCreateDoubleMatrix(1,1,mxREAL); + + work = mxCalloc(k,sizeof(double)); + + memcpy(mxGetPr(plhs[0]),mxGetPr(prhs[1]), n*sizeof(double)); + memcpy(mxGetPr(plhs[1]),mxGetPr(prhs[2]), sizeof(double)); + imethod = (int) mxGetScalar(prhs[5]); + + reorth_(&n, &k, mxGetPr(prhs[0]), &n, mxGetPr(plhs[0]), + mxGetPr(plhs[1]), mxGetPr(prhs[3]), mxGetPr(prhs[4]), + work,&imethod,&inre); + if (nlhs>2) + *(mxGetPr(plhs[2])) = (double) inre*k; + + mxFree(work); +} + + + diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/test.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/test.m new file mode 100644 index 0000000..bb0f371 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/test.m @@ -0,0 +1,327 @@ +% Script for testing singular values computed using LANSVD, LANEIG and +% EIGS. + +% Rasmus Munk Larsen, DAIMI, 1998. +global MxV MU MUTRUE NU NUTRUE +MU=[]; +MUTRUE=[]; +NU=[]; +NUTRUE=[]; +rand('state',0); +setup = 1; % set setup=1 to set up testproblem. +k=10; % Number of singular values to compute +HB_dir = 'Harwell-Boeing'; + +% TESTPROBLEMS. Uncomment the relevant line to select a problem. +%=============================================================== +% NAME DIMENSIONS +%=============================================================== + +% Discrete 1. order derivative matrix: +%problem = 'derivative';% 500 x 501 + +% Discrete 2. order derivative matrix. (symmetric) +%problem = 'laplace'; % 500 x 500 + +% Test problem from helioseismology. +%problem='helio212a'; % 212 x 100 +%problem='helio212b'; % 212 x 100 + +% Harwell-Boeing testmatrices: +%problem='abb313'; % 313 x 175 +%problem='west0479'; % 479 x 479 +%problem='rbs480a'; % 480 x 480 +%problem='illc1850'; % 1850 x 712 +%problem='qh1484'; % 1484 x 1484 +problem='mhd4800a'; % 4800 x 4800 +%problem='cry10000'; % 10000 x 10000 +%problem='fidap011'; % 16614 x 16614 +%problem='af23560'; % 23560 x 23560 +%problem='bcsstk32'; % 44609 x 44609 +%problem='s3dkt3m2'; % 90449 x 90449 + +global A C +format compact + +if setup==1, + A=[]; C=[]; Sigma=[]; + switch problem + case 'derivative' + m = 500; n=m+1; + e = ones(n,1); + A = spdiags([e -e], 0:1, n-1, n); + Sigma = -sort(-2*cos(pi/2*[m:-1:1]'./(m+1))); + Sigma1 = svd(full(A)); + case 'laplace' + m = 100; n=m; + e = ones(n,1); + A = spdiags([-e 2*e -e], -1:1, n, n); + Sigma = -sort(-4*cos(pi/2*[n:-1:1]'./(n+1)).^2); + Sigma1 = svd(full(A)); + case 'helio212a' + load 'helio.mat' + [m n] = size(A); + [U,Sigma,V] = svd(full(A)); + x = rand(m,1); x = x/norm(x); + [dummy,P1] = sort(x); + y = rand(n,1); y = y/norm(y); + [dummy,P2] = sort(y); + A = sparse(Sigma); + A = A(P1,P2); % Permute rows and columns randomly. + Sigma = diag(Sigma); + % shift = eps*min(Sigma); + shift = 0; + % Add a small perturbation to try hide that A is just + % a permuted diagonal and see if we can fool SVD into doing full + % reduction to bidiagonal form. + if shift~=0 + A = A + shift*(x*y'); + Sigma = Sigma+shift; + end + Sigma1 = svd(full(A)); + case 'helio212b' + load 'helio.mat' + [U,Sigma,V] = svd(full(A)); + A = U * Sigma *V'; + Sigma = diag(Sigma); + Sigma1 = svd(full(A)); + case 'diag' + m = 200; n=100; +% Sigma = logspace(0,-0.1,n); + Sigma = [n:-1:1]'; + Sigma(1) = 1000; + A = [spdiags(Sigma(:),0,n,n); sparse(m-n,n)]; + otherwise + cur = pwd; + cd(HB_dir) + file = [problem,'.mtx']; + [A,m,n,nz] = mmread(file); + cd(cur) + A = sparse(A); + if min(m,n)^2*max(m,n) < 300^3 + Sigma = svd(full(A)); + end + end + [m n] = size(A); + fprintf('nnz(A) = %i\n',nnz(A)); + C = sparse([[sparse(m,m),A];[A',sparse(n,n)]]); +end + +%%% Print information about matrix %%% +clc; +disp('************** PROPACK TEST ****************') +fprintf('The testmatrix %s is %i-by-%i and has %i non-zero elements.\n', ... + problem,m,n,nnz(A)); +if issparse(A) + fprintf('Here is what the sparsity pattern of the matrix looks like... \n(press a key to continue)\n') + spy(A) + title(problem) + pause +hold off +end +fprintf('Calculating %i singular triplets of the matrix.\n',k) + + +if max(m,n) < 300 +%%%%%%%%%%%%%%%%%%%% SVD %%%%%%%%%%%%%%%%%%%%%%%%%% +fprintf('-------------------------------------------------------------------\n') +fprintf('\n') +fprintf('METHOD = SVD\n') +fprintf('\n') + + +flops(0);tic; +[U,S,V] = svd(full(A),0); +Sigma=diag(S); +fprintf('Elapsed time = %f\n',toc); +fprintf('Number of flops = %e\n',flops); +fprintf('Residual norm = %e\n',norm(A*V - U*S,'fro')/norm(A,'fro')); +fprintf('Orthogonality U = %e\n',norm(eye(n) - U'*U,'fro')) +fprintf('Orthogonality V = %e\n',norm(eye(n) - V'*V,'fro')) +end + + +%%%%%%%%%%%%%%%%%%%% LANSVD %%%%%%%%%%%%%%%%%%%%%%%%%% +fprintf('-------------------------------------------------------------------\n') +fprintf('\n') +fprintf('METHOD = LANSVD\n') +fprintf('\n') + +options = []; +v0 = rand(m,1)-0.5; +options.p0 = v0; + +MxV = 0;flops(0);tic; +[U1,S1,V1] = lansvd('Afunc','Atransfunc',m,n,k,'L',options); +fprintf('Number MxV = %f\n',MxV); +fprintf('Elapsed time = %f\n',toc); +fprintf('Number of flops = %e\n',flops); +fprintf('Residual norm = %e\n',norm(A*V1 - U1*S1,'fro')/norm(A,'fro')); +fprintf('Orthogonality U = %e\n',norm(eye(k) - U1'*U1,'fro')) +fprintf('Orthogonality V = %e\n',norm(eye(k) - V1'*V1,'fro')) + +if ~isempty(Sigma) + % Compare with "true" singular values + S1 = diag(S1); + l= length(S1); + E1 = abs((S1 - Sigma(1:l))./Sigma(1:l)); + fprintf('Max rel. error = %g\n',max(E1)) + fprintf('Mean rel. error = %g\n',mean(E1)) + if exist('Sigma1') & ~isempty(Sigma1) + semilogy(abs((Sigma1(1:l) - Sigma(1:l))./Sigma(1:l)),'+'); + hold on + end + semilogy(E1,'o'); + hold off + ylabel('Relative error |\theta_i - \sigma_i| / \sigma_i') + xlabel('i') +end + +%%%%%%%%%%%%%%%%%%%% LANEIG(A'*A) %%%%%%%%%%%%%%%%%%%%%%%%%% +fprintf('-------------------------------------------------------------------\n') +fprintf('\n') +fprintf('METHOD = LANEIG(A''*A)\n') +fprintf('\n') +options=[]; +options.v0 = A'*v0; + + +flops(0);MxV=0; tic; +%S = laneig(C,k,'AL',options); +[V3,S3,b3] = laneig('AtAfunc',n,k,'AL',options); +U3 = A*V3; +for i=1:k + U3(:,i) = U3(:,i)/norm(U3(:,i)); +end + +fprintf('Number MxV = %f\n',MxV); +fprintf('Elapsed time = %f\n',toc); +fprintf('Number of flops = %e\n',flops); +fprintf('Residual norm = %e\n',norm(A'*(A*V3) - V3*S3,'fro')/norm(A'*A,'fro')); +fprintf('Orthogonality U = %e\n',norm(eye(k) - U3'*U3,'fro')) +fprintf('Orthogonality V = %e\n',norm(eye(k) - V3'*V3,'fro')) +S3 = diag(sqrt(diag(S3))); + +if ~isempty(Sigma) + S3 = diag(S3); + l= length(S3); + % Compare with "true" singular values + E3 = abs((S3 - Sigma(1:l))./Sigma(1:l)); + fprintf('Max rel. error = %g\n',max(E3)) + fprintf('Mean rel. error = %g\n',mean(E3)) + hold on + semilogy(E3,'d'); + hold off +end + +%%%%%%%%%%%%%%%%%%%% LANEIG(C) %%%%%%%%%%%%%%%%%%%%%%%%%% +fprintf('-------------------------------------------------------------------\n') +fprintf('\n') +fprintf('METHOD = LANEIG(C)\n') +fprintf('\n') +options.v0 = [v0;zeros(n,1)]; + +tic; flops(0);MxV=0; +%S = laneig(C,k,'AL',options); +[V2,S2] = laneig('Cfunc',m+n,k,'AL',options); +U2= sqrt(2)*V2(1:m,:); +V2= sqrt(2)*V2(m+1:end,:); +fprintf('Number MxV = %f\n',MxV); +fprintf('Elapsed time = %f\n',toc); +fprintf('Number of flops = %e\n',flops); +fprintf('Residual norm = %e\n',norm(A*V2 - U2*S2,'fro')/norm(A,'fro')); +fprintf('Orthogonality U = %e\n',norm(eye(k) - U2'*U2,'fro')) +fprintf('Orthogonality V = %e\n',norm(eye(k) - V2'*V2,'fro')) + + +if ~isempty(Sigma) + S2 = diag(S2); + l= length(S2); + % Compare with "true" singular values + E2 = abs((S2 - Sigma(1:l))./Sigma(1:l)); + fprintf('Max rel. error = %g\n',max(E2)) + fprintf('Mean rel. error = %g\n',mean(E2)) + hold on + semilogy(E2,'x'); + hold off + legend('SVD','BPRO','PRO(A''*A)','PRO(C)',2) +end + + +%%%%%%%%%%%%%%%%%%%% EIGS %%%%%%%%%%%%%%%%%%%%%%%% +% Try ARPACK based eigs routine: +fprintf('\n') +fprintf('-------------------------------------------------------------------\n') +fprintf('METHOD = EIGS(C)\n') +fprintf('\n') + +options =[]; +options.disp=0; +options.issym = 1; +options.v0 = [v0;zeros(n,1)]; + +tic; flops(0);MxV=0; +[V4,S4] = eigs('Cfunc',m+n,k,'LR',options); +U4= sqrt(2)*V4(1:m,:); +V4= sqrt(2)*V4(m+1:end,:); +fprintf('Number MxV = %f\n',MxV); +fprintf('Elapsed time = %f\n',toc); +fprintf('Number of flops = %e\n',flops); +fprintf('Residual norm = %e\n',norm(A*V4 - U4*S4,'fro')/norm(A,'fro')); +fprintf('Orthogonality U = %e\n',norm(eye(k) - U4'*U4,'fro')) +fprintf('Orthogonality V = %e\n',norm(eye(k) - V4'*V4,'fro')) + +if ~isempty(Sigma) + % Compare with "true" singular values + S4 = diag(S4); + l= length(S4); + E4 = abs((S4 - Sigma(1:l))./Sigma(1:l)); + fprintf('Max rel. error = %g\n',max(E4)) + fprintf('Mean rel. error = %g\n',mean(E4)) + hold on + semilogy(E4,'*'); + hold off + legend('SVD','BPRO','PRO(A''*A)','PRO(C)','EIGS',2) +end + + + +%%%%%%%%%%%%%%%%%%%% EIGS %%%%%%%%%%%%%%%%%%%%%%%% +% Try ARPACK based eigs routine: +fprintf('-------------------------------------------------------------------\n') +fprintf('\n') +fprintf('METHOD = EIGS(A''*A)\n') +fprintf('\n') + +options =[]; +options.disp=0; +options.issym = 1; +options.v0 = A'*v0; + +tic; flops(0); MxV=0; +[V5,S5] = eigs('AtAfunc',n,k,'LR',options); +U5 = A*V5; +for i=1:k + U5(:,i) = U5(:,i)/norm(U5(:,i)); +end +fprintf('Number MxV = %f\n',MxV); +fprintf('Elapsed time = %f\n',toc); +fprintf('Number of flops = %e\n',flops); +fprintf('Residual norm = %e\n',norm(A'*(A*V5) - V5*S5,'fro')/norm(A'*A,'fro')); +fprintf('Orthogonality U = %e\n',norm(eye(k) - U5'*U5,'fro')) +fprintf('Orthogonality V = %e\n',norm(eye(k) - V5'*V5,'fro')) +S5 = diag(sqrt(diag(S5))); + +if ~isempty(Sigma) + % Compare with "true" singular values + S5 = diag(S5); + l= length(S5); + E5 = abs((S5 - Sigma(1:l))./Sigma(1:l)); + fprintf('Max rel. error = %e\n',max(E5)) + fprintf('Mean rel. error = %e\n',mean(E5)) + hold on + semilogy(E5,'^'); + hold off + title('Accuracy of \sigma_i compared with output from the svd command.') + legend('BPRO','PRO(A''*A)','PRO(C)','EIGS(C)','EIGS(A''*A)',2) +end diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/testtqlb.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/testtqlb.m new file mode 100644 index 0000000..de0ce74 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/testtqlb.m @@ -0,0 +1,55 @@ +% Script for comparing speed an accuracy of original TQLB, optimized TQLB +% and builtin EIG command. + +% Rasmus Munk Larsen, DAIMI, 1998. + +n=1000; + +% Use 2. order difference matrix as testproblem. +e = ones(n,1); +T = spdiags([-e 2*e -e], -1:1, n, n); +true = 4*cos(pi/2*[n:-1:1]'./(n+1)).^2; +alpha = 2*ones(n,1); +beta = -ones(n,1); + +fprintf('-----------------------------------------------------------------\n') +disp('Modified tqlb:') +fprintf('\n') +tic, flops(0) +[lambda,top,bot,err] = tqlb(alpha,beta); +fprintf('Elapsed time = %f\n',toc); +fprintf('Number of flops = %f\n',flops); +fprintf('Max rel. error = %e\n',max(abs((lambda-true)./true))) + + +fprintf('-----------------------------------------------------------------\n') +disp('Original tqlb:') +fprintf('\n') +tic, flops(0); +[lambda2,top,bot,err2] = tqlb_orig(alpha,beta); +fprintf('Elapsed time = %f\n',toc); +fprintf('Number of flops = %f\n',flops); +fprintf('Max rel. error = %e\n',max(abs((lambda2-true)./true))) + + +fprintf('-----------------------------------------------------------------\n') +disp('eig:') +fprintf('\n') +tic, flops(0); +lambda1 = eig(T); +lambda1 =sort(lambda1); +fprintf('Elapsed time = %f\n',toc); +fprintf('Number of flops = %f\n',flops); +fprintf('Max rel. error = %e\n',max(abs((lambda1-true)./true))) + +fprintf('-----------------------------------------------------------------\n') +disp('eig:') +fprintf('\n') +tic, flops(0); +lambda1 = eig(full(T)); +lambda1 =sort(lambda1); +fprintf('Elapsed time = %f\n',toc); +fprintf('Number of flops = %f\n',flops); +fprintf('Max rel. error = %e\n',max(abs((lambda1-true)./true))) + + diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb.f b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb.f new file mode 100644 index 0000000..ef802f8 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb.f @@ -0,0 +1,176 @@ +C +C @(#)TQLB.F 1.1 (BNP) 5/9/89 +C + SUBROUTINE TQLB(N,D,E,BND,BND2,IERR) +C + INTEGER I,J,L,M,N,II,L1,L2,MML,IERR + DOUBLE PRECISION D(N),E(N),BND(N),BND2(N) + DOUBLE PRECISION C,C2,C3,DL1,EL1,F,G,H,H1,P,R,S,S2,TST1,TST2 +C +C THIS SUBROUTINE IS A MODIFICATION OF THE ALGOL PROCEDURE TQL1, +C NUM. MATH. 11, 293-306(1968) BY BOWDLER, MARTIN, REINSCH, AND +C WILKINSON. +C HANDBOOK FOR AUTO. COMP., VOL.II-LINEAR ALGEBRA, 227-240(1971). +C +C THIS SUBROUTINE FINDS THE EIGENVALUES OF A SYMMETRIC +C TRIDIAGONAL MATRIX BY THE QL METHOD. +C +C ON INPUT +C +C N IS THE ORDER OF THE MATRIX. +C +C D CONTAINS THE DIAGONAL ELEMENTS OF THE INPUT MATRIX. +C +C E CONTAINS THE SUBDIAGONAL ELEMENTS OF THE INPUT MATRIX +C IN ITS LAST N-1 POSITIONS. E(1) IS ARBITRARY. +C +C ON OUTPUT +C +C D CONTAINS THE EIGENVALUES IN ASCENDING ORDER. IF AN +C ERROR EXIT IS MADE, THE EIGENVALUES ARE CORRECT AND +C ORDERED FOR INDICES 1,2,...IERR-1, BUT MAY NOT BE +C THE SMALLEST EIGENVALUES. +C +C E HAS BEEN DESTROYED. +C +C BND WILL HOLD THE TOP ELEMENTS OF THE NORMALIZED EIGENVECTORS. +C +C IERR IS SET TO +C ZERO FOR NORMAL RETURN, +C J IF THE J-TH EIGENVALUE HAS NOT BEEN +C DETERMINED AFTER 30 ITERATIONS. +C +C calls to PYTHAG for SQRT(A*A + B*B) have been replaced by inline code. +C +C QUESTIONS AND COMMENTS SHOULD BE DIRECTED TO BURTON S. GARBOW, +C MATHEMATICS AND COMPUTER SCIENCE DIV, ARGONNE NATIONAL LABORATORY +C +C THIS VERSION DATED AUGUST 1983 (AUGUST 1998). +C +C ------------------------------------------------------------------ +C + IERR = 0 + BND(1) = 1.0D0 + IF (N .EQ. 1) GO TO 1001 + BND2(N) = 1.0D0 +C + DO 100 I = 2, N + BND(I) = 0.0D0 + BND2(I-1) = 0.0D0 + 100 E(I-1) = E(I) +C + F = 0.0D0 + TST1 = 0.0D0 + E(N) = 0.0D0 +C + DO 290 L = 1, N + J = 0 + H = ABS(D(L)) + ABS(E(L)) + IF (TST1 .LT. H) TST1 = H +C .......... LOOK FOR SMALL SUB-DIAGONAL ELEMENT .......... + DO 110 M = L, N + TST2 = TST1 + ABS(E(M)) + IF (TST2 .EQ. TST1) GO TO 120 +C .......... E(N) IS ALWAYS ZERO, SO THERE IS NO EXIT +C THROUGH THE BOTTOM OF THE LOOP .......... + 110 CONTINUE +C + 120 IF (M .EQ. L) GO TO 210 + 130 IF (J .EQ. 30) GO TO 1000 + J = J + 1 +C .......... FORM SHIFT .......... + L1 = L + 1 + L2 = L1 + 1 + G = D(L) + P = (D(L1) - G) / (2.0D0 * E(L)) + if (abs(p).le.1.0e0) then + p = p + sign(sqrt(1.0e0 + p*p),p) + else + p = p * (1.0e0 + sqrt(1.0e0 + (1.0e0/p)**2)) + endif + d(l) = e(l) / p + d(l1) = e(l) * p +c********** Original code: ******************** +c R = PYTHAG(P,1.0D0) +c D(L) = E(L) / (P + SIGN(R,P)) +c D(L1) = E(L) * (P + SIGN(R,P)) +c********************************************* + DL1 = D(L1) + H = G - D(L) + IF (L2 .GT. N) GO TO 145 +C + DO 140 I = L2, N + 140 D(I) = D(I) - H +C + 145 F = F + H +C .......... QL TRANSFORMATION .......... + P = D(M) + C = 1.0D0 + C2 = C + EL1 = E(L1) + S = 0.0D0 + MML = M - L +C .......... FOR I=M-1 STEP -1 UNTIL L DO -- .......... + DO 200 II = 1, MML + C3 = C2 + C2 = C + S2 = S + I = M - II + G = C * E(I) + H = C * P +c inlined call to PYTHAG. This code corresponds to LAPACK rutine DLAPY2. +c Speeds tqlb up by a factor of 3 on MIPS R10000. + IF(DABS(P).GE.DABS(E(I))) then + S=E(I)/P + R=SQRT(1D0+S*S) + E(I+1)=S2*P*R + C=1D0/R + S=S*C + else + C=P/E(I) + R=SQRT(1D0+C*C) + E(I+1)=S2*E(I)*R + S=1D0/R + C=C*S + endif + P = C * D(I) - S * G + D(I+1) = H + S * (C * G + S * D(I)) + H = BND(I+1) + BND(I+1) = S*BND(I)+C*H + BND(I) = C*BND(I)-S*H + H = BND2(I+1) + BND2(I+1) = S*BND2(I)+C*H + BND2(I) = C*BND2(I)-S*H + 200 CONTINUE +C + P = -S * S2 * C3 * EL1 * E(L) / DL1 + E(L) = S * P + D(L) = C * P + TST2 = TST1 + ABS(E(L)) + IF (TST2 .GT. TST1) GO TO 130 + 210 P = D(L) + F + H = BND(L) + H1 = BND2(L) +C .......... ORDER EIGENVALUES .......... + IF (L .EQ. 1) GO TO 250 +C .......... FOR I=L STEP -1 UNTIL 2 DO -- .......... + DO 230 II = 2, L + I = L + 2 - II + IF (P .GE. D(I-1)) GO TO 270 + D(I) = D(I-1) + BND(I) = BND(I-1) + BND2(I) = BND2(I-1) + 230 CONTINUE +C + 250 I = 1 + 270 D(I) = P + BND(I) = H + BND2(I)= H1 + 290 CONTINUE +C + GO TO 1001 +C .......... SET ERROR -- NO CONVERGENCE TO AN +C EIGENVALUE AFTER 30 ITERATIONS .......... + 1000 IERR = L + 1001 RETURN + END diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb.m new file mode 100644 index 0000000..b8b1630 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb.m @@ -0,0 +1,35 @@ +function [lambda,top,bot,err] = tqlb(alpha,beta) + +% TQLB: Compute eigenvalues and top and bottom elements of +% eigenvectors of a symmetric tridiagonal matrix T. +% +% [lambda,top,bot,err] = tqlb(alpha,beta) +% +% Input parameters: +% alpha(1:n) : Diagonal elements. +% beta(2:n) : Off-diagonal elements. +% Output parameters: +% lambda(1:n) : Computed eigenvalues. +% top(1:n) : Top elements in eigenvectors. +% bot(1:n) : Bottom elements in eigenvectors. +% err : dummy argument. + + +% Rasmus Munk Larsen, DAIMI, 1998 + + +% +% This is a slow Matlab substitute for the +% TQLB MEX-file. +% + +warning('PROPACK:NotUsingMex','Using slow matlab code for tqlb.') +n = length(alpha); +T = spdiags([[beta(2:n);0] alpha(1:n) beta(1:n)],-1:1,n,n); + +[V,lambda] = eig(full(T)); lambda = diag(lambda); +bot = V(end,:)'; +top = V(1,:)'; +err=0; + + diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb.mexglx b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb.mexglx new file mode 100644 index 0000000000000000000000000000000000000000..5eb6fd8b5743576c260e60b43e1eb0b55e1fa709 GIT binary patch literal 9515 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 Rlxcq$>6%Yb_}t`7`ro#Y_=o@i literal 0 HcmV?d00001 diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb.mexsg64 b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb.mexsg64 new file mode 100644 index 0000000000000000000000000000000000000000..9d9717b14bb1f8cdb779f6ffc5febd92dafe1cd7 GIT binary patch literal 27536 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%0DLQ)$ z`)m)|(aN4L+-Z!=4k0!`N7vT4b*=S#y7o?8*J_^EE3N|eEAPWc)-gU!&-2 zRv&7)qqCC@{BRJx{N7Hf<`{}FYV)2uEqU)?e3K{U)aYAFw5tWwgAib%&`h@;H9m` z`I)WQd#k(w+J`SS80Y;b4CAFz$Q!T^et6*zGo{#%UBJ)3{#`WAraa?3$9nLx3$qk2 z&fRf<{A{Lq!I^Sq3UO!(aS40o

5T;{7;c``8p>8e&Ju6yn=cSObXRqq=tB1)LXN zoEs}%c@i-f@egM}g**eMDc&8|1P(J48wKAl`18cSVSngr>T&e>7}Mb6zdZFA#({Z4 zd5q==E17LZJjNMv-dB2T4CjVNEfvokFQa`%=hu;8_=+<8@<_h`VY>{%BxTsin*JLiz_s-9S1 zB#?~tM*6D~eFOb_s`^5y-cUzX>&-W|)^B|`s~Siqs-pd!y#rx|x5MfBo4r>bG_#Q=$HFC=nL2&%OfL9~+b1(Qu?IBYAN{G8OKP zc97X;$n4o0aX(q8H_{$Tr4s4JzWxrVMPq5L(=q%ko<>67#arDxOTB`-vy?p5&E0Or z1yWMrb!VgGG6lEU1w~4h`caZAYA$ydt#G@SxQogtS66EV-en3`Z|8-ZYn8>S%6&!N zA~#=#)>Spai(%!4RN+9*L{hyqjcM>LVrt$_*2VbmKmK=T)K64p230WbF3Lhb7z0<= z!%2{qi#Zi_1)_4NSy{^qg!h!g+GbV@pJ`a`93_WPp@wfK84X7L71ZIl*L8{&?){$5W!s|>) z04=;mH~CmgZeF+)n~i#u*s7TGd2E4bn5MU|0Lw#BAC&856D_Y?^*P3u6?lt^0r)}G zD*Nb08=sM2duF$n)nnG6=cdMEk`&jiN zZYgSJ)E`cddgp>sQ!o~RvZ^;8>f96Rj>ve8e{ikB1&)zKe^oNk$><`*z2-%VG~Umj zn|?_BCtNIL1+^y+g}jI#2txk0sHwGSXO#5CD!kYlAFj{iwsW?#QwuaU>GiiX z@2U%RM7Q*>Uso4RhPL!YtEjMVkLC7-`v!n2WEc;sG z>Rl5wY2rjTX~7r?kSa`q{FiBPR+->bcCoGv8~*PgGYAy+P-ySH9ngsgqNRM`>huii9w(?)@YM4I`YeBe9D?E!9gcY9K@t|;*7f=8q z>(4dCbiE=H-)K^l_NO5l@bEXa>Jb*J&`%~R{^dgXKO3(Fx%-5|OR@ol6*B=i;R?Wu zHA(4yN+dq2@}&h5GPa1;GyZy2pI)iB^GqhrTyyDia8dA@?0V6H%+eDlTEMfrDOa}T zEob!w!TS5M8%DDl-9feCA$RD0rT$*7e9%+qS!}iOX8ReG20dm!VvnJiwORBt&6^&& zvfmxdtN&DP{ewC6_b#d*_0&I*-Eefew7#-I z{$|IoQ6rc)IesypBv^uW?P+6r`_NUY^OF^cAr<$X&aXAOv^`&bDf@l z)zt-Bx7EL=sqQ0nI9YGls0DV_-+V(|>e}|+-u7f?JMPEc66=SwY3F^e~*YCWcZVMfu?VSu?ko!~U)pv7bZ4=(lY>Y~G=N)T106IU)nFoEZdiS!Su|vy- z#)p>;9lc{g`QyumPL9YA>P{YBHgp<#6Z8Rp26hv7N@~fWKSE{DvxnWH#VqutwBlZ8 z<=>TML!-m)Pm{zm%DgJ9UmkWJ5d2w|ryerPaCOlJ&!6u~{`s#hpbPrVw+hJD2gnx| z*k4|dekH*rUuIx`<-w(2Y|t6&6R#LB-wY7hOaF^XzCA&_E1)yhpMuPCAlZX=4B$Nl z^XKSK;CLMOK$1O9KAL%)*IWZd;uE8OZ4vJ}e7s}=M$v^}-6 z1s}_v>M?)TefkzYrHL%xc=BQOkbB)C)?=UN!l2ZrKyP6(7-m#=bsoYFd!D! z)89-ieX9XGA4O-Ed7nh9)EDn@uxyE1cu{%a^7ijtMG8piJB>|tp8et1v7eLr$0W6g zz5n|!Z~wkWO#|_M3d@$L-Tw2Iy&V)&`PMd*(t9c9CA>XDob&NrkP5 Yv68pj{|Yi%_m@cFd!%sY5|u*q-#jFyz5oCK literal 0 HcmV?d00001 diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb.mexsol b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb.mexsol new file mode 100644 index 0000000000000000000000000000000000000000..805a0ea52b79587096b353974706d357937fa541 GIT binary patch literal 9676 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 Xy@k}4AN&Hn=~a4vgQh>fTJOIBf0Co~ literal 0 HcmV?d00001 diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb_mex.c b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb_mex.c new file mode 100644 index 0000000..4fcf8e7 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/tqlb_mex.c @@ -0,0 +1,49 @@ +/* +MEX interface for TQLB. Matlab calling sequence: + [lambda,top,bot,err] = tqlb(alpha,beta) +*/ + + +#include +#include "mex.h" + +/* Template for tqlb: */ +void tqlb_(int *n, double *d__, double *e, double *bnd, + double *bnd2, int *ierr); + +/* Here comes the gateway function to be called by Matlab: */ +void mexFunction(int nlhs, mxArray *plhs[], + int nrhs, const mxArray *prhs[]) +{ + int m, n,i, ierr; + double x, *tmp; + + if (nrhs != 2) + mexErrMsgTxt("tqlb requires two input arguments"); + else if (nlhs != 4) + mexErrMsgTxt("tqlb requires four output arguments"); + + for (i=0; i<2; i++) { + m = mxGetM(prhs[i]); /* get the dimensions of the input */ + n = mxGetN(prhs[i]); + + /* make sure input is m x 1 */ + if (n != 1) + mexErrMsgTxt("Input must be a m x 1 vectors"); + } + + /* Create/allocate return argument, a 1x1 real-valued Matrix */ + for (i=0; i<3; i++) { + plhs[i]=mxCreateDoubleMatrix(m,1,mxREAL); + } + plhs[3] = mxCreateDoubleMatrix(1,1,mxREAL); + tmp = mxCalloc(m,sizeof(double)); + + memcpy(mxGetPr(plhs[0]), mxGetPr(prhs[0]),m*sizeof(double)); + memcpy(tmp,mxGetPr(prhs[1]), m*sizeof(double)); + tqlb_(&m,mxGetPr(plhs[0]),tmp,mxGetPr(plhs[1]), + mxGetPr(plhs[2]),&ierr); + + *(mxGetPr(plhs[3])) = (double) ierr; + mxFree(tmp); +} diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/update_gbound.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/update_gbound.m new file mode 100644 index 0000000..aef49f8 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/PROPACK/update_gbound.m @@ -0,0 +1,69 @@ +function anorm = update_gbound(anorm,alpha,beta,j) +%UPDATE_GBOUND Update Gerscgorin estimate of 2-norm +% ANORM = UPDATE_GBOUND(ANORM,ALPHA,BETA,J) updates the Gersgorin bound +% for the tridiagonal in the Lanczos process after the J'th step. +% Applies Gerscgorins circles to T_K'*T_k instead of T_k itself +% since this gives a tighter bound. + +if j==1 % Apply Gerscgorin circles to T_k'*T_k to estimate || A ||_2 + i=j; + % scale to avoid overflow + scale = max(abs(alpha(i)),abs(beta(i+1))); + alpha(i) = alpha(i)/scale; + beta(i) = beta(i)/scale; + anorm = 1.01*scale*sqrt(alpha(i)^2+beta(i+1)^2 + abs(alpha(i)*beta(i+1))); +elseif j==2 + i=1; + % scale to avoid overflow + scale = max(max(abs(alpha(1:2)),max(abs(beta(2:3))))); + alpha(1:2) = alpha(1:2)/scale; + beta(2:3) = beta(2:3)/scale; + + anorm = max(anorm, scale*sqrt(alpha(i)^2+beta(i+1)^2 + ... + abs(alpha(i)*beta(i+1) + alpha(i+1)*beta(i+1)) + ... + abs(beta(i+1)*beta(i+2)))); + i=2; + anorm = max(anorm,scale*sqrt(abs(beta(i)*alpha(i-1) + alpha(i)*beta(i)) + ... + beta(i)^2+alpha(i)^2+beta(i+1)^2 + ... + abs(alpha(i)*beta(i+1))) ); +elseif j==3 + % scale to avoid overflow + scale = max(max(abs(alpha(1:3)),max(abs(beta(2:4))))); + alpha(1:3) = alpha(1:3)/scale; + beta(2:4) = beta(2:4)/scale; + i=2; + anorm = max(anorm,scale*sqrt(abs(beta(i)*alpha(i-1) + alpha(i)*beta(i)) + ... + beta(i)^2+alpha(i)^2+beta(i+1)^2 + ... + abs(alpha(i)*beta(i+1) + alpha(i+1)*beta(i+1)) + ... + abs(beta(i+1)*beta(i+2))) ); + i=3; + anorm = max(anorm,scale*sqrt(abs(beta(i)*beta(i-1)) + ... + abs(beta(i)*alpha(i-1) + alpha(i)*beta(i)) + ... + beta(i)^2+alpha(i)^2+beta(i+1)^2 + ... + abs(alpha(i)*beta(i+1))) ); +else + % scale to avoid overflow + % scale = max(max(abs(alpha(j-2:j)),max(abs(beta(j-2:j+1))))); + % alpha(j-2:j) = alpha(j-2:j)/scale; + % beta(j-2:j+1) = beta(j-2:j+1)/scale; + + % Avoid scaling, which is slow. At j>3 the estimate is usually quite good + % so just make sure that anorm is not made infinite by overflow. + i = j-1; + anorm1 = sqrt(abs(beta(i)*beta(i-1)) + ... + abs(beta(i)*alpha(i-1) + alpha(i)*beta(i)) + ... + beta(i)^2+alpha(i)^2+beta(i+1)^2 + ... + abs(alpha(i)*beta(i+1) + alpha(i+1)*beta(i+1)) + ... + abs(beta(i+1)*beta(i+2))); + if isfinite(anorm1) + anorm = max(anorm,anorm1); + end + i = j; + anorm1 = sqrt(abs(beta(i)*beta(i-1)) + ... + abs(beta(i)*alpha(i-1) + alpha(i)*beta(i)) + ... + beta(i)^2+alpha(i)^2+beta(i+1)^2 + ... + abs(alpha(i)*beta(i+1))); + if isfinite(anorm1) + anorm = max(anorm,anorm1); + end +end diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/choosvd.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/choosvd.m new file mode 100644 index 0000000..b675080 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/choosvd.m @@ -0,0 +1,39 @@ +function y = choosvd( n, d) + +if n <= 100 + if d / n <= 0.02 + y = 1; + else + y = 0; + end +elseif n <= 200 + if d / n <= 0.06 + y = 1; + else + y = 0; + end +elseif n <= 300 + if d / n <= 0.26 + y = 1; + else + y = 0; + end +elseif n <= 400 + if d / n <= 0.28 + y = 1; + else + y = 0; + end +elseif n <= 500 + if d / n <= 0.34 + y = 1; + else + y = 0; + end +else + if d / n <= 0.38 + y = 1; + else + y = 0; + end +end \ No newline at end of file diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/ialm_demo.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/ialm_demo.m new file mode 100644 index 0000000..c6c8144 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/ialm_demo.m @@ -0,0 +1,61 @@ +%% generate problem +% problem size +% clear; +clear all; +% s = RandStream('swb2712','Seed',1000); +% RandStream.setDefaultStream(s); +rows = 1000; +cols = 1000; + +maxIter = 40; + +IMPULSIVE = 0; % 0 for Gaussian and 1 for impulsive Sparse matrices +sparseFac = 0.1; +rB = 20; % rank of Low-Rank matrix + +% Gaussian noise parameter +noiseFac = 1 * 1e-8; +%================================================================== + +% Low-Rank matrix +Y = randn(rows,rB) * randn(rB,cols); +Y_noisefree = Y; + +% Add Gaussian noise +noise = noiseFac*max(Y(:))*randn(size(Y)); +Y = Y + noise; + +% Add sparse signals +strength_level = max(abs(Y_noisefree(:))); +S = zeros(rows,cols); + +% Sparse matrix +p = randperm(rows*cols); +L = round(sparseFac*rows*cols); +if IMPULSIVE, + S(p(1:L)) = strength_level*sign(randn(L,1)); +else + S(p(1:L)) = strength_level*randn(L,1); +end +clear p; +Y = Y + S; + + +% Prob1; +lambda = 1/sqrt(rows); +t_start = tic; +[Y_hat2 S_hat2 iter] = inexact_alm_rpca(Y, lambda, -1, maxIter); +toc(t_start); + + +errSP = norm(S_hat2 - S, 'fro') / (0 + norm(S,'fro')); +errLR = norm(Y_hat2 - Y_noisefree, 'fro') / (0 + norm(Y_noisefree,'fro')); +errTotal = norm([S_hat2,Y_hat2] - [S,Y_noisefree],'fro') / (0 + norm([S,Y_noisefree],'fro')); + + +fprintf('Matrix size %d x %d, Rank %d, Sparse Ratio %4.1f%%\n',rows,cols,rB,sparseFac*100); +fprintf('Iter: %d, Sparse Error: %4.2e, Low-Rank Error: %4.2e, Total Error: %4.2e\n',iter,errSP,errLR,errTotal); + + + + diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/inexact_alm_rpca.m b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/inexact_alm_rpca.m new file mode 100644 index 0000000..e83e323 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/inexact_alm_rpca/inexact_alm_rpca.m @@ -0,0 +1,117 @@ +function [A_hat E_hat iter] = inexact_alm_rpca(D, lambda, tol, maxIter) + +% Oct 2009 +% This matlab code implements the inexact augmented Lagrange multiplier +% method for Robust PCA. +% +% D - m x n matrix of observations/data (required input) +% +% lambda - weight on sparse error term in the cost function +% +% tol - tolerance for stopping criterion. +% - DEFAULT 1e-7 if omitted or -1. +% +% maxIter - maximum number of iterations +% - DEFAULT 1000, if omitted or -1. +% +% Initialize A,E,Y,u +% while ~converged +% minimize (inexactly, update A and E only once) +% L(A,E,Y,u) = |A|_* + lambda * |E|_1 + + mu/2 * |D-A-E|_F^2; +% Y = Y + \mu * (D - A - E); +% \mu = \rho * \mu; +% end +% +% Minming Chen, October 2009. Questions? v-minmch@microsoft.com ; +% Arvind Ganesh (abalasu2@illinois.edu) +% +% Copyright: Perception and Decision Laboratory, University of Illinois, Urbana-Champaign +% Microsoft Research Asia, Beijing +QUIET=0; +% addpath PROPACK; + +[m n] = size(D); + +if nargin < 2 + lambda = 1 / sqrt(m); +end + +if nargin < 3 + tol = 1e-7; +elseif tol == -1 + tol = 1e-7; +end + +if nargin < 4 + maxIter = 1000; +elseif maxIter == -1 + maxIter = 1000; +end + +% initialize +Y = D; +norm_two = lansvd(Y, 1, 'L'); +norm_inf = norm( Y(:), inf) / lambda; +dual_norm = max(norm_two, norm_inf); +Y = Y / dual_norm; + +A_hat = zeros( m, n); +E_hat = zeros( m, n); +mu = 1.25/norm_two; % this one can be tuned +mu_bar = mu * 1e7; +rho = 1.5; % this one can be tuned +d_norm = norm(D, 'fro'); + +iter = 0; +total_svd = 0; +converged = false; +stopCriterion = 1; +sv = 10; +while ~converged + iter = iter + 1; + + temp_T = D - A_hat + (1/mu)*Y; + E_hat = max(temp_T - lambda/mu, 0); + E_hat = E_hat+min(temp_T + lambda/mu, 0); + + if choosvd(n, sv) == 1 + [U S V] = lansvd(D - E_hat + (1/mu)*Y, sv, 'L'); + else + [U S V] = svd(D - E_hat + (1/mu)*Y, 'econ'); + end + diagS = diag(S); + svp = length(find(diagS > 1/mu)); + if svp < sv + sv = min(svp + 1, n); + else + sv = min(svp + round(0.05*n), n); + end + + A_hat = U(:, 1:svp) * diag(diagS(1:svp) - 1/mu) * V(:, 1:svp)'; + + total_svd = total_svd + 1; + + Z = D - A_hat - E_hat; + + Y = Y + mu*Z; + mu = min(mu*rho, mu_bar); + + %% stop Criterion + stopCriterion = norm(Z, 'fro') / d_norm; + if stopCriterion < tol + converged = true; + end + + if mod( total_svd, 10) == 0 && ~QUIET, + disp(['#svd ' num2str(total_svd) ' r(A) ' num2str(rank(A_hat))... + ' |E|_0 ' num2str(length(find(abs(E_hat)>0)))... + ' stopCriterion ' num2str(stopCriterion)]); + end + + if ~converged && iter >= maxIter, + if ~QUIET, + disp('Maximum iterations reached') ; + end + converged = 1 ; + end +end diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/make_video.m b/RapidPT_min/include/grasta.1.2.0/make_video/make_video.m new file mode 100644 index 0000000..6f447ba --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/make_video.m @@ -0,0 +1,45 @@ +function make_video( video_name, video_matrix_fg,video_matrix_bg, video_matrix,vInfo, vTitle ,RESIZE) +%MAKE_VIDEO Summary of this function goes here +% Detailed explanation goes here +if nargin < 7, RESIZE = 1; end + +frame_count = size(video_matrix_fg,2); +rows = vInfo.rows; cols = vInfo.cols; +vidObj = VideoWriter(video_name); +open(vidObj); + +figure(1); set(gcf,'position',[100,400,400+3*cols,100+rows]); +hfg = subplot(1,3,1);set(gca,'nextplot','replacechildren'); title([vTitle ' FG']); +hbg = subplot(1,3,2);set(gca,'nextplot','replacechildren'); title([vTitle ' BG']); +hvideo = subplot(1,3,3);set(gca,'nextplot','replacechildren'); title('Original'); + +colormap gray;axis off; +clims = [-0.8 0.8]; +for i=1:frame_count, + + img = reshape(video_matrix_fg(:,i),rows/RESIZE,cols/RESIZE); +% mmax = max(abs(img(:))); +% if mmax < 0.2, +% img(1,1) = 1; +% end + + axes(hfg); imagesc(abs(img),clims); colormap gray;axis off; axis ij ; + + img = reshape(video_matrix_bg(:,i),rows/RESIZE,cols/RESIZE); + axes(hbg); imagesc((img)); colormap gray;axis off; axis ij ; + + img = reshape(video_matrix(:,i),rows,cols); + axes(hvideo); imagesc((img)); colormap gray;axis off; axis ij ; + + % Write each frame to the file. + currFrame = getframe(gcf); + writeVideo(vidObj,currFrame); +end + +% Close the file +close(vidObj); +fprintf('Video have been written into %s video file\n',video_name); + + +end + diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/median_filter_bg.m b/RapidPT_min/include/grasta.1.2.0/make_video/median_filter_bg.m new file mode 100644 index 0000000..21aec48 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/median_filter_bg.m @@ -0,0 +1,28 @@ +function [ fg, bg, bgbuf, k] = median_filter_bg( img, bgbuf, N, k ) +%MEDIAN_FILTER_BG Summary of this function goes here +% Detailed explanation goes here + +if k1, + bg = median(bgbuf,2); + + else + bg = zeros(size(img)); + end +else + bg = median(bgbuf,2); +end + +idx = mod(k,N); +if idx==0, + idx = N; +end +bgbuf(:,idx) = img; + +k = k+1; + +fg = img - bg; + + +end + diff --git a/RapidPT_min/include/grasta.1.2.0/make_video/videoFrames.m b/RapidPT_min/include/grasta.1.2.0/make_video/videoFrames.m new file mode 100644 index 0000000..33ce5f4 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/make_video/videoFrames.m @@ -0,0 +1,101 @@ +function [ frame_names ] = videoFrames( DATASET ) +%VIDEOFRAMES Summary of this function goes here +% Detailed explanation goes here + +% DATASET is a string + + +if strcmp(DATASET,'lobby'), + beginFrame = 1901; endFrame = 2500; + frames_vec = beginFrame:endFrame; + frame_names = cell(1,length(frames_vec)); + + for i=1:length(frames_vec) + frame_names{i} = ['SwitchLight' num2str(frames_vec(i)) '.bmp']; + end + +elseif strcmp(DATASET,'hall'), + beginFrame = 1000; endFrame = 1600; + frames_vec = beginFrame:endFrame; + frame_names = cell(1,length(frames_vec)); + + for i=1:length(frames_vec) + frame_names{i} = ['airport' num2str(frames_vec(i)) '.bmp']; + end + +elseif strcmp(DATASET, 'bootstrap'), + beginFrame = 1000; endFrame = 1600; + frames_vec = beginFrame:endFrame; + frame_names = cell(1,length(frames_vec)); + + for i=1:length(frames_vec) + frame_names{i} = ['b0' num2str(frames_vec(i)) '.bmp']; + end + +elseif strcmp(DATASET, 'escalator'), + beginFrame = 1600; endFrame = 2200; + frames_vec = beginFrame:endFrame; + frame_names = cell(1,length(frames_vec)); + + for i=1:length(frames_vec) + frame_names{i} = ['airport' num2str(frames_vec(i)) '.bmp']; + end + +elseif strcmp(DATASET, 'campus'), + beginFrame = 1100; endFrame = 1700; + frames_vec = beginFrame:endFrame; + frame_names = cell(1,length(frames_vec)); + + for i=1:length(frames_vec) + frame_names{i} = ['trees' num2str(frames_vec(i)) '.bmp']; + end + + + +elseif strcmp(DATASET, 'curtain'), + beginFrame = 22600; endFrame = 23400; + frames_vec = beginFrame:endFrame; + frame_names = cell(1,length(frames_vec)); + + for i=1:length(frames_vec) + frame_names{i} = ['Curtain' num2str(frames_vec(i)) '.bmp']; + end + + + +elseif strcmp(DATASET, 'fountain'), + beginFrame = 1000; endFrame = 1522; + frames_vec = beginFrame:endFrame; + frame_names = cell(1,length(frames_vec)); + + for i=1:length(frames_vec) + frame_names{i} = ['Fountain' num2str(frames_vec(i)) '.bmp']; + end + + + +elseif strcmp(DATASET, 'watersurface'), + beginFrame = 1232; endFrame = 1631; + frames_vec = beginFrame:endFrame; + frame_names = cell(1,length(frames_vec)); + + for i=1:length(frames_vec) + frame_names{i} = ['WaterSurface' num2str(frames_vec(i)) '.bmp']; + end + + +elseif strcmp(DATASET, 'shopping'), + beginFrame = 1001; endFrame = 1600; + frames_vec = beginFrame:endFrame; + frame_names = cell(1,length(frames_vec)); + + for i=1:length(frames_vec) + frame_names{i} = ['ShoppingMall' num2str(frames_vec(i)) '.bmp']; + end + +end + + + +end + diff --git a/RapidPT_min/include/grasta.1.2.0/mex/blas_win32_MT.dll b/RapidPT_min/include/grasta.1.2.0/mex/blas_win32_MT.dll new file mode 100644 index 0000000000000000000000000000000000000000..f8352f0bdb7522e912b00415958a95af69df174e GIT binary patch literal 735232 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 z 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%0D%%vXjBzpI@It4owoXXa<^Vv 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 literal 0 HcmV?d00001 diff --git a/RapidPT_min/include/grasta.1.2.0/mex/lapack-win32/README.txt b/RapidPT_min/include/grasta.1.2.0/mex/lapack-win32/README.txt new file mode 100644 index 0000000..2776f89 --- /dev/null +++ b/RapidPT_min/include/grasta.1.2.0/mex/lapack-win32/README.txt @@ -0,0 +1,10 @@ +The lib and dll files in this folder are for 32 bit Windows XP. +They are compiled versions of the BLAS and LAPACK libraries, +which are distributed under a BSD license. + +The compiled versions were downloaded from: +http://www.fi.muni.cz/~xsvobod2/misc/lapack/ + +Sources for BLAS and LAPACK can be found at: +http://www.netlib.org/blas/ +http://www.netlib.org/lapack/ diff --git a/RapidPT_min/include/grasta.1.2.0/mex/lapack-win32/blas_win32_MT.lib b/RapidPT_min/include/grasta.1.2.0/mex/lapack-win32/blas_win32_MT.lib new file mode 100644 index 0000000000000000000000000000000000000000..29ac00e970b016ff923732edf3c75c26b87209f4 GIT binary patch literal 26850 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 KWn-$^r~d#_FH5cf literal 0 HcmV?d00001 diff --git a/RapidPT_min/include/grasta.1.2.0/mex/lapack-win32/lapack_win32_MT.lib b/RapidPT_min/include/grasta.1.2.0/mex/lapack-win32/lapack_win32_MT.lib new file mode 100644 index 0000000000000000000000000000000000000000..2eaedc2ad0757cb4e16576e8482e608817cf3670 GIT binary patch literal 254576 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

t$Qz$b< zpo}n;ateJo73%3nt_NP#0HZ)OAp)Z>R+9*_Mr$U)3G~+AGq5l

hZ-sL`A6huy3T0a06v`=-IYpq1a4NpS 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%0Dtj$;)fK-|tfIUiW zJ}O-!B}b-RuYOvOlJ)jwJ&g)$BNsi5N^83nJ*`(iPu8p7%;IDk#3dXZhsv{i{Xb#o z%0pgVF%(s(JoDA}LZ#WeLdg_wl~XxL5+zd{NiLN*ba7GrJo0eqs(i`)6eCi8JF1#ZSwJOGU-B;98BjE52jP+rNX3G^RX$GuO#`KB7xm4 z*4&_CvwMhso83c_9Jz-mnLmrgNeh%1sJY~7qw?%Nk|alU8XcTogHUM+G4;QZ@FY%Y z{5JcV=(pL|B*~Gn&dKy~D^4aaha}SoQ~gC!T2GbSbX=O;N0J zG=HgzlS#XkWa+Zm*F>fI`KoA~{E;axl~3M`N|XDDOXbs1skHPv{ZLdY9l4L>x8+gE z?jtTuo;OL3+((>Dx)CL_H;I$-L8##7Nq`E|=bHG~4I}rFB+E_6?jtEp!#@2sD*%*~ z_+=yPN>LG0DaR8_$?~WyE{;5!%-yXDE5$cVrz#yMd$IUb$%`e)H1|@egfbkRYUBgr zW0O-$lBILkK_$Dm=-3rw8U|)qN7x*WSAJW%&5B_P)2Ye`yJ9TDbnr<37ErCwN^u59 zzm@QUDOnyd4UwBlOIO#>fuquLzlP~80bkTgaREm^P3}NGxIXv!YgbgdRHuRLEacMU zEaYT;?z6LyOS9_4$vycwX&O%A131(ZdYkJ$NU9)X5TbDgfrnaJFGTgW{S(ltl zhMOeQ-KNrHxN&J#OemRkUryHF=HX}CVzw^nRN1=ZWWC62U2%@anRq(sDbiDNtRu5`{EZzM2AyWeynT zbpt(4r3sIdX=WXkZ)4NJd7kA|`DtD^K*yGm%7cyCogQvTaqWAt(LI`> zhm^|H@)o=|EN{U%S$EPTJl**S($;v5BQ#|3l-98Ay>3n8NXE0??2+eWsZsIBQ)&Lb z7bi=z7mqxbmTR^T?D#D!9{FDN$nW+crA@Q;;U)d;Zb6hOdhl%e2CgJWx0{kBI5DT| z(LMRXuAQ2k5Xk_dgLjXVJgh$+)*p`xo*ZY-agOQi`QyEkOc%ae_~!b}DUXq?C*Cc5 z^tdkt>A}NU`&^YJ>jxERve6GVSZQ^%538e{lG#hG$&r_u()k&tWSW*GH5!B{nMV>% zrs-djqgk3Jz3gb03(OAIAa)H^=E`__5mMhGTb~-pOt(9cqWJf!f&ezgp zY;bA0du3H2mFA_jk}Rjnj&>@|j&@F#CeMy`DI7W4C0VMQ9qm+FJ6v(Jb7>meB$*qs zth61n-#zy~y2#XLD3z}wJKE`&c}}NfcC=Hn_KV_Zr_$QU#nDcswP}i@eOMjsk~}(H za#`7X>zd)tD}8b9qpV|NYbvcggY>EP^Wmt^5) zM?01N&)v_Cb}G+~c1f1zD1%~kw9~=)lQWdu?K@!E(axoVkylfaBc+>@$< z8t1rlRct<#ib zx&I5v(axpG(JsmIsANaGl$J+jVX-_a+0o7i*OpwUO_v?*bZ~aGb22&FIazK|cC<_3 z$k8szauc$nT}soiPbba_040;2$poqTwSs|^g z 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 WI;TNK<<~21egL7p!Dw5?(*7SMc1ke- literal 0 HcmV?d00001 diff --git a/RapidPT_min/include/grasta.1.2.0/mex/lapack_win32_MT.dll b/RapidPT_min/include/grasta.1.2.0/mex/lapack_win32_MT.dll new file mode 100644 index 0000000000000000000000000000000000000000..e879861e09022a1c20bfef1a92b5d4c19bc904fa GIT binary patch literal 4342272 zcmd?Se|+3Uwg11#ZXs1!tD=_Ps!e~;@Jm{Lwm`8e>MmQL{A`6lzR%apd-DT| zS3lqT-#3p(cJ@8*nKNh3oH=vOnKQG~=d20@1A#z@|DmBkU?Zvi8qDY4{y50%V^7_5 zY~arE54?Y4N$P?3w`4wlb>)JqzWgs&UHQez&s_PXFMT;%`RUJAUbXN`m7o7oW%AM) zm0$ewyw6TP=9mdFAM|M-3~syf<6m4={J&`F39CNK^Sn=fdevu0Gw0=3U1ZY3tFATa z^Q#V+^sQB&CcX0G9jk6J=@(bcI$!07R?Ri<2Tj`i`OjnoyV#TTv_K$La&+M4Ki+e3 zF>imM^!*b{#s>mFJSPx%tHNYgzE&3qMEJUkJblym(m-IGp7<-Kfk2xj9(laxkAf;Y zoZ829>byYebAiD9iSq(!y?(d9Evb6g0&`8dGXoaKEtC-|>kJKsOPX?5&AT#tWgxKT4*(I3o*}(sY`F&5 zXtFI9sQ>=)fxwpY0s$5IchXUR4ZJbsXtz@N3tDZv_aC8L_NpsC^VvXP55p5!LOH?v z?K{dfOup)~9bf)TAn?IDIsi=r=a7~)POyB0%a-RA^F|Ya? zB4uAkEa`=QrLSJpGdVr6WqQ#Pn>W8?c2iR({Kz?x8M&*b*9u(#2P!CzfDZ+8bR~0N*r#> zKdchV?MR>0`=qntr(|?@#;OC^2xHXykaOw1iM`J9Z`*Q)6->EBWEcwBa$B5B`V)Jc zO zFh-dWA3&}lA1;aUl>6eQGa0o?mx1cuUjmy{W^LuPt*m5BW$`tYt5vziuk4RvIi2s> zcZ|W_3|a&(NP}Z$;j1s)k`5tZE&005kqv`PKjGpt0PwBRo@YOmgnuN5nf8^3cA?nRea40 zchhQB-}2ZRmEC!04+LJ{8Ec5=f(NOw*3|e8W$J>Dfrn;36iyy`BK}~oC6*;?3t7}( zLIUw(qK;69WI`J3svvFM;wY^~8xjmMS<$XX@{5nAP$&j|QOX*z(;lmJ*6;AbKlEyU z1W6Y`2mxpV{Azu@Gqy^Qlg#yGEX04979)Yhr;t?(jv=3VUdxSxUgu4NG~7}6xLd16 zLeBbEk!wo?pvN@lwZ|e}3xl6Jo6@%pGS; z*Wq|J*5Fpe=9gUNZgbXyL$Jp{WVmh<;8aXgOKhL0@tTI1^U%4y_nxkQ1~ZlLq9=K& zSXq-7`Y}&|Swq=aHonWdV36Flrsk$J2rX*PrO!~4nvfM-mJ+Y{=-o*Nfg1kH#3kHZZP&4ls`= ze7xj}!;Jbc=p{T-i#33p-LorhsfJ+lN?E!acs?f^CB%y6);NK z=`hO>qNNbhlaZHB&-IjqQEMTt`~Y=dkk)OYYKVE+u-B%Gzx2I zLGYWcSF<-yGkp&hF6n)3@n*FHfHb&=p{WMR3r7;u16>ZCk3gO9rN~H;hflXU#t?isGFvJ;se;3Ij%;LFbJ{ze+8f7zMDBj0Ly z(PCcgCa*ORd_H&|z24qCM19)^;Gv9>GMxyzmX(7b(CB5EsqM^E&Cb-y!E{r)c}DBZ z+@q81%tSyl7afRkr>&cc)kC<(`6Zw7qUQ!XW1YyUbr8+VE*}UV zX%baq=4=hjZ7M}?vU4{1-NBg*qo{ADYr3f!j25MH-}|7MuG21L0>-+23^I0}_Ra?? zPj!hNvr;)LW-G%=2naHI;?_CKC+p>AJE7Lu35DqDu|m)BI=leHsB_jIg4n)16mxqO zRyRy-JnSVm9i~iM-f597)kd(#tt1aV4htXT1+u&+c7QMOhr73y1z!k0A1_D@ z%;??`N;kDO=VpE6OsT3`u%M~YUmpY$GwZHnV*VNmCV3;?qQR8=M0|}QXK*h~YL*1| zkR$T-eWA>qOi`_YUgwmzs9AMrU-!0faCdNW;!P*@0ux-Tr?=T8zt)Ti?gETzL+=3Z zNXkfNf^GB68MAWtT_AR@0an@R%n*Mn^TbrH3}ioLrVex53r&u1yXnxIX6j6XxSN5= zh%|bs?}}3Op5~2Ki|^Wb(?To$ys6`B?$f5Bir_xYo8PECca4?1tU_k`oUEC%_d4Mb z9uhM#W|}Q;IqTna*1yPX*-@M+Z!&OZ4Q@GWkV$h6STZ{z6EtB~_!H(%vubP3tk8!p$WUUJGkq7Z%hBale8v{m zn8sPdTVfS(i*zG6ZJ9`Xr%{o*=b^zO+$uE_!>a%%j*2JY9c%NjJjQrm=XL%(fWSeB zt|F_-4aX3@fUWd8Vm0JMTfGq4TP!luLpXaa6GF3^)488awTqCJoz*do7gJUUCr;{1 z-aL5SR3KD?3*;Mz~V7C6Jv=@mdvc_Ns66uG7k1)&xByk^M?WBA3}pk{RXB ziV4^eMb7exezF@tIbQkoQo03=*Vzv4LJ17oC6TPA8%MYGI&P32RIX~aK?a~^ zrUBuFu8;RK6p>l#X>f;VQrVQwoqE>WM??eB{YFXG$D#fxRl(BUE%Rz`_?+{?mY1D& z1}I(|BR@6SOa(eDI%#+`fM$4FZaHix_{EHDIfGrHPOh`c`I%nmW_2vy8JoxJj92?D zunIT9LS?N?eNF9IGiRk4H8ZupcCHzRwpKUj5QIOH@USEW@N7OqWmsCATm6 z^})W{*ab}E@~)@zKd{27+-n>{XFL%*kETV0oyqGZdIJrK{;mV2jjrp!!c4z<)X}!L z0goEsElUO5=-gdT7gE4#7p&5QvRMzd75-^B=OyL5)K-WL=e(kvSK1Ek>BA2Zip@VN zovDzu_k5j*7GAntj*d@VcKH?CWngYy^BN28?I?4$rfJ^FJcVy#0@@L6r0 z6LW#pn(MEx4LHBJEHHm)PWKyU{s1EzOK4i$>r4q;Gg88L2^5Z@gdqjuHG9fvN@hgKThBI>%sU|jF1Rl|j`G5GC;v;% z%OA4x*WkZ8wuDUPMyXz!M(=SZ_g{OI)3b|W^TU}10(s_p&kF3tzVv(P{9@b^vRUS` zuJirs!{J3i6xqz1^r>fMN>h@`F` zq)eG>)4IgYY{X4%BJcV^O4aoxHw}8BO?Ndw3SZP9`4K8LO=#s=W;w30G?JpCDR=ET zc*Iu6)V=QQ<sFFMKbHm()}IYxB$Ihv$z& z$OuXkaLb#Td6GWnC+XIV1|xGT7-cr-V+$X-qc0h!#s^H}4f*3BmFaLNjg$nBwqwyq zBj~kW{k^m^ez=`kf2*AyHL*$`Yt+tnr;l#OjE2*5E3ML6)SVXa77aP;9}F^Lbhy%e z@X%h;itfXu&hjpm!YCa(7NUNU!j`6nW74@ZKWfOihFY*?3uBdxwa98@@HB9n7$6N{ z`v3#N6GL~bhEY!%RK1T?qufOK))5>i&Xj)VYu}=bnY@z+G>@dUSSV1qEZv%GyYVQ2 z(ztbRk688>n?az^^-au?a;^V*-Aw756J{oej50AXN92qfkC;(MV}|n_S}M){6B!2m zmz~S|T`NTRs3eDS_OubLtE_CTKnT?UGU?X1rCzlWsCYshvf6jD*ThU2np3z8 zqpr3)5h&(c0XU~HjoNkYgx-6KFRbXBQ>f-ey?Y#9S09pM=2Tc>Te10gz>{Fd+5mvDQ3)Cxn-YpF1;`Dx|4c5 zvAc6BQ##!Lm(oMO3wFlJ_%GMcEt7~zt`r09GN@i*n049U`H6eGo(5K#s>uNH!avna zxbWkN`WWIM-1SYT>VBtcn^U!$NfrupmD3}DWmf_6io0KSF8i(RSHYPqUAIj`zwpD? z#%<}(+tN_LnY<0Y8E*?8D5NzoeUbbF^wAbQ!xsIRrKR7%t2FQmjP({^J68?b+Iwjy zP3sTvayu{8mkHhVu|U^Jkb{@0o!IJ7D{y`y9P4^subdTYdFEXmJ&pQgMiinC#UJ(R ze>F^8tu$fxK8bx0!fAcUz0?W?-+;o?Uxy@RiNAJ!f?Cvs-GKyz?fL@(s$4jNbZWw&*YWefg^7w-*D_%V=e*W+GVMYg3PhkAecVOm zgBK*Cv96pm`Qe2hxwh8!=xRtir`$`M{VhHr%k@Cm*gf?wl zv11f1QzA62Jq7^e-4&1egYXzAM+)yFR~khN9ci=6yr#{P^Q^9f;IPx)pZD_+2}Xf9 z3#Ceu1p`4#Eka|9l1Xm7{|~-KfSp&}|0j8|>zM)#Uf4(p6e(D;QoBKqo)bY_Ny6kV zo@(}qw2#1>sC^@mnXBQA>#JYoHec=L%E_0x9gS&MCmLJ$zSp*m=wn+bGNO;2sC7%L zGdlrhGseCy>SKo~>`OhDjg3(yiu*Z_*%Cr^cu&Z}C~oM;zW@x0Y)sWrAc`A0|Dgiw z4Dr0sq{OsVOrHH@Eh~R*2qo)NqF=$p*?iG9*ivkc#`V$D+(tQRVyf zEO~`6PqE_D{G&6~eD{)*N-spmO6|#=9x=i;hF(~!W=^ut<*Z{bJ7;Xuv_ouJ0=i`R z7M2lgu`%Hb!tg81RIBKr5;_x^Sw5~6Wt>%|8%2=9Rtz2vAV_eILb#o&E8erDt z%59HT+7=MYG8$wHh%4Lsa5w>IToM#f;Om(f`0$>^#FivPbEAShPq-$(!Kd~?<;ZWa zW!eEz>xI6$=^#?MIo*sVR|A8q$=r?_*m#W@{`nxN zWRA_6F@xtV0<{EC-P==!p&5~`QzZp(T8IK)*P;*rd!hSHCjPFjXN-91`7f$Uqcwhd ztGt7c;phqOd(dk^UP7P}TBP}IR+?V{?ihh{AEXgTn0EIbda@`+TY`@p4-5;{nO?;$ zAzHwtUe3RWm~=;Qkz=FH_><&AvddH|rq#aOtGEHGmw!BQxXa7m<|FxiQigDelD8w7 z@{w!=N$>)xMj-`$MZ8izUdZ2v!0jU=xJ7*2Qo_x2Oo)2IXqaxZ;kmZmU3>X#`Sl=; z2~E+HCyQ)E$oBSbk!G-X979={#!5vBu+)k{X9`@(SNzIO%kiS#HTZTe$Cq=(6NMAh zpcuMs7ymS6^UqHVboDz^+TmU6(U;~#o9!nJI$!-MWI#(irO}Kl)$5!o+nnpaO*V^d za-6eLB6)rZ46q}jWl4y9qx0;V`g4t&@Hhu1hpfXKZIC>GcScKroYiKl$qUs&3lv~`uKy;Hc&Y6 z?O6x}OQJ~-RRp>dUf3Yq(8i=t@fA^dccw;WAS<=k?hek0N3;buu4I7(9xLdd4yuMK7}TbOf?BWhD4=hyDq8EJRvgB3{VI1^FX2 z;lvj8-xLW}vh>gPXTVA`1M>N9Az-TYJ_H|yzgaj1!A`0QOHGBZ@;Qm`4T-H?`FD)4 zc5wbKREJ0S;v*ny=@))1c((_mHx~(L_J<4so2D27<~Olm4ojU2nQ%;idxYyZMrQgI z1Clw<@@9**Ely@07Y9vcwb^pHv3AV{Oh`)LTx3qjS#dpzeIW+lR04bIbIb%&agE`& zz7G6S9sglO+Ml|&&-2w1qnFGCt8y*fIKAqxo4E5RYk;&BzKn3La9aZy6y*BrePK3} ztI`c(uaH^vx+GBoV}z6_ujp;5ArHGTU6MGui|nGG+_kuJ3ZaZyofE;otC}5@G1M21iFJ%9sW6|B{7T+i zxN9t2!<6N~1t@C0G{&{|jf7h6t*Y9<_+(5zNZ#CP-$-EPp5cw{iQe31-)Pe3?zMFq zP*2v8oxApEqpr;B-rfk)j;nl3E9&K_78WN9dJ83IB#yWCosuw9aU^6>&2?JAMO5qYfTF_%b7M0gmCm10zuc&p}28)X8 zwdfHR-djwdLz5VrhB5q2+}if*8KCze~ih>r^gIK9fX( zzx($kDEiqcu2KAZ?^!q%VcWYNGT(+w|39R|i1_+&{vieK_{E)`9*Rg1p*$q<4`UL* zaSwG#^dfP@v%F17{9cBbx?*=jVq4drCFz_g16LhK5!1_(m(_)r+Y0CRKH2qt${F6c z%xDUiZ)Js4DHl*^jj=+-a0csEOy*T#{BRbta}|YqAIe_C`qUc(+fn$Tv>E(PKqd;Y zZw@0SLHk@0u@Tz(dVc zQDQ>N?9lpd`uq}=wkmd_bkzIjMU>~;@^g7_CxX+Xy;2W7*&`Cf!yV$GAeg;!26rtD zk*ND4iH3kDCH{akHRXDr8yZ54NZ$!Kz3X^qRznp6U}KuScj{>VlSn{}B%`2%v!0rp zb4!m7`JDHZ<+B0ubK7D@K;X@kfY@)}?9rRsd4o`Cvu~cUZ*qFG($*pDQFU_m&0)P+ z$eZr%+41a@F_Eq03p+i%yklmEN}QhG^ObiCTt%c+NNae|=FEfDtC8vQS`dTc2OGg% zs2ItcLcI@l;b56PKXiqgLn#s!#4@MC8?&eJF=^Uh_l{8a&QMX+jsgqiWSO@1D$uth zU7HL4@>(cXlD%@ceS#gkW*`l;XJXoR@psK;qqxTqls##+`vH6`rd>67_B$H9F!4m! zpMtMP3Oz^(=Vir^bw{l?%S zzE%>y72FN{=%FWr`{ECK6<-f-+q8gj!bF>CxDk9Cn1$k=T*U`8Xwgq9z$vnLA^_&O zf&A6dD6FwbvW$XnOR}*}#Ca#hJ6Y6!3I9u8`C>q$3w4Q@WG>K{MpwH$9q!5QnJ%it zW!|MF!QT-WLcws6BzzBPdV9%pOZq})U3A&@GIq|TyG@W{Vr%CI=(~J}Wx+!lk#9;B zTSDiU_Er^hs``OgM{{ML_@r06%5)6hOj*}Ys2bs27?e6??#7FTaRt6r?~(aF9-Z zzoF=QI8b~tVnM4t*en^9_yeRt%BWWEj{~^JeTTzpD{abx6ND(t*8rCzv>Ij@v->Fv zM_2(>iR|^Yq?uP}H*;7YgM8$Ey5ID*-So8`E4|p)?qqN~gr{|kMlqhw2-mmFx#d$QQ`5sY*Bx;Y1c|wau1;^bX z!|)%Hr{zYT;{U$i@IaNcmDPr-Vgv0@SvI&HQ!y0l`eXhZ!pg2PH}G{7TI|#RZIoDA zjEFyo`JmBI3sY!e_CMs2-|-@= zxPcY-_q52eI`*7Gx%;$N9b`2Lb!z{LH%HjNsuM*{vmMAU&`Q}(Nj9sb7dkzc+ng3R zj&&C9ea`7gDQ92eX=1ukZ@3k)?*39|{a$ToxcNi-g3q(9QHyw=OZ*C5ih2u66L)vM zhjk(vd}C+wmxF?QQQ~0N%UV9Bdlf&^VqMntI4e`wi2YvKW9%*eQ7jA~+JJUA=&y(q zakUc%M0h2Bboo?JdJyKl1hB{ySgD@%Jw>$~=9%e?wvrUs%Z*r%d7H}_;S_F7lH zmT^Sg->&FRw)wR?n>=aIsL3`up+L_m*UnyrJf7pdmeQf%qxcC+-Q9`Doary&9LmND6CvA$baQT_sU1nY+I2Zt&EqT%?FS!gLMirB)))Y1}|G|m$2bnc4=V632h)DCRJg-7X2UzJw>@Zw2kN}$dn zjRN^AVd(Dd^>)_SGedJV>OHZnk~OhTCF^2KlwhwbVav04^2cgzVcaZU_&pG(%xt14 zbYvAJN2Zaa;39HlsgArYPNs|4nilDfM35xMgUvm7O0RZsiD*szsA( zSJZGuKB)sWMU=$-cyD^9*i0WQr{`3j370sEWk|g|Vv=bGY-X-Ll4>AcrUqi};rR`1 z-9rt|^uygloEBMaPr(?{N&hQn$8qIiGST*?zV_b=9VIrBO=W!VbKGrx8`=(?7wO)D zKWul`OG~$DTVh(`g)aQsvp4BseyGj6Szr2?>{~+K=S$pueT0)H{@O)oYTr-WKH3oJ z-ilQIUDr!40bz(Ws^9O^9C1>HF=a+D;+7;H2BUhn;G~{~6T*GffJA=matAOr?n~r4 z&t}wnXe{2&TUzmEmntX_#zBs8a3gyQF=k|Ry$a;YPk7Or&9bwHHVn_8MG+NqpOf0_ zB@;t89UAJhnwHf5O~)`27Q7mVFDv1ikWMhbJP5eP_!D46vr)ouwE%gwo<_{8{c7-K zFXR$WFY>uBF&iq}t=4v=dAn{X_QqSWDDRUza!L7kT9&5pl*az9Vc*7 z{br6QOG^?v-M!5IolI1n1PR6Wc-i-sxW9|PaULDcgTA-%BmUz@zJ^@A5ef0BB48q**RwAEw2`~C%qHfDTs7m-_6gum-;$#c% zp^W1F;#-Mdui$-;Dj?>dlbF+sRwdrkH69Su*jG5s|AMe74|JW#oK(kA34#yzWu*bI zpfWPr#8#m10J|G0SwN`uCo%AgXh7QF1%3#+;p4PtgQS~t(G#pJg^BD*JS5Ss;G+_u zRFG2Ti`R-_@#+VDCABE|TsDa>LVc`&1&KzMm+3l$(ukm47;%Z>*c03#!IrO6`Q=vJ zOmf39GBdndZ6ei!yAxX>NoMgJ3{pcs4mzpAq>HH|f>BUG7N&+YFE4sKZ$wuQe~#A^ zQ)aq}FHwDIMv6w8b7voK1h+BqeCfs{cmM=z;V6}KCwzhzriJCjW0WF;7yV&;xxp>d zh$QgBUi&!>ktT1s33w$Ef3-OQ*i1J%jT{2~P9Uuj%m-)$o0R`@nyDFXWndi5<=gMMW57`=O<#9nABJ@|e&(xsi*#LmbndSA7)e?v3Uw`8C-^cOk=9oQ zBR&fM))pp$X_0H_a4pDJu|?vfcJX>1UW!jr&4^yb50_Eei(Vgm7-E;jAK(02Q_YE8?xOrx~i3f_vyL^^aZa zXz&G>v%ApW80?(+;j|RXewwCRa{m>uXH}@cWb;}|bXsvPn$RgQsVceB`ED5W+T%lg z?KiM%m5R;n`Xl{mpbIeudll59i>M}%pdeI~cF5aY z@IJa)O9c`$A?*{Smm-?%4Uk4X8w?-ZHb3;K849$h-!Q~1Pn2PDPeS{nTR~4_0+)(EI8{~$h`26 zf|G*-Li9%l!_}sQMQw&9+?}zxRGQfYqLQ!~%~Oja?$IVl+95pKnll^pb_*Z5C61vc zbkp)7hjEQoQnnZW)2>biV^NgBWujq_On^h%Xh*bMtE9sm^36)y;?)9}LmbJSuP;u!X}9s^=2QaEnpncHnp&=z4)ll?+}B#oGuSn8s9TS&C>8;BEm% z8Ly$Wwyw1>x}hOPl(>(s#aMQjPLlSXO@jO8hvqbkx0-!&;KypRr1JS|m*}uZA31#- z6h$(}j^?kGLUas&m4RZ^JxL7JLSrN%h8L~^Wy5-?BNhq0hLu9M%@1D|w^BQ}6_!%@ z)>cG(T8-L~vZxt3Z`g_0ktPp6p!I2u9s4C?hEcn>|y~+GMIY3_(~>>S_YeBQS45W02UI!*sq%CktB@( zdWMuFN5au_FZGQ?fx;Z9J{od$tntu3r1t?Tf$tI$ z03IaafDUswA1|In|FKj!!@`0soyNeHE|boMf!)1b{)Z$DjMX^WKwlL0dL^WI=u`*4 z7;x|F|9zRL%?an=E_z&vT!lj5t!xqH?%j1mzQ$?aFSbp zKwg5%rQ0QvM|=g{2gKefx2FHkr4XeJ>DBI@D)AB`XK~qn>jaEL#8(VIBfGie{cN+?(H~^Mu#KKXXiIS19Iy8BQ@ro^(@TJ z8-Xv=kBME3E4TiI*@b^&2pZhep-!atx#COfW|&=&D<-M?JN#gDyDdJuaFP3fSA9M& zQ;E|%{dYEmb9Uhj$$Gm_!tEO7^s+(5?s(5GOrTo3JHGdx>?s~P?B2exiC=G#G&(J$ zu7>kJXQ7hU@5frOG(}GDtB%R(x5j2fypFOGP!7)@nmzS7OzKPXJe4U(b2?*#*S8F3 zwDhct<%E7vw87OCXC$<(QGFLrjns&OYdHQ}c#lD@`WG@}|#D@>&YRjV@hhoc!vzS!B)=KhwmlW5-+ zDrY}3^>n!@lk~^g>xfmgQne=cGh4N$dwUEQv)O@T=<=7ry0nx;=VmLP_)}+vCw?cW zInMH~J+z9AJjvVJ;Ifkgl3{!B#WXd8mgnl121obua(BYZx`r{KC*&;;Hc5?7mKEJ ztnd?myndr$YG(|BUS`PMcj!rTyv09&WcsLK^P(Hk!oq#g7y}o&3nX+;fp+)mv2z}F z@78YTiBd@2`k39nOUVzq-ur(B=Z^>T_U2ic2H_<7OGEWXAmgDer8Awvw9#S;(6rlf z+hF3+?8z=B6iW>N+M4ls(!ZA6o8#1>=!Mha&6U?MK8Ob+7>Z{^@K72U@_*qImQz$- zioP(*aAqAX&B!$Yqd4a`n4I&-p<7kd%tDW}Jzj>Bj7x&+HI*VCht#Xe$72(LfaRf=7-gs0{w}yu|kD$9*NeOh5x-6&SM4%sbdOQ z$5GKK$(!bK`SVsie&RIi+P(9+WB zxrZv2WZ7A!f8xs%T-jfd#ABTof@3OXsS6Y7TsOC{i z?%Nhg9UzZ%?J^^g{mc=dUwQ=Sa*ON-S6(G?i|8&4v|Zzg533nY$jE^oRjgf0?#$6G zZMS{jV|sdf=}6z7GCAKO2ZkT%djsO481%9PI?yER5nYPnkhp3TZYYxxW($W2bpjn4 z=mZJJp4@HdcoX>Eka%y`M+)-TN6d*2Ft5f5lo-g$oGAA?u9whFb3*Wj!6qYh+j0vG zI#C_>muEKG^&?-d_!6Yft?7NuS)rieQK(3u85GKhw(zmok$Bd};*74Tg`gLDFE7TT zpaVu4AskaefdiPx)7*0UZ-#lvisAe1W~Gz7_Cs$&<=Eu@d1%FBO*DqzvBGH6dSXfuJcHARew zXzMD!OQBs91P|#yI(e!34RnDJl7GdUB7+?HM!z6_Syp2OKIl;P15Cfzl)}{39bc8nQL98$8qpP1C2A zL71o+Z$ge}b&q+I&Rs#5P{WP(hjD@8;@*d^t))b^)gqzDwFMsWix_Q{Uh;>!fdwZR zskP8rn_JUOxswcGsvwM0`vlYz4?lw*<4tIa) z+qeHgHMW_89 z=7zlDW7ESS=8`JUHNmHu9>T z45>OTiN~{NP`O@Rut#2mGzzS`Qbq{WF#$3_au5Hzz0d|Z0mEGb0>)_7TD(#jagEre zEN#2MCl1@(aR?(I@s&^cA?%$U4VR#{Z`{)j(f3#)*jH<(M2T#J4V!m^@z# zE^sNxWmLY;x#WRF|8*bSS$c#uz6FZqroC#Hv@pVnb$y-<>tk}w)uk~AL@uKogr^a) zilO)u5+YuYbL?w$QBKON`|6>mz2y5!+**Q1UX`r&!e^`h62o5d_CasD?oy02XVSE1 zx1aHXr>3GM85&ZyI`_HngrovhcW;+xy+b|nD!4{0lAOu}nWU9qQsUX`{*@P4>O0Am z;6*go%PR9y6V*lqD@R4}VGNYA;L~3Fk2K>eX`|9a%PoO&jNAeloiT%qEUgZZqQbn~ z+UrA%q{PZx5b1D_Q{%Up#-|Q)Q>3?>`U1_{MFh|^7&n^sOk-?-Q<8ol!|w3@RT^{+ zCF*41T~?ZS!bv^stjAx-Jvvg#I!uIXZ5nO4CHF;+=mAwn%z9`5zq{Kqbx>Qx!<|&z z%m8>T2ucslV&z(?+dy}@`;53qT_a)ERI41Q5u^R-V;-H%YNUU&R2{4b{RJ{0`)H=1 zjs8VDL7t|y97k||hn$r|QZ$g1Zh8JBI0`4miUVXZ@N8>^?cg_nzP6|s18ts#6%^#P zoLvGFErRY5tspzRmh~Eh3TRUm+~(Ea#+N8C%Dj&cde@mNpArO19pVBka?5o(vjb|T z?htdZ|1<+=^+2!7ONSK_yHWnD^`)*UooN@rRxBxUM7wEn6i1wEIO6B3E{j+W z)q4#OXoH%?!kb=N+~1FSEngqR3lBuo3H+1gK(76WZ2l~Y54A3F& zDh-v!N{7~>gTtxn`lZbcZ0LYkz_)?2ceV%$Tuz2jSN6$5* zo*gyn<%z;#xy3l$S8xA_p&Ht4nyJL8BI5x-aoQb2i%+@?~P7 zE|GU%y{^=KQKepUE_pd|_jM<}wp9+zB0T?aj4=>Y+4wEb`o|Z135$9UP^b5B2&Y2c-Rq?G^*(8?^Rae{SRnsrUP5aFR@Yoj(#5l( zgq(>{z*p%GTbA21(EC`(tIZ|2he1dV=@l>VMdUZ*@s2TAC-QI5$1>q{^dIdQu;4NC zL$3Vbi{OIJzUmnAZu+APftW9nc-ZmG{TX(sXq?%kkqLp{8Qf}Q_0Q^SzVhyEZ&b6J z^|4%SyMHik)9xZ#HSrfBDxUfA%xW|2cPDmr9_wzs>Cjt@Jwy$e(=pnNFd8{#6#0da zv~!nRvycl&kfeNVJ1N~5{9T+kpLDs^Z-`-9qH3()jBxxhJoK1P&WfD8D+@Af(2AKen%Jaf-rP!cCUQG+ zuzCg@)v4vOvzb|v$$jYerE*o(fz3LK(U@_zA05A2-eO{)I6lkPiZG4eO;}V3NZzS} ztQK^pg@6U&%#B6yd%ezMP;I`e`$+F64=OF7|BcT2ySX?h9E6}RA@PI1g^F8v-yD3v zqkkMaWFSF!!AyhgDqdw)D+@W2_H3ANlef;qCbed^Yv^}r=(8_s=ogsPgQWs&I$hyy zwzEo0I0-3g!|LtAoD4e|7@fH?E`N)G2NA`X4fKYM8wYpH=GYS2H#aoa{xbe*@I`jj zQ{Ne!AI3q+ps25{?3vSkYZ?S=v@p)K=pyxJdX^lsJUf(}G7`E6h3<}nLRYJ11$bF* z)xsxM?W>Ks4||H^gg1l9a4TdqliBdRghimdsH zi=mMs-dBDY|0f_};Wy$1hS4BkFCAk5Bh&g&NU`7J_et@Mz)Wh@M5%~{i|p#P+-z7_ zcVNPk<%;xQ!~0pNQU2Ff9o-?&weD3dAetGHV_Kq(JsKcJsF*bgs*X7?+nvIPyjt#J5mliQ5+05&b*R`9(k3QSMQ1zn7y99CBsPs?~7*-w`C{ zZZ@r=4fe*C{B@EpJkm@(BzWhQZ0!`_Y-@ucedm7T52&DUic`30@(6(ce#gHNK>D(7 zU<*S?Ss>vH@#XMbW}e}b%v{PCXJ5OnTKnjWNCs{-?A{)8L+nLzpE@E_cdEJ6KtP9d zGgWx2A{J)K%UU^0YDt^^TQh1evx>$uH|payq4ueN9#`C-rFt1?sje4#z+h0nY-aFv z`Gw~iF(8J48I<_YHVDvWecUf-#{ez=Rf~#X`EYbcnODCo_&P#REcAAqS_ELOJ~{+t zXYFX5)FlHTyw!B6oi14%#-fr{{Z4%>6OijIkj)^|y?v44Qq1Go(3p$E9-)L;V!1v{ zRMGWeEtv?p&8@kw9>9%-^k?j;#+*@Qb9q>$sRoQF%i>qAvyK5>=XDj`irD&G1NMQ` zQ3AjvXY>l_XryLb?2Tbz+~qC()o!FFN1UirSzuztgB9f488fHAok?t!pnmX! z0xw;sQxm+j8q}CuzYdDDFZ|g~j4nF|D5*b1cVD8ZqFcYFiTg`3hgE#-J%;^9I*%~1k2tq`x~@Q%(5--FQWA(MZ2yVW z1H77DIyxDmn)^CX%b`Rrl}dD(m{?@I75R z8UZxmWOa3dy`)RgMbGJqF7|35f62nCYd=WAPuqgrv0(3xI$GtPFMLu2>?_MFf`w8# zWdXR4*$(?)$6U>&P``n$CxMQ0YRtu4Kp|?F%d-Xqi2-;`_l@e%bMjmCeALBR z2Xt}PyZJ;DqXlE*vSII|nF8kP2qown9K!DL-+_LVi z=*PRI%XraGkm$gA5=L+0o~AOYA>(BL{SV12wuq8+Mrg=F)l;U5hupIdmNFKyay2w; z?a7=iqqF>+ND*%}HVW@*9y2w3H0L%ys*zM^z9IS~?_xq`2Uvf-a1%QjWr+c-OGW%o z*S?9RnFzzxy8bv3fLu2GN+Hp5AIP~>fr%yE)7}U!(InB%qX@)3C#U#3=elda4xfJs zLVgi<7HH#n0jVwI^mg*yZ<4KNV|!{Cta#2}&Raxsg9viWb|aD*#!OPrZ*H^C5*=o} z8`nv;WQ6Wj!W0Eje{q~{WgD_ov> zN@r>1M~YCN`v3$%3?+n(HoS!|Jda8;Y1Q1s+1;X`al9sNd*N~(U&81epo)7O2&dw^ zE+D^yyc~Jxd)m~67t*|(OM_f3E~k~b3}`mAtX`Jc&PUOwOG#=asa`4a0=OOkk5J>?60tb%lz>}< z6xarh*PfC5Oq)7#(*2sy4GelEE8ci8P@TR~ECi>=#B17#s0fT+g#~IY%Kj_plz|RT zEW-+bFVhcrtfQ`)*+Ochhh>I#we;W5X`{eVnCwx41TKSC?et=-ep5^UEQL^W7w7~bF zVkpeM9Cxj9P_;Tl_Xr5e-OvkT-{)*Q$OBo(tKfdtT zYs2nV3b~KvFIF*a7~`SFu>_QAVqGX6I+J!9iZ$MMZG}JX?n_g-TapN&fxhTZylYDG zr4~ZHt(H8q*b3F#v9l(amhxhiBSFAl+EwGeWl&&~-1~|gBlVz>#S@bCqGcPU8w4NJ zPshy6ZFpJ(8!b{*i?nxDN#eI%XY&JP?2Nj*ObqrAw4F=)i@flOUTCS8mM={rgV9gNv^X^h>UVQ{5A;Zr)6<40z*?z;2#I&Q`j?hQ@lIINW41E;9 z0Z~0&O7K-xANy`Au0r=?HW^8RNssGE0|6)1xTnWoz;|2&Dz!{8oZy$}C{wLh{p;U| zyW|cl&e7Yp579NdLduRRmDPH5_L z1ucskct2EXB7vUc(KNlzAm&cs(0$+Z00l23USnZmBF^JbjJo4MgxmOShI z7Cw9A>M9$=K7y4sgMgs;t!ih*$IvN!jjX6Da_@m8w8*lv6vx-l{8z_>Qq_r!Pd_eB z;`b1GC^jk{vlDt~>Y@FuHWLr0u;E>8@};=)&F-@>6^Syno4?i?L1(&xFs96+7(%m}cdL0fGxue3fjO6q8%@ULHlu-zH6~;FNQt#3qh1;Q zCeUhg@(R?e#S&;OQ}5Bv%(VXQ*ZJH%Q9(%=K;24Bup1O2gHMP83r4J+9@Eib$3y;e z#~1`}vvt<0&VZ>CaUbS7VgHvQi?w{WM81Yv%%mFhxrI@~5yvvJk&=Z+lW>(%S?@y& zPwL&mZ%P(x`aX;NYhh~k#MF>)CKXFqx8I!nBPwBUswH~Hw~~s5Z2ae({CXAg$Ie(u zE68A;8!PF0+lCoY#hmsowHa!ZIkfNuR{Id&`AI!U7KYFADT zmDVY510T(~#(T^VR`GVb0KlfBY^5q|D{0!NXK{pV8Fl=TAkoZyx8$IGrzD*b4rxjr z;3>0_hg|>GqM;=1!Wc?itMc5!$|5Q6wP!7fw&DjB`=YDrr z|FfqWS3_v`;b6ZGqHg6q4V%$WaBIX_e~;Pb!RbCx+t~eRhr18==iV3W?>}6M%uDXX zafGFD1{Hl}MH>?8I?wkT3QQ9Jg}IWg0!+&E>!n2&u{X2L$uHNXdp$;mtR=N8PAXCd6s=HM|cv!%ICQ7lfIRP z0fv<()5~tx)p@KA9!oJ+TFr^Rm4<5xE6r9X&dRsa$i>uZppjM9N>l&g3PT1<4YZLx zLZIvVvG+<@D=j+KN~^S1TIFafEo`l{Dri}CL@SM05-c?=)$tZPN`S-5II{J*zz5RHjw;B{=E=0VZ*b+*|(I$)fYm?M_U57Rg z7%J%}AlV|VvZbih=7ugVnr>n`x^}-3nQp!tSGz=tL};N8)xO=<2sn}T-4emzoe~;r zRD55fhT;*MFHXwj)R!xNU9{V(eY;K6^6j>#wA|R)Wi*icc^g4k8^s<6)Y6F$_;y=enobH4Ssn+9#hW*YnSj?G%HR-7T0>jK=P>3QUC}yA6ubjZ8n)0*lfg#Seq>kNo$SG=2NKM*lcM=Fewg` z3e5Iuwu1ju0U;?Ov}SV8sxjA$TwQnuv{_3weOafZ zlq-4;#$N*YQ1BsV{bLAXZY3~+m~OXszy4yjy8HDP7CQbo?F>k|6;6Xh?El=oLc-wrdkhAJ4`E@xhmNeJEPP*YY{{6hE)~FALCa>#ndKSl zGRCiyIV<~NEUMf}mAKstP5H)29A^)7s>Sx|@TymNp4A~Cz69C5cu@>g(OtQwJg?Y-gx&+$*3&(H@G7-Jc z;}X0f|ArbcrmyVMFAZVm)`3D6@*C?? z;~xC2tjpG1^Dgm?tjo2wPgs}pO9&vBb(zI<8?i2R-4)j53BGk{hYj{zG&4OD>$1#; zgbT^HEIaN}OI~f!veZSa;`H3U2W_K}!nA=i$i?uBktPC9i0cN7T6Xm=c~C#H!b6=VrTMKtW|Y+)Vdm;IY+Yp*=b5ZoWn!wE zc3P&=j``?mBSX`e_`{RO=`|;stqxQ~MTTb0h@mOD$M3}Vp{D%~_K9&(`LJPX@EvVu zuBEUQ!+NDLK9ZgJ1)7q?8)avzA_UOfA7y7=a0EMZvR~QSnH*S=oq2@nvNKEF7vN`v zj0{zonKj%=S~N35^h0ux@Y@KeP6}i{K#q~b!vNKJm&?%N{0Q;hzRLm}SGQLBPMznL zby`$N?d8j3wrd9@^BS-vx^>W}bM#)>je_g{l#H(h_y^W~8uS=p%o(XO35THrElk-q zKP1qr|2fsg6NI?LqBwCP-EU$XK5O^KD&T<`x!nC2rw46LB{?wZ{Zz{BQoetfFlI{r znj9Q_?$e6!C|W_HbNSwB`J{~Xtq0Zsid8)GZ(Cj-e@h6S>G zi+%aX@XK5D@*ey0>-MF<*)6s2E5phdZK>gu)|Of<|2m@Hm{U636-=6@y|c|-ywu1x)*IWlLtg{JQl}F z-~FtSWWUXPXToqOv&jruQ>IRs*7E_2G~~YaQ-f`TR3(45mHAAhfeZGZZwE=LrTwN+ z@g&4wt;+M+rnr7{5gx*Z%8!>ik!07vTLVIItkHQroT5|maR?-vd_*!-0V@DbDz@X({ zgs2OJv`5-5TYEWW`Q<2-TK<#3P)R=l*%obaHA*7BLVoT)5=C2E;|;1A7j(2wS1Ge2 z)1)404hmuw-}m$V??`B=Q7zT0CDqT|3i6rT)PtcrtcAVPGC?~B#4SPAjUk8ziOTOx zMhLP&;Ht-o8!GcX0C7iPmROj}{|3w>5_y$i?g@=1@)|HD|Y0lab57g*JO{HT&5;J zM3Yvw?gxKKw3R!@1p*Tf*?R!8b3Gf9Zp1viQKtR&n0~!Z1EFbu!1nuy$ustylGe-y zW=-Z!wXFG*`}|#HYFP@!FN|t}5@s71!#|^1@@HqAZl9{2(VE#PSew<0)?XPT9?DsL z%-?=h_|Y6-qg`nA@Fj>4$BJoTUy0MB@eXv&6n2(=Bwlu;&JGoKX(C*iWCSL6+|RkT z4I$VFtcY2uylNx$HUlm9m#tGJYZ2{O*!mnTwY6i2^fZ-PCGqZ8l~q(xfaWc*yf2fT zuj)RZVk7osYtpWY)G`fqsUiF0bACCl?iBtV!{yYy+)S0TcVJO`Em31||n_r&Nuc6G|!V%B`EpgvCtlM+<78|Z8_WuIF^FtZ< zwpj2R+0rHshO>jI+Xr0PPouu@)Fz)vPo|+|r*#fEC~7 z_HGf@ir24q9|bpV09~~cBc69+9{EL-1)aH)VNGla*<8{7TKtCm`#r}{g6;F0)rnM zGi;hfF6b^L#BPyI8~$(D^xMDo*;GNa6^2bMTaMz^N^z@Y(~Ev`1U4nIKxgw76nXTY zfoXX(0#L3jxNRpFGC(D9s6-PNkcmU1@&>dxE1t9LSq*#6(EwTH7PZ&(cynxv2;6~@ zcb0n+3uRSY*CP|nrr#sIWDnoVHc7Md>VJv2t-%*lmS!r2(lcina<$6Nt7E5H&^p2M{9gFo>)`ED(rC1Y)8^%r`BH)+9Uo=lEn8-r2|9S+p&V z@cVKZ0ek6}8eaDLZ=}WHz5b;K^ho7LlpN<;qXlQE@PZ;Hy5c1FBgJ1aMNMSnbn-LI zEv%F=mvC^_sIL1h{3wTrPH1h-^RQtoEVeY#&y_5qtMr8d_+l6}x-YZ1?N*z7c= zU$NP*D7)2WHQRI{;Pbo&UQ5x38O9><#1nu$=m zNQkc+7`hp?y8AC9ULRYp==J%6trxZRwy5v3{dyQRBLN4i&B*L5E&76{QV*;u+32eXliAGx!>U)(ONq}{`m z!Iv;WmQ5(e)CuL+(GECN{0$tW?SO-yyemd;!=Y9<)Cq?>zV|=i@FWeu7L^vQ?3M3E zjQ=}Cs)b065IM~vQn=!Ow}F@%s8R#l*A`6-pVIQ|C;+3PWZ^~Hh=oRG>~SXr7EbgU zk0K1-hP}(F^H;oYe>E|hy}yPe=5>E!r?Y&62y{4qJIQD$T+jK5g~tJ&sEUc+`6Iv( z3i4Ve4rjzo%n@-Tzz=T}e>A1JKu>>w5&MaYlxIA%;0@^MKi0=Wa^)$kVUn$m*73{e7h zN^nih6%s4v9?3OTKGro=WnEKM#x+$8%a2;uR1HL}@m*62iS)NmW5zXA4(3s>R<0?D z9c^Ms5%3e%PCd=!05Yzrc|zyH9~;*c>H|ZS9+}i*XVxAIV^lID_x_*h?zduxN0q0; zdZNP_wQ$Q7`rX|ItOdjE2Y9tNvM{u7PvN4yr-)prSJ6#kLl2F{N2J-n-KajW)vP_R z4#E1yI)m-^R1N7RSbe3mXL!@z)lV?hctTFuX=5W1N+|YXuFq&*^y^~onY1{MT|j!P zMPMWm2lAwZd;HIm|4S71oqrAdf)TP2N7!<3`TiboFpjWMRH5=N3quJQDnV6TCFE;g zo+4&Y!WFtBTPAjb=rWFn3eWgXaMRbe$auR2+dq~Rnb+WM*z+<0T%Oy z1)6&Kk1ZWk@B`BQM5CEmO&2mZsvifxU6kGx)*;sB^t@sTvt|ro_EQgF?@UGrvsM64 zerXDnuFS6o2;?4tI>AEi{2Ne@NbV(qy5q&smJc>HJGzLD%s3b)R>7a zr9Qt~qN&Y0B~6)Kw3xY7ZEMoy;y*CnGeeJsi~MG2qy?Wlb&M@$V-3}c9?e{r^3AiK zjGb9ypF~AUD)Ae?jmF7Qv0UbWn%D2Zkwx*IIlT%H*%43t}%sL>> z$lZ8*(f6@gRiqts%J=a(>-!L;;@Emvxw`7Onx&Wn2C{T38SML2g*`-TrH}R1>40b0 zD1U@BXc^c};ap<<+r1v6mNV>Nx>02+%@iRe9COdyAsw|M|5N%f?DhCB9vEuVNYU$I z6p3O(4^eBxSEn0=%5Axf0k3gU-*P`xxxdR-_tuqf_kfH+y&jofZ(t)p=c>b+aJdfx z-{#t%h183~dU1^DRs&QVCj0^-uFfs?3TH^A`v5<@^b+H!8Y1$tVUOL4F&;Y`lD44h zkz!Lm0~wmTKQ@Noa$w-QPz*`6*RpibOMZ2bdnd}lTbF;V;dRqYBvcELF1a(;8mGuS zc?9O&CCVBOHYEJY`psi?_lFbvGGNgjrV{_95*7^q+sDnmml5}6Nh~! zK9bw6lEM)~&(REg?Ye)Mfj>YMG4R^a4E!IKflVWpF{@2mVoWn?lWaqB+nG=;TPQhP z$Z+q0AAybBcKmb*T_jme;@PF#vv>3{niujzqGR36@6NjEVb=Wuz%4(qH8#w*t>mIj zjpkb&f)n4G&S?DqLB6d>%P@L*seSul(xp5fQ<|Oj~h8rtQ4t2uzDMBTwF3=xR9j z3qZA=JPEZn09$|aFuSJc$%w!C|E2Bx~`9XPO7n_-RPtm z?WouWOhO1jQ_XJk-F=o#yR;iz>V}Xuq%}TykhZkdE^TQ`ze`F3V zpop~Ec7{PkK>>~OeShwKW-{T2m3{5^k9nSXp6A|k&pr3tbMHC#-g7WrWsS|8l3%n| z?Y7LwVb_|v=pjY!BzIhFBku=?ch2I3yRj7Me-t3e`2vFf^^TQ%f?J zYxnb7xHwt)BdlUeZCs*0BR(iXU7y^Q*q>x6tRkoz>&h|{DsEksSN!dn*u~0c-m9r9 zVLQ}UWh-n}*KMxH&azIhcl|J9$I}qPa5?V=>RB;~1E@GUUGyBKFrGAUvhp$h`jcP- z6O6==GRtWgF$Ks*$eBJ&lQSq_iwgL6Q$Shjo1}#~_Hg4nv&&DJnli4G096$5Ih>p1 zyMZUuUb*%$mTRWHLGWV01C9ny;BX)^3#Zn=DHojm0N|!7W#KdnPP5?j3(gBjG7OkT z+gp^;_N+64;Kbq_C+fB&Dt zMDB{mV^o~-Z2BW+iO|`Tljd@p#@)gGD=&;Mkk35+M;z09y8HfjY~mMfVj-QJoC~mN z${QJg$(%GVp^;OlyTAKS0Q@*W9^cdbM&9)9{&%SBF2JDpRC(ON_=cXNk?C(j3N@gJ zkD@w;<-Hcp*=bhqo-^gBjvgi6?0IRS&R=L&G;*?NZ&;dk&IfA)ydkw+A7pyV143W7$@YQd=meR=L35R0k!?C-e$)OFJU6i6Yh$GE zD*ILXj5W@k&kKLG)+C7VjEkq11tX{YGbm)vmYi;3*a}-}%^A1uVJKZ&>+=p8+diJ1 z{kjZsNrt~=260Jw*-;!N2Tf787FIv3gu~g?yO)~O;;-D)<$mhWbEMAK#lT)e>h3LV zh{NVgL#{HA<3m_zhL97jZ04CZyo7b(mBg)L23s z1oCatn^-*N)7TEuVj|Hw8S4v+KX&cPXvjLA?aK-O2F;>^-*r9K5bM}0NFw8lHt(b{nt;x~P0Uzh(&w0zAP6qGDWPavx7l;v z*8W+~_dw@+6E(pWerLD=RQCbjzhzmYZYJmSN`?IRWyTs|)iJZ(B@4yr0C+6A%*@hZ!siY%KyJW3b7_Nca9~6!~4J} zQskzD6pkf@(>@JSs32yemd_0tJUOcJG0q@vC9KW>K#Fo9Km6ShQbc-QMO?_#osKal^=7G=&{LV^JjIR#U-9fIagQ_C zb;jA27?S!8bHl^lDnpK$$Qd2ktAfxVMA1735_#toV0aV9rltMxFMw@yyr~ z>3Lbo_bQ9Mj6k;c=~UkW9ZeSmA$Bck_Hd^eR6l}928TQX4@Oqo^FP6jF?-G!0<2Pk zDzlL+HUR$0z?PgkZ4hgnsgu`A!A)}{v51(5n=sWWE~Qs{KCI96P9@FdRH@DWY+PMv z$APJ2u~27E#9yxDYwXT3?kGM>5pzP6r5S^NbDog=-C+f@W+rs3Y896}{SuL88L#|W zK^-v^brNpV-0jQ)2KmQLFG#G`iL8E-AaNXsTxx7~OfaqK0%k3|o7N9L8QV_TQB{|_ z-2M|yVuPXYEN7~UzVdlvgR12dnbqm}ZV)N($_!;$r&{fw_OSbwuOfEQDibd+8#5N} z5L&aeBJ?7ExNWgF0j`DAPw-e@U!VNNhh&~=wUq7n@Oz=^i3C@OZu83!wEhzT84R7( zrWC8&iRfIT%66T0iFnt{Zanl>5k-U4$!^E@X;PYY@zr7KEtXQXed(EVOMYvNu|S$o%tSs~Ss>46kJSRMcIi9CdZZjZj0A0(kfnQVd+f&&z?Dwp%Nc~P63k(oHZ)3|5r)wg>1H>Vv38>I z-}48)eYUc?K}6l^>u1bl{lrme!KJwa-(hw*ARd&{z#xM-LOnsPZRUG6bDJ_h@Xg%J z_nbVl(fl-7w3+8BbML6kon)p)4mA?DQ={8-vlfYCYNUPuMy5NAs!_Y(UNQ>qhfj`_ zI5nq6^OgDFH*#x~!U?o-KcPP4PV9`tH{v$iPF;J)r0a<+$zGlb@l6X)^WVlc^8PY- zUo6nQaa?bHTIVKA{*j4Quy=A=y2UZC$MjBSY6|iBWSO1)C{;eNfq=pW&Ux(yG|h}k zkU8B$cRBP7J*!zRs0&n&7Uug#*X###d&I}rHGMuX(qjz$Rbn5@Lz!-?te1z$?i50N zGItmvGgEK7v{6$A+=70SBYk4j8a6GnrOfydsWUlOPUOdXy!v^GsC< zfl*UG#fw};^fI1NM4cQ(G*g0AM4M8VS{Md>5es}#M7yB4QAC9ris%}iowd3w;*#wC zs!=Vw{N#?3gQln}MRbD__GeSiw5eAfle*bYJ*b2aXH)+Tsilbejj46hGvb3@Sv_j# zVDKf4D#k@cb!7FX`2Fy{N{viQdWo58+J4Bc%HUg;M$Us~J&k9MD5b6ZhZz<%b4R`0 zMX|}9?M5l>;CYXpAJnszS?EC7ASYHg^R-j^K#muc<2x3@e3HX>T*ubzCWuTaT5`er zr}CFvc0;8ite~UXU_YdsY+cdwdIt{~K}ip5pbp&1M{W>UPtZ51G9RiAN<}jzf$ch| z%cK2cmDgp)s1&()vw^JP@|Gzi>5F!mw6h;Vk;NA%$~KW%T1aGPJpUGqls;}SQbiW6Q0dtGPaJ!aI9!)VP?_R?zpek1JZ#16IIJbdn9p=G(Lb=(~;Tnr__m;Ae zNt5PVw4`Y_RMv?Mj`y&o$*Aq>pMWhHxj_g)hYBFHH!%_l{7;-FBT z(RVx{B0UGJ!fJ@I)Ub7~!n&M-kmmi|jKaFX%oaxJtjqYOiMXZ_8to+*PI#+x4hxNC zeR(HKy{NR#)%SW1V1R`4M` z-v2|#T&}zutjIlwKN^#~Hsj`Ay_kf3yoo)jjR;TZn*yHLgFK$qPrR~wLl%g}=E&+t z$g@Rx-u9S>5?y11$vD$!x5A71my(jWBvzNKOJ4L<(^E{x$zR1}$Ja z&Q|E5PU0oLrKVTA1qZygZv}!Wx`O0H%yx8Z`|%a~6JqMW6sAH(cO5m9pvE&6yvgoY z2;vlrDo?(aD+0AYtT}KZnoE!0i3cZ3Hf?{2lKn?7vJ=E?e<{g4Q6s}NOU;PocLQo9 zVpv6gIf(Egz>90KfT?Z}B*Y_Xv~+znH@d!HGY8M;`fdD|u5YMh6)Rue7yt25>b~g4 zTdDg+_U$q1eyQGCb-zr1t-7x+?5q1C7YQn1Om(nP8o%Ana#E%Lhm~VSdYG^LUy9`! zWK5m^qEro&*bq3f=yil3c7PJJauK^cL*DdxJe6giwDYJm^8_cV(~V;3CA`pCxnim% zZm8jYvfD|yX{NJ>ws0ya$Wf~#f9HO17Ji(snnV^AVq+MET280ULC_cN z4d6+AG=#{ip=w~&s1ycOT$0yy_L;%`=R2Wq*Y2pnxvn11bCXj2Lb3-GpAeHS)CxU(A%~qV4mp zxb+i0=eQVvsc&$*K9QqYffnAsg#L#w_=l=-H8a06srS(qCY6z|JqTc;e%S3=E}`A% zNkRe`UfFp9;uUJurB!e~WZ@Jv_Y7BOp*FoBpg@1P^Xc?YBBjizZ`zqbEOzS!$07zW zLb)>k(-+C2U z{1aw;M6Oyi{#f3~Va4~#8`a{Cgm~j449(!>PjHUsjn+}TF#+B!gCXoVlHIAQVckr`S$cltDhC+5Noe#a6s$UV?p zm_e^1i+=$#7{^-KPTcCZNlVC()(*5_X%~F>(;8(>batz+ys4p#@*=6hAHJH{n>Vd6 z6E1o~MopZ&!srpCS!Sj!5ELXOBk6Reqc1a~7)8)+MVBw@+R)9FEL$x6zUcByiJEdo zN?(YSrU+2#ch5+}N7PFr4Ii_e6@2KN1uG0g0mqs<`NI)A6HiqUJ<(2m>{s}rX7*dz z?he|TIg(|AnKn@OtwPJMzl0b;NN>5BcNnK5r8`Lgg}Ku4U;>_PVvrEcd4=lthc8~l zdpq2b)GnGC5FK-l5;Egvm9f+(*iGBh|H7l4<0D%hi(Ir7?^5H@^`|_RZZOj3VoR7? z-q(FNuk&oaKwA-YAn}#Mlo}wRLV4I!2FAr(Z@CZI)w*C^PU_HCY+{qt%#s>T%ZNQA zGogb$LUGGYq%k#yf_{y&H55^iv0U2>5q3o`PJi(uCId8?ZFPQ=#;>lZl;Mw?UZDO@ z@WL*N6F+wp2Df~cPwl2zo3#c%`+&)7X**ka5AuRVRjwUsh?`#~BCaXD)wIisXcv{_ zt6~TmV(;Q%m0?QwHBF8u6?|{ek4P3N{R2f9Zb!YhoM772Qh~Gx^4Y(ST)gL&5SgEd zl+tpW2FLzGr1QZKZhd28Ub{HMp3EYln$K8(A=7 zv(~t9yvozjM%JA{t?w7W3xWyb;f4xAkH-{0TyEjtvO8mJRem;?y$sdN^dOo$0a9jdMGHL#$B#d7~Sg_ETF^+iYR8nR!ShP!b{ksC9h*uX8~zfYPD@M+8g?) zq9!dAc2#ac>J1sBOw0HitQelmBkzySd1sVEvIfCh-C-KPdrN8d{A~9=ZT)R?@ofAv z5uWOH*e0OTxW-}|(_FHe{lq$J&CluMg|kGLc0oOBuAoNAIiFT&c0WF+`iAbq)%f%x z*r74`=2=J9iNT&XXm&PjjM(mf%G8E87?EM1#fy33%zn=s?mLm`Z}nD1<4?m-N}>s8 zTPS&Ot_w{F*mf--5{C3y;P!^1l&B3yRP{vUT`tP5$ddOrpEu-%g9s)% zr@E>8O-MUL>x8=B%!@4Etwy6uFg}GMi-&kRG1OH8xJH-xT#_wWs0#k8Fr`R|_-m1A zPq848@0J635e7u?aCebYpKtH1O1H9!BQ*uk^q2DAh@br9QwQ4yyj0} znS97AzVmttYxY8tBvXT%W1HN3%SmL@jGM1bZhnjao-fB94L(QiX7+^$AX|{Jl`GU} z>}7T+%kqxL`oZ+zzKs$3}a&d0s71%Y&ST2x=vn{H_5ErJyPw)z`^OI*TQ1i9A z;V8IB02iwY;4F6#ju)C7eEm}~wmr~oN+PQ_gFd9IniHBcA$EYcn!!irjBPUhYqE3z z1I@l3RvNNwe$AAlQ{JGR z3S35*)wC6>raCB1>v4Xf-3#9x-1b{ZtNJ=lSDQM+3AM@b23Qe(QLl}2uDx@E0ZSdx zwy0+_F;q8tokuC78XvuIMQmeifRAC`B<4)?Lbv0>e)aa?w#e#7gF~^W=Zv2-f$dQP z$ockYi8kb`#hGWAn%3s9M?HK|DZZGm$Pn`zozU}Cwm_F6U7}o)myOo|Pyj+ zw70@|a#h?Dor!OC^HZNe`t!GigF!??hgapqc)sGX&(HiQ#zX<1pDaM~VO}&#;6>yz zawvUG_Fom1L_FI8rHKK>JlX-Ji3g=uNM-_Mgrb^N+zC;Wjkkz7@N_xVpHld-5fx;- z7TC??beLC!d!UB6Hsl8vTrep+6tITR!Ithz1A6Bdm@b0f*cC0e7?0q+?!yCP{ImYK zD3ps-kIyqGq&}h<1IN5vra>wUh9I!ow4t8IdSQ*lr|UE99z%Y@p!su--pFG}5}mF3 zrCxh5PksAs@5ZAD7afUdk?k&cgs+8O`_BnFi(kg7)x0e57HVH&iT9a2J{GJ0x5Rfu zYT*4%!HtSrj*UAJEv|(KRmuNqR#U3YYTfeq%M0f6FW(EVgr_+>a=~!$0A#7OK6SdT z05!SrEu;Jfx(0`V5Eqww&2bf_DC_v_ z90m(@)#7+rbm1gEL7`M0!ypGOM$H4wx`SJ~@sHy7HcQ0y3BXFq<6(=#8u~d6ymFd! znW{1)jur1a$mP&OYTYZ?Ru3)MReoVV698=_-`aC@LBxWkRh6xzs>L%E+?>BHfC`P=W z=?`ITJTrd}(}B;8J-}f27L=wqorPK4XM0amOow6$CG4Lf7EfYg9-(fhZB_?07~)5U z5YnW8Pcp{BoE?#a_)Xmu^uR}sdM*LTF8xp=ThnLSk?9qhEJX4j)?FO4qlhHe8lRtXzs}jlIpVj^o7t z9%ks&XzCR%28+5n6QUP~)phk4^Oy5sR&8CQiQa|`Z)x=GhGi`;$=Jb>Zeet%F3WXU z!-b41_y%C*Pd4SLtImg(`N0Env!iCX179>p6)EQ?+G}AgHIWc)aL?sm6HXC#LyP=R z_7+EBjh5I`@@a@uhp3qc5J$Z27dZU-)i5YA0*U6j;At}XkHnya;B?3V;2B;{=V$&M zD+dw~tl2$Z5|CosX_F3Yon0X9=9w@JB^hyUJbhmsa4$m5t4W(+HA75~!79W8Il3jmqgpDew{YVva z#-M5_u{fd~4^>K8luce|lheowurqB_O4F@l^W-aeIGgAFHcxu1k$qW2b_kJOx)?+b z{oN=;O0z)KZQ2{1{YrT-n|#nFPk;E>bT2ANGMjF>O_xQOKdo#;dXixF)3)Ls1ri1y zQA4qP=E9A%?0hC+qC5he38Tcg%kHE0_vcO|N~l}%cB7|+Q?HI^Y*3>`dj7;;cf5PL z;ehS_bYk8Vx}1s9ux<-z^)gWjQ6)3yGK0YUdZ$zXy*=9QSdv-}6m}$)>)qH|v!|(; z=L$W)e!YFh6oqKyT4Q3$Xz$P1#P74`W@@5^27k_3G8;i7qEl~ObFsh%?lqAdeYei}&EnQEKkL}4MDu6}PI8Lj|XBanak#|$09 zqJukL{ri1Zesu^11pbp60Aca@Ivj%*K;v|g79c*Z9gVY+um3%k#VsW)X7=1GK$tbi zF5e-_UV<*D!w}L(G$2&?|3_}VK`NJn_^9Cz=>n!sK8%>W9_JQw@--0hagdMP`v1bM z(J3ISQ>;swfZRPS?+9~UD-4cCE&=g`#+|yX6fS$; zRQrvhE&Z(1@JU?h*T3=@-mZiQ;`5Q)@w_bqhFLs8GW=Oi-DTBhn|%y25yF=v0aJdmz|B_hUZ_ z!*yqyldv>ec)dnuwx0RJve91WQlcIE%%`{a3vzQB+72UKk`KeF-Et9#M#y;@}O^?d@{T71@*>j@q*^m`j zUU7X;TWf0LI{+yUxh*3gXEr)31!Gkf&~r0Y?KaxSR9kki4Yul&@KET@#(&_B;4^CU z_;Z9g2IO;*)o-{LdsP##DtT3pfC0r~;tvi4AD{vy?(5#?_?8O37UaCaS%DxEbnF&8 z;`_85suIp&IVWR`ZPpNbhf^oh;L!SyNE<88etozo>-C zZ0bR!US{^ax@UTyVoh_a0>TXiw}NPm4b%xE*JcT;()UA%8P0wIIhcji2_$<^!&KNO z?RoCsQYr7#0Nxqg4a|H&itn)Os%D#2?+gn_fPQ6Jyuv_|2U1HqucknF9oi8bgf9){ z0`Z5)`w*DrYga{KkhQ-}oQh>h2iq&6I6ocnuEHcg6yJ`5rgTQZ69K8fGAh7LGS$C1 z`6@n~#bM11)h3$h%zkaobR(Qzrs+e$O~5Sjz6fHkc^zjAd(9uyazTFle(<{AmkpLL zy-+<;r3Cb^4#YQ-C`6Kt@xxpXv)(xE&ETQI$exB7!RWKw6){`S<~Up_QLhSGfg9cWa+4;Q#WgL`jvf47RKg!VAy!~bcsCz zHPJnv?%-8i7d&7X!EkgIQoUv~LeqIzK!&oAz62yO!H$do*_P>JL@{Ft;$wmC&G7d# z@txFuryCIwO_w3r2H<(&j|SU$HOS||_^UwK!do6*CA9MR^cgU=UhrP2ky%>Us*tc& zqd;~M0F@O=L(&7h=;uZ60yY2`!YgQNp$+aTI0FH@b76MswbSgVBX^!AO{C|DUU4>P zkUIrRXlP!)XdTaJgT?Sl@@LgXk1pl8M9<%|&rvhNbHzbtIsZ@F!AG7LNw5Y;rxx>! z=+w9TP&zd+6!$#wr3S>^)W;E=QjKM*SqUM`r<2uvpMqqXn>JcFPf zMR{+j;a7YO&midEeB_0-Qz?+!CmCvp&P<0g`gduD8nZ^IQ3Ew-s$-~eQt(-7RI8Yu zHyLVR=%F_krJF}I@ggCd{`4sWw`8dj@Hz{e+82o|u=x_*EY}gMQ{lM^5oO-x@=Ksm zMfC^4>ex1~>X)$&CV#S7SA2&aRZSI}ZG&rq(P+Yy=wGdqP+@J`RFjgE7qWA#Ux<;l zXLzAo5MCRpb|ok5-o}S6a?4A6e3*Z4#s|#vp~$p%5JPG)jaizUx|c`#UeJgqo!|=y z%2(;yWo+5$dqi(pKO$8){u<+U8KP@BSzY-SeoZU$5Af#!cM7ZC=5(KTlNms^2cM?D zhlAWZL7**UI8=F34xqo!MJjtMp-ayFdN#Sm^bx%8MP=Df$+#?Aw}o zz)f2yj&PwPeC4x&=)_Cik~jYG=uv1~HYZPO2@Sk{*nZWGHV_QVDy<@F`g?d)u)Y|m zS`BD6c(#??3#RemFljl1T$bj7rNyv!Fz3=!0W?BzUXwXAhKleRVtr|y`#$NT!qA;*YF+e^LGrxLQ~<6 z8n6AohrPDdT3M|0Nahn`R%2bgw#2JaVr7|nYB==C+DG!fe`LwmI`8&2*d^uy)&V$t z(Yw@IcnpsXlT~KcOc)QK?c)_U2~Q~5tih~{{}3<9Oh82rS7)v+?W*-%Z)urg zE?J~bWd+wDX@Q^MjnEvq_1h=iREMFFN1nu##NZO#FTX7R3|fLweu?v*hh%KEgRvv#@;Mity~7~2EPq7EDFb2PKT<}rOP6f`{0{qvzEj= zys$$z>kJYGP#d|Ixfjq++GDT49H!9<@4HWZIJPv}#djE_>~?_f=Re^N{D15$5b$Lt zwyfN%7#3M-$HsE^LT`FrEJb+&cr|=K*DL(RoV=UCdhRTtDmHFZ8~B1&H|-J?g!i;d0*06!!&IhKs8-uT!z7<2qWIiqZk7#2Fh2M<|GQYu zf9XtBg=%!ERjo>noRslYKn^K*>bG$G+Yb9QH0q`5MF2*D9=q>2-n(9c*5^GI4KsBM zt8Psr+-K_Mm!eyyn~osllh5=I%Ysgm>eQ@Di%P%ta43*^lEH=PT$s&Ug`E@KO}&^u zKfu_|JV_AzCgiL%N~!mSyx0TPwAxfyk5*M|a8ku>5_fND zlF2o%eTHsSI7Bz53h!}xs|w2$8`T2a!vgx~G&8+TNe-MkoD#tq5}dCAC;c1RYzcs9 zeDzH_W1%~fE}Bus3r){7w9OG6#xuB{8=X>t+OnB8(5Ak;by9WJ0#EQ&K`fmzCHOH3 zy0=tQ%39tJ@RRa~;m#ja`;3HUVvL43Ie>qb3q~bPpXagOdT1wNA*8Kkg@XCk_0nLo zL6l{e{qnvp05guNF6f-T^~Rsw`Jt8VQG5)yaZIxf_(al9t%`4vL#Ek;OtXd7G`mfv z*;FsfH`;)SWp?M3$Fi2$2gz4(oMrZglUZhOFqYY66mlZV>cqXuIZQBCC-I)40g`ic0?2~vGlJaGpilODi8G7sAoWKi! z59#uv%6RcgW8M&Fk2aYqdydI;$bxv7n-f;n?2VdlC#ryqD-3G;t$b? zu$JMEe2evGQWvR5ViNKSe}mG9C1JV@Q{nXnY0NujG!)u1ogx)foGopN5Vo^2hO4p@ zT2CvDF-EX7FA?f6b2T0;1*J3#Dp_qn?Gd_tMu1^GJy)h346^d)e(ZaFopk^R=p+;HXI>gS4 z6x;Dbk-lH^O~~IPav1w)E;qEO60O;qJaq*Wv2$WKYacCFc4HrHQ^L8~)GL*GnRV)P zoPD$*Yag|SXHz__aS&8zIP(RhBMa#!AX)pUskb#ky62%KuRiSCN1qqjgbDUh!IF=g z9VnQK1mw0Xq(TEp_EAegcRL!h*Pd@w?Cq%P`+-v!KS1sS;4W4TZn8FMH>gRuOs3eH z2ZP()2h8>xs2Wb6iO#%jw9zzdjHW_`S}g|-w;X}(ED=sivxxos<)$-dINZQf~rIbv2#%xGr2Jpw(H(e+6WCPkI5>R!??M_lmCzn*O&F3qtvE z-J#K$s_Zpc7|(qI7{0H~Wwt9!l!alxS9M+R9k6S#Hd!HM$xm(fQ&hdvARtXyNZ$mK zwQ~An!T@7TVWw|PFec8OKKqYDHB<{kR*#QALyJ7)zh7!5(+G`zRptygV0wTVy=>2C z$Qp+=Sr*HJ<1Lmqr1qU{%#%GYayMykajI7jMiy=24&*z5Y%G?){{JwdWAvLLp8pJlp13n_=`fSc31K__Y~mK#*e z#H-CDhJi_b3w(=Z!T$hese!ppFn^QC!bCKUwpb1o8jEEG?;)^XV{U7C9=Z9*3u~ue zAkSy}FVtXG0yQc!7R$<$P^0oVYMc~&mKuX9X84mC%;nG_U`>_slYS1lR zwg~$7N1%%?aQ{->{L%YtbEKz~HL$)jWU^#@N9io>oP^TJh>(&+nTb@tvRJQ4Ob|7y zd)H`ROei*FbYQRS7hZd`30jJ?8ck^M(Y0U0dp_%y{Osihfj#{9*cFNT2`>pw2Yp)2 zvyU%CoIW=E&tYEk^2JfNJ@zR%^3s_~pKxlpB-fA0=$`6iZh7}R(mgqyM@6gAKU=2X zn}mUlqPd(D)T||=h_W}8I-Y616#zZD7i%dF$0O2NBBR9#>S;^neF#4xx1J#Hf z1l7t#wRTa>&~2D+hHesv-8;mQln;DMn=d^v#e$d(G>&O=hQEeHZ3`b35DqYy~pw($2 zi@&K))>a$~X$O1>lWw_PU>ymTDWIDhrIoKryVrJfrLt7 zP406nATkq_cl@Qi>3*AogDWAj*oi!9NX^;R){ctOLq89rZ_a)`0aRavwUXC69iZWK z377rXOi`oz9?MCf_7o@`XZ9cco3lt6uKlXovpIDeD|iMc`Nz4-_2;ygA3Ev|x;oFb z-F+3pmcf%Hhj!C-8T2kVde@;N^sOSDT9|5A1Vu$!gSVwpg|vxAa*oz1b1OI`P@1Qp ziCZy_mIhx|d-~O1?xUHlK1lZSPJ&5y|7NPsqCm8IR;@EvwQg4>-n?41_Uknh^6Vjt z$fH_&I-^tX%vZwMJ*KuoiNg-X?o*sjD?vsTUDxvYpFh<{O8(A9RP6Vu&Pa4%cm`ySLA>m1!Z z#PUcHK_~S2<=_z(kb+MJ-!bd#oNmeIbOz#vH6qkWcNMZnTbJ+IlA-!VGk?Mr3_DgJr_A zyEHs&ILAUT9aeF0%Bs@1NgkM<2%5wEXAz*|VpfXoWBDdJbtd6VIDi!r;P3uYy|RVk z)ZGjdvheR-7+HP4m&lg~`F_2hK>ez{_OSu4<70u~E7UX*dqf9^J4j&&(asr~cExdD zucKx)8dN--eUL;Gzm6V}v%r#>q2ZT6jMBO{6R5MiYIT)9q@RD1XF#9t-C zaH}O1tzM}=Yn?(2G|S1SrcPLw0@eAJ-ybuSIHs_Kh7xD=P|^&&inN4N4kguUQg90e zj+jGpN<_%D5*##Exhr# zv1B6a-IS`zo@_kg!JG95PETrZkI=_z4?S;sSYon2vLrOJ zd;$PuUa6{^k)x<)6e+Lx+6Kg6t%9azZJCnT)CEb2K30F5nWO8a)Fse2ISccuI$ z7-4F`pzKrhz686mKMxNY>8{Q1rKu}4Hrjf{%A!=EL`&Yk4*0`Ndo*gtm_`aImLRRj z4E|zdOdusHbrKlPWbMdm1W)iKIcQ7{2}&~rF9l&q8v3-Mp^UH^`zD&G_r+e>&nez( zxYt%xU2eTN1?x2x)+14=Rnm1tparJiHTUp=ak$d8YpOm`vK2b*xY>u_*NLRj8(%*>c(oCI0SWTwUSz;mDD15 zr`T(|T_Q@ORHMR_@PE+4?jLm%Fuv)QJa}!ci09q`vN;c< zA38(2JRwc-Vcbx#m=8Vs`3m3Fj7<7#Moa4BC;e&^O(MhxGo2lRHy57?Fq42GCPdEv zy{SJX9X2KHQb}899w)SC+9g|`GmaD5{~HQ`;baNzqW7c#=!~~k-+f%(y8_VqAEzd? z_lP7H-<=iOMej)g_%`G;lkHW<%4y54qeM02?yOS1-+x*C$Z~_A6oSmyEE6O{55v7)7A?ctxPIoeC|3xNd3cZ%oOO8{7Qz|&i1n1$4 z{iRzYfUF_UW9~AtavP2svzC$B5;wGgk03G5 zeFj*q0MJ0d9*wyn-AV~vypbo7k+1e>%nj*l*v!%M7<(G0zZ&12^F6ct`e6!u4K;Va z(&44yRdn2N=SQ=p_^YtJ%v$Ka#%YjQtKOpqyZ#bGfz)1k)%EpXe}CQOW?$w2Q{@_5 zkysB~L@FgAps@WXmH(A9&02t-_v!h0`&?pdSGqzQyKA{%?A$-T>#5+i?f!azFRNEV z5t`k78fI>J-X&MJ9b%PhhEOd5mNY=OWyEOx8&yY=}KEl?hD8(o&|xcxDcQ4 z`P4gCu09Is9gBDoL*L-B-0Mh%v~8mI--dBv1r>vlhOt95ma(~N?+3!wDAN~hWT~)b z-mF_^0>TV+k`uCjoabJEH;HL!_Hx~~hOAa5nZDv<=HJZbOJRy1c~$)UABw6aseh0S z$^sn-Akble*-(L{*2v;Z?POs&Z@q>BnduW=aS~LfdjG`vpSEZjij;g?)q2gICdf^4 zThb&cpCGsrCYBnhbIqWz4j9flG2$=3GbZ3!LdXG#2%@p3txhL&^yJ}iBJ-bDyOeW- za?U3wn;8tdRU;{@`Dc$JS3z+@mW)5j*^^k4b0>W9-|$JNWx?iX16LeXu`L5*m3+C$ z_?`IPVXPAhEMoo@)O=shc+{NCzfZ<@c507ylb@jl?X{q{*~8MrrevDNCmUp`xUx4N zqOs+>?+?Z$2@fFH5udo=Qg>-|IaQ!0D^$7AS2V1gP!6o&d-BiyID`w(@L`XtEyO$uR-^l}PlY^PW){`Ny5|3tF^wZrB){^s;UY@mqn+=jV1 zQ9&u!rCOJ%g7?94N%3~oGsBe=-6E#{1@VXAkwUF*do%Jnui z_~!Z`^i4qDBDl`0_$E)`fyBpDB-5$y1+I(_cBXZfxuEkg2E_vH|BNjDHD57Y6yj|7 zZvFz^z}0dB`&4LQyTBmFEM>rE%lX@UC=f~ENWyY>72o&TFE<;@vqauR%Xo=9he?U| z$vUs&yV6nB(Y>;}(NcL>&V$rs-MvJ#t=6d(9lm$F)Wk9!ZZBL|oFRo-$8#@$IgF>x z)W67*;1fc&g>w0EdW z=CI6DP?I;Tlxv3F$1y{g1d>@D-yU``-KtNl8;+C?+BES41Bq{$c58hw!MpWsn49qxi*L2(tRitTM%4rqT>__q+#*u8u@o zumh4K&P{5L`#w}|2eBvkL~CsrxlwPid#%3>k{r#-(MOK-7f-oNwm|}+MG!vq9?Pt$ zCr7Jt6p_PDs7vgGx`e7fV=Gg7+_XV#=yM~t9N{5RYxY7q0=hYBM#|JT{zq`kUdT4V z`FG&37gEk(=-ir0=ey^b&0@X9(R($_n3=R#1ax#WTOjqP(K#qlz0riQErH<6cxeZv z?k%mkXT}|vyn|g>b{0xMR41k<2nzWm!$g&`V}e4`mi-Pe0gjGOd6uUTXT%liPEs^8J-#vZ*9`nUFXeo& zGvpgn6Zk-CjY+Jb<|MF_xPxHML9|AJo(1d{UnLM&P4fjlThx=FdCX* z-WCfxQNA&?jD%U#gmlk??ctHq=ONcVLv;&MGPPps8h1|@O=UKXXUXVcCjt#zE{2sEiqFg6S-`NP>fSCU67%}EuI$(Dl; zK=kB1p&UE1*(RE76351OnvDTvH`L+R#T>MbzZ{wNx>u}St6e}qne%StFiBqgZHW0c zZf&PM@0Ha>RzDTo8N?^*ej2@i{d-Fd<9MOz?nhCU^0S-tYSQc|6UE*4u~+GS2&*v@ z_RiPng8T|BIG5c>xSoJrN%uA`%8`6Lq(FeN39aG4c)}#jPz{g zul6zhocl=AMHYRZXX!4=Hf6lgT}q_8==p>Gv&3rD>MpE_=)@(F!2k5Fy365z^mUhh zssg2j^~lYi1nB1MS4n^O_=$9vqKxj+WH88{zGOsR-$yn8uCZ{{F?sTDIgRXPbr%(L zd5IB13}5mg?(b#FH+z{*4W_TW2 z$r+EGNO^g;v#6t~aZ>PEYUHb!@+{_Bv-kHh<(s`sg~HfqFEGO~w0<|}zV;&Mk9{CR z7lmaBxcDLTC8r;fTJE3=V%wQ-XwQonWQJF92d??I%=i=GGZ42z6+#rjLE3=e9@LjF4VVwv1kr zfF80gXfaMd-;avrV|0_#tzPr5=rxcvSFgE=x}Y-_B>tNgusV(Y71aDn&qk;D)!}R6 zuXa9-*lki`=`s9o>1}tV&s6y>0v#${_EH7+~HKOU3sf*PtRp7TP#n&lNAn4w8@4u|pNx2Q;%ocSARJ|&rAkmo*Z z2v;GX?~85ajfw$w1zzRQi>h`QWo9iebGce5sWg@D-=rt`l1y)%0@%hW7VoTJoyWR* zGO+g8JjdUhr8F{7UbG3cV(vr*rCgV4U8V}Cp@m=8%7kvpui@|%| zpcbW_*SZ_wM@dtuK(+Gy6o&L=vHc{HFS9Zx&83`g;K{2RH|34q_U{Z|6@R?*b-rX+zb)LBS;&yyW9LtICcs3-`?B)gW=BKo3tnxUbx^M^`#lcir_c1 zN=n}RS85DtA@U2ItBDjq|1g9o>+Ax<;t?&RIHQH2i($}z4|0DgC3(_9W?-Xl6&)(i z^|g>)e1c5Ezf$UdR(FvB#MO$KH{C ze{T5Edp32m^IOr}Oz%Jj>~#sNe&^O~K7_x*dEf_;|fquDCw=@jO5MgHprWz*bwguaZ=+|Ee<|HkBJ5kGbk3}+S_eEAC>?7VVNGhhO>?aHzTpM z`LGm$!mwg2f3p6u@xzqOt^mS-z!HgCr%%=Xum23vH1Z`_L0S2x=Bh=$dj{?y{Ms?O z$AMtQ9pF_Id<_ruy&WGIo(4JYI9>LGEhRZ^RYiqsry|?FCmNeKdHR3+^X;P8d_*M5mSv9c9oGjET$Fn$`o_-{LD3dkgBzKw3+C~)` z?1BXzPbN*sdX)`DXTZ4+K#5k^c054QHm-j){?vkV4oT4r9P8sdbgbvrwJK!j9LsGJ zg2Vzf`64}UGk;Wgzt_2US4Hz^>4Jrm@VbrKnfgAUagE){V$bn4*dXNlby+Up7uy=R zNziU^C*s5VrO5PTJZ)Wg&vFYThVgOFZdJ-Cj&ITkvET*mQkDO`^`g%x*WH5x{je@8 z1pm>AhC+rs6Gj|(hoX@?_Co@B@Lv39{lSsa^Xe}ZQR3dDr@8kNF(dX6t7JH!sJciB z`JQc>)ctF@`=Ys!v2JBICn*J0t#1}OLbLp!{VqC7>?eUnbd=)U4 zUxn@}L0-R~5DE8)gljhj#p{ZzAo*nM=P1)bqW2MO97YUf}cnV z$hCKan;(0KC500H7fm&>M~WhM^w1G`QHvt;I07#CxR}5a z9X`?GF?36}#@rA|$|C5y^vr`-Sq#@y`dnhvfHNqSC->oc} zo%*58+CkH__;DG|rbY4%uk{?Amrv&2!f1MiyU8o8zKXx=i=d(UC0oI4tIu^xMcXo6 zibddM<87Bw%NnbQcJyuY3cnDPaPL6e%F-7=v}~f>_IM}?LBzWk+x%Ub^O+ppt*PEMBX7OXO4*|GJA1rq)IX!@?)MA5X2QtO zU)(c|_i9LALU|ca$C>oiH6O0DgqQ>9j&Dx$x0X$G7+^tsmmeId0gj_v-WI{r&h%@ z=wdkNhOvf&NMa`Qc?-|Nykp!jbI+#+ft0iY)*p%%{Lu^&f@s3nlu2(ct#g_MtVNd+ zF3J2X#C&&%K|-gDvBVXL**hj?pr^kC_QhUE8^FU<2H)=Z7-ARP#(P z0j)MI7>tqZt}726F`Yu#+Kxdr%Vrp9;5fpdO_!+9_;M&yF+v+L+I7E4I0$pxndWOT zp={WX{}dIA;>;6f>#U{JR>~nj*&455;;xR)nCbQWC6pYAO}xZO~H!p?>} zhl%kG7nTMe+Sz>Du(;1CI-S20hsp*Sxr3RMvKELA5$|RDB>N;!dw4qZOz>$V3|@=e zF=W5C#^5R5DZ*PmY*v7HE{bhqG}0Wg?MfN#Y4<*Vlr#LRn_)?2 z(#$XwQ)w&V_=y1il~Fm@)Z-Z9=b@Tir*5T0)$th5kerHZ*+{LsRG0_zs) z5rTGY?m6yWqB1et(T3H0Z~9SnV`@4#M(B^-UfY`C;9DZHN0;|%czVriUjw0s>Kp3} zb{(@oqEwr683@)!yC7QfrZF+hQQwcWB@9Ap!AIQ8_YjfID{>hvt8#F4^`3-kNw2L}v9m#PS#z&iQ( zBUS(+iplqxN@hyKT(;@_7OZPbeizxMnUb9y=OYA$7SsV}uB2>XH24(oYiadbU&!`R z%q-WBE+x?_t+lQZ(OPCis~(+|)Yw@ox<1bM)xD(>@H+fi5b^%n%F;H77g_x{#rY$c zd!Vz9RC3nsh3}L&;K|V}MyFHC9T8Eop;EGeU4D}d@d~VLAo$MC2KrTa+|K4ZM6+wm z9;$ocr@1j>e?!JdW^lsCY$Tx*)VPl;&P;*MnsQR>2g9a_I{I7L%;e__4EuO(!K3kX z`%D)-5j>4=gUIRwzcnp7SRdTq$c`4;G+ArX+jeaDDX8CtapecJr~Wg1GMM56zI`=a z|2uBY_c=}Tb6dXxPJ~ywVQBG?yP3&o2+`5Oq__dRm@0aqyJ*h}ua?j%-y3c;D01W{ zIrLhP!+LHR`S!v*b7`;+FZA``{f61RhHnqYP_gSdzgL%BL0a*cS~#H7_i93uHBB}M z^L+(_f;dxyujd4VO1KXl+6e(2_YALLvaqQP4)Uy>=u!?ly!P)SD()Jd6AC`*HGFs2 z3k_&S(ZPu%(MO`f>|bfBceaQX^6wHJrQo4y$y7kJ^(HPHcGUod-aqHjCS`Fs@x=J1 zc{+(e?z3O5`5~l27 z_W_VCp-D}QRYdFU5i^;6Ybv8kfV#2kw7C&4G^1Xj?lNLexMhj8$^yy8c<9v6WJ<8 z!bEpmc9T3`=T5V&;btV~j>z=qWcx1Gv>I{5p&wJxh#R>mE9^+iMt?M}JXd)V6!I5|BUBE55{QxM$eAInNoQ zBoncWu&Q37e7II~nxZFgEfdDGL_a%O@G_3}HlavdKkz>bVirn*_3y`77E$an6U6LK{2^%WwC6F<dkJCHGZh*%O!3O(Sy zZ3CATn!shx--TE^^!9o|w(ICdlhe7pR;Ngyi*-3D_>Ubi@JGxZ$w=SN;CvZ7exmz< zi1$72UMLn*$g;OZ-+ovs99euD@2Q=v8PdKqSl61UWi{vJ#qmk=NG~SMe8#XmaW7wG z$qsnH z21^4CqY4415QD;aSwv*F$OJ6o0H1=&I8hOxoJ;b^nxHm8H@MsAM@@8s4mXIvUl#2G zxPqYJC`J=^il%Rj1w~EHjSaSiC)j0C2X}0-f%elQzZtud^gk-Y4MaN3(~8W~obk>o z{(mz0?2AShD4P>@)(Z4P_PMxw3)71W+2YC`ZE2))UArjHR^R>mWeO9{4ab7SxW%wsgWaWOno!n$lBMCB+NfSr*v@+DUTlT2mn zA~E6Ut=eKZb_=MHR_iGt+^O@a#$+oeTa~hTVLMIGVIT*T#=zYoa!8+TOWSDC_IDm_Rn++G8^R0HTtA)AOJv zn+u_%7tp~Egpg-y(Su74wtA4SLBu&r6}n|2?82<`=4aAp3!vDiX^0;M+4myc#>mCZ zaErfL9iIV|*jzar`D(8r(CqgQ8ak7`JaX~oFW!QMuxjkWe=%!$t4LzJ`$|msx|)A; z)XJGX6vbbdvqiX`0~#yLSSh~z8NxvNWI2D z>5jvyPjuTGq(KRpZ;o`Jn+LCo4|VS4OMiq&cw^e%hhQ@M1em%g?d_m^lhIjjmkF32 zhEzi&VF;Or$WLR+=_~;@YlXhU2kZ2$x9#i0y=~uQgTYYeA4lsmb{!aPoMx)QQAeR! zeC=gT=uA#sjammra9MpOcOCdf+T!|Wi2rfob>JZwH~H~l&F{h~c>$C7bKmE$13%75 zEVC~v%wem=XX*0;OdH|0s@M>tb!>-wKLK@OZ)+XO3*Ujj%;&pYiR{*N4*4s&oA8>M zKU7T)9!4+BpAmdpv0G__gxB!PVHSfCHnqtMaDGposQ|BGG9YXC_}F%yieejiVljBo ztNIR+WH5(9i{juBuj;?unv138AjdB@YK~WPwybrfbH*~i5_C#wAvK=VnNrO_gJK7Y zY_d~pogJ$B4|+9Ys-m$fNTz)nmFi3Eg@0dc&?h#vWSwvIW-1sQlpoSofq% zsIpeQ)Z?ZRa_}w4{Lr=V&^k08(t2?aj7L094vG0vRR4LNe8KvVz2xOFwW)aUh$fI*um!v3n?@LB0phgPMJ=K+6 zycO6jS~Nydv#L|zj^jl$U4EPtYZi@<;8bRU)@l~rK$UwQv#UCpbBY0QNdD9)8{yPh z7{AP_4$(Wzd;|%lf3!~SGVzV6pQuh?!2;5PeJ4UZAFxhXmwiG!WDzImiYzNyDt(GSMYxwHPEL zcN|nNvgk%Uvt+F3&%5<@Ka<`3L(kHKg3o>0-K>@4N3`^?+pGFO{O!oJw=*lp=Z~x$ zKgV=k%fyAT=RYaa=B*ZdF)2`byuy`;pD;EC6-k9_-1MR6@Mn`3KOC8Mn3qj--TdHX zdSi%-GW&HH2z0NTIZIAHTI=drUK9dVx=hujNvKTwT1K~;ilsFiWfEBeYK3;e zxG-|ZcQkrf-l=g*V>IGcujbsN!M$GM{dUQ?hKcrrEE)H+WX!Hc1SADw7ZP=%hRC9E z=7)B5gdWTYO=n_^rZ9CS#8pL(y-N*S?Us(L7MMe?_|9^c24<0E62<`lFPSA;55EC#c3{8xr9!xa-tEEJ~gG(@)i)O~Zw0>LX}sc$v* zdS^ys@|mQ_Bneo_XmzD;a_^i)3sxaU8T`x^!y>O@rL;VD*Sm+}Tlrhi`5`#gAhu>$ zbA@kmWg98iW;50K)v&gaJ`W0Ftpb)CL!Ik|kOr%+D;(h?y|g;H%ZdE?*mNl?><}EFbCgxE5wErC4BUdVY$FsTx*06L zOhFCjh!C6Ha8%90+qrBH-lkQ61s9T@=|0!Qr6!SzVvr60lz_p_gP8QG+GJ96?qbXp zlPed%^ zbXyditJ|t*hi<6fx&`Fa4h3KTKhA*~Ev1&QOkJ~ex--yN!3C&+8&^>oeF) zdCcsZ7=mA;-G9uR7d!L-?*sEb$Po$xT*+%}k@XrYj5Fi$&8g~Y@b{~Gh6!cP88(x` z+7fS0eLyLEN?dBjQ*#{0CbG7Gn^Q-wAkhXxCvE9sMz%E`F{g2CI%^KNIkjEs`Ya(Y z#Q?c@4KEl3+qDy;@5lPeOsMi>sKW*k( zWRCR3WOe9>mZJCmfJ|l_Uru{60a+WJ4{H9+*_VcA_v^BP&&iMf5x&5nB;>RHsSz{l zlv!3~+%+6l>fvmbAX!*?rCkmGUgj0Xz3{>y9=Q((A9X`fTFTJk3g2_~c0x933%F&a z)T0sFL~IjT^hHWNIi_n=;@WJneJ`FEQ%*1mSL0Jj$FZCZ%F>_B*Pwh$qia+{+(d5t zol-LqWfGfps9h^8X3fI$)1dM_oXva=nY*{NWjPd|fwrPglb>MnoN7|1C^r6}EgE&s z6Ux3L3*+$@Oec#n#q$Zxkkh@1z;u(d0HUJ+>`~qqvjDyU017Hs4c!I2G#mDc_Q8=DWyz%GAG8*_UNu%mfA<>J+HILU~ta0Tdb}a;fhQC_-o9 z!c!&wlVM4gc|Sr}&kIpJU2OR>0l^5x^%rdY`|GiLiT?+SM!L0p56%B%fWBX)aPSMM2OXPGbBc1Q>- z;;e)Mt|5Y<^|gtBqUl(#$!U@ibeoY6Cj!){*p z0P^8*FY~u{tdbgLE@THH2X9xinXo_p4npG{ui{L?CeAX~_}Uu`MGv$Q}qj zDNQLgnJU@=F|tU9d9zp@SI2x|7tW&i$Zk`|vUjVajnSJCqlL;_lm*ZS09(h*u(J?x z*WIrQ8ewchoIXmGB>zlvjn@{O%_B7$%G4;3nyOQuFGUu~VOX{jw2vApTNh`)7~x=+ z8}h*+o0wF#&(%7^N)gDS`upcbq3RN zy56I4sV@t{}~_eqd?8&*hT>^OPvMAn6ER=}j7WkGua z+>UkG42)+LU}8!&%!(Z}EA~X9bcnc`0Iv2W%BH|1&=c4c+u8gb8cYAZSA>-eUAlFJ z+ol*`>b*M48f0-1@Vm7s{^JzQcoW+cOIYGkU2MrXHFdNa=z%5$cC2ES6*^xQ^QENf z32cg0%(q%+-uw#NN}EDx^qNW86ziCMy@qigU}&u-h(3``v5|TEHGu1+5=yH{HGuN> zXj2>qnK&Y0Vw<9t#W(0WJiaG0os7Z$Y-X9G^L>T+CXM}O=9{ZCPe z1ID|85N5qk0Y!&wM9AByBvgD91 z{st5e@*BgT4&ot)NcONM!pxJeGv+X3%9dvJ#j=P^WK9$?d$ESmKkyzpAj<5e8pcAv zcy}F8#=PYk!1YoIH~GKU4#bBj5LVz4)P1v$w0&7CcI3FPdG?8?G9;+7N z3T0HhG0LbIj3oROPdU2mde3t-BM?w>Yr72~Hb;VNp0KG2qVj;o=e(DssmiDrr>QQZ zLO1mgAsp3Ut^}BL?K7ciVW7I$@M2ukf^Iu`GJ^FN+FBT6TI^u)yL26X^5VN{3J^*b zt*pP$Z z{KGkkWt)p+)H9reN!5s47y;*7AkpT03*Z|AwFv*d-=Xgje%gCB-eCX`!PSs|F_yrw zKXVb{`8Oth4VfAJ!N5le#wf5<6g!OJ9r0SQjgziRtmrbFh$_?l@e=LlKIiE_Kq!Ks zi32ZToIvG;C@C^Iwj1C^;F$W1Glye1C%G*=_lecODu!yX3URMwCyr zYV+YQAtV&pHve4A2*skv_Kld>_!K7m?Dk;D?C*HV?qb)_U-YjTv|0+Xv9K3IGdIN5 z>>k?E0UcPmM7m5mzYeAx`^}v=b-OAWQ zf6v443Ff(>PG-PT+kxHs8}@K~sT|UYA3EHYdg5^k;c|xKYwOWLMmb^p>EpJTn9ZXr zY-oa1R432~3rMCwZ!q&-lOdYt97KIZxepZfjAax^!gjTQ-5uZ*s zBUbaJSch_{hr4Q&7QB5+e1puHuo_o^e3lGbZHq8%0TZs;APc(GCtwBaUdIY>9}WTp zrm&Q3#*D-dv7?6&RAqaAB}mm^F*YY$?qBl;$Oy|YLp(nL1?FZZDMz%eKxP!cAC5qA z(P=53NoX^SN)lRaiqI>@M=d2Mof(~I_T%Pj~?fLQ|A&x3=F9fB>6?Bv&2T*zfN zrV>VF1EDwaGTSL4mN7YMK%-`aa)@Fp|5py@EVnHv?O!zwpHN*kp z#UB!+Hv>-v996_*T1?lqLQCL>+Xp9bL&H+5@qO7c`y3gAT#$v43sk=?93Z1m1Q{e? zw6qQPL{u2>Nk=utT6~aYc(H0@E-T*RR6LsaSB4)(sTdOB--QRfTaO=*i-9wF zkR$Qb1-7DSZ0~ObY2;%87uUyxIJZ?=v*{AFhGT5DMS2=OHo;F*izp zA{hk(kL>2);|4hm0LB78=aL4Y`df#@WUtB zP|qbD!gr;lgY7C^j^S*`r<1g}hnVHR;y2- zNDQ>gEN8CaBMpEA%D5j%;(^y);z36AkRqK$@-n zB66=Zaory?NQ8B=>5Oymc93F~(*nu1&EWtPnIdu$Kj88wO*TO4^Bs9M%;NHSDRjz= zB@TYs&9k-$R|mDFmATF?(-9S9taLn-j3X+FSYk0RC8=Wn1I2=9(m8FrY6E}36dUn_ z!J{ZLB`VLenQl&d{~V_qNE4_9e}wJ9q#aH1TlmF+9@umgc^qE#fVx6pRUh7=*Qm#RU{{_i@53U|$*}8Pzh%fF)d;&SZcL})-PrdA&~xScgBtpt243qqer$^5a`zAz~g3zRCE#og1890-Jsa)FR^rUd3%4kLrZQ1 zLlBL}(&+y#z$BGXOt^Tu+DM>n#sQ~+rHQ$(xw%=%dKg2LMm*&Z1O(fH>WE( zhXweY0-}kh5Kj<#+MsgUKkL=g*dHT+yoqzqacS%1KYakWw?qH55=eYj`F+{g7Le=B zpa^*MSeX@EZ-tKHu7vgn%nQtkf>ntr&h>aGudm|X3(BsT=m%t7Cd6KtDBWk%Tp_$m z@#0!$K1Oflae6Bby3#u!Bt%$MjsGZRooc6BeGIT4_BwrEni$!8c~*qVtDMT0CSHEU&6wJY#?}xpCks$z62WY@ zf*orY&qf(;woGxyYL>Q^mvv5&u|(GwUEJYNVEVu!j!0{N3O#ZudgLj8*N=cc2!|jf z+j87eM(|fir4pJhAXB5TD?zxJeoa39DBaz4!Un?VHZh-s&9<^q+j-fMs@cIWP!S`i zi-SN3%_IRflA6K(F?Jza;;A!TsyO-Ld3H6`Dk4^Ml~fZja%6Q%7=Spj-KDKTlzb9R z%-%NEJM}3{%(%(M6gdSPlmi_x2Wh~G#`cQuR=x z!dJ*coGfNj6UZ?aU$A}o5)fRa>~M*F5O^XR=6u2z$#!-X2%<#n;QvkAv7qaP>K7~X z0v;v(uymIKrP8W!Jc|uP??$IN(S-l`v7QAMiP`u@KfDkJ^55I5_|%qWZZ;?lU;xy`9%UgCmM zZkN{}Nj4xYvd9nSN2X~)7cn47`qM6zuRoRDSV&}auyu0=Y?gBe3RWY4iKf_G2hqD! zUbr37JQU+1X<&aek*n`&r#nD17O~7OUY6h@;y0Ff-`!)`4~9`_bn$#Ky7=XIhg!&w zVhLA;Kwy00VU$Z*<}zNErwU&Bc^nD1>Re?>{usaGbPeo^d4L0Rx7Nv=mw4d1|0})H zz&bYKl6dZ=^j;yKp(X}@u)!MExO@s&isI2)9xlZX_R8pxXZ-LPG#ayfonG*kf6X>e zmo!2*u}T!X@Jm&ryohz9yF;?P%$C8sevy>cZUo4W2wQW7Tqhx9JbZqrP(Py zmKbTyNDYOfi|32c#ZO2LD4wza#Z%sbCg!r_7GCD1ieHH0lS|JQ>@l{R<6nG!Dz@85 z0K384f)uVt$r#&>O+L2UP%E+B4g!WD4bf4mV!JJnDDy0C8q*e@r|kFL=tC9^*Q{{2 zjZI~_m!ScPzeOafyON+XMRkqQQC(wlQQeDPw#}nv71b3&RF=SdjOvyX>6H%BOA~*5 z0k+X4|D$cAYeBPS(nhoSGSq@k`EV^~LkIs2S|-=b@w^pzt}RE7yAKZfvEAe*D3@HN zc7o@jmY(7QpofoGW0ut>psnTIn$OA8L( zjKh?<#@1@Y4js)8pmGnXFfUXTnkS#2(h;-KjxHTEFpnJVTV7R_*s$w_p`84bwnN9V z{`BTixa;gvRrbF@tYzdu?Rg& zfg-^hmXgm)p;J^W@h?UON!E7@b{y7Pt~tP&-|GTkw3KBA&amyS zfY@D6`^&kza~=pY--CT6R5&+CJ1Z!f1N9`u%ox=lqFT70P&vjTqO5MIQ{8Cdk*zMH zi~HEr(weQcK%MN*^?+x@kUa7BDd|R6E)-heW3aeFov)y#*v#c`m{^Uv@w_Sn*B zj)@Q&2Zm-ZLkh0Vqo$ST?R>rVEhpEMgo{J4mhK}rHSU>W{?Hw zJK)OUQHkjCgBg%sBhx@`kqf;w}^dJDWRH`4JvXnG(sf85NE zR~>i-{>^vfu@li{Qiex}tSZCDIt83MMH64|zbY$vDYQOkj$DSh;pUqVSoBk(nhcvPzht$XlU?vCG*9rR_;UFKVZC;^9y=i|p$>DAb^4PX+x*k5b`;lE z9rlllSCP&2WUK~86aVHJ9mSPF)KWHmo!HwLCSma|tm27SMXUPpgXrc<*V(;qhj8cc zE2OpA3?UoPLpWZ%hQF1AA4mm0Ssn6pgeG7!pNrK3_ZHmGkU^cb4viuHgF{+@!VY`` z;9`iA)w~Uur(4aJL3&&!+cOq&9)c1*(DFor)r>*@mdCK~7#5d zDqlFIGTaq%m{ghsoQ^6sWkPIaiQ9SEkt+6}6Y{5OcMv*HwSqqm9}-i5%pah>*uiXO zKHSAZ2Ao2oiBmV(3b|iFv47U9r?EfAUgS-DA`7QHUk~mz-v+I9A+hYnyognB2W`8pL0d(9nS-{(ow1UrS>>RnG;!+|I3``c z*N(~Naf7y}n)&9LbW9{nr~Z3xo+#4PaVhGmO3fwXl%3oosRLC~ZvF;fdElsbPBO~yZ$iRuy ztkg1ImZxfVJ!+OAWGh>b@qp2d$ZG!>E08U5=HEeMWnd(!-BQ^Qh_zcOwF3#MNNp}E zMCs9?^798`dm(i5Mqvp@B$e&%|p1wQSS`zJ;H424I~=><_OYx5*CB6o@q975_;g)AntxOPjxvS( zGsBq8lIQSZq>3MDKmhJ6Oa!M@$kW2c=^)TV8=$~q&2uv6B@X8QU+J4L>zI#A;+jqA zeKUtxvE@z#)S|R z-agJWh6biVL{TYg5-@WUX5J!a@VYQjyw>)1C@U2_ToH}s+~u375he+B{>q2HlzB#>! zyFr-qqZsx0uz7yGI}eq{2BPJ!Vn3<4m4l}(SPYkywdoI2;+CoJDFx`Cm-XTg}ADc_uGkg zuVWR9Rbo|k!v6Gxd##R=cY(RGFd51e$ z;q2Bk%(`f5Gs~ZMfhnaf?fbIhokx+s^&(Rhyf6E()Gxa=w{v4_?%__Bncb2*_)j_k zHj)HjDWOFHwh1wLI{{A*m^ejkzWU;9fqA`r37RGGzC$Pu8}X{|06x+*+>pGG-{)f@ zL<9GR+7vluf%=X;MMs+6X-JNkgq+WVR{RgXj)%k2bKDMNlfUal`C6pDK8}a>J~k?= z#TV&hasI9!NERYK8{1(_-{6=W#h#;6W=`8! zS&hxcsuH`_lPGhWrZkM%*gHgMaZGQ;7)aVt)tEZkE+s8(h$hqXz+en3s(#;Y^f3*mc+z zsOe<$TCD!}99^$+K;wGfLc$zgB=!F9sniugOt%kx)CyuhuN|H}+`9OfB8RC$#;dYh zBB&-o8VXjW5g?SH2KBHTR3!#`c0z&fh`fvqHQq6M*c@|ul!VO@&|_Hmd<`i;C`BMB9HA>K{u!qWA9%(P$U?6q^wQpi0^%BZn?)t={xw{51dT1`!4 zt8oCC0BWl-gqyfUl2R!Df(>K91k#22%ud118SR^awLS4(mQ6W&dgL|pAYi=aUvrSN zvj?!Po`20dp0_;jM2=g*YJ56wN@~wGd(o4|aPsb4Vv!=qUf41gi(PEj65Y6g@1{}C z7%VPh%H=xwkL~0Y3Kto%$W{Z3E17AP&Uv?;b9^i^pI~tOHlfcInYVKgaUkdc%dS+Uu=b~SeG z#v^5eDVufju$_DoozTKe^K{Pt>2c5?Opt+;btf!DCh3F@+_*d8hc=7>2vk!#$0p@- z6)BtVfLtTHk$1PkBN*kFSr_n}CJ1z+ZR6R*6g4Bz_Nk1R%46Nbx&fEkg^!1+LZ&Rz z$=_LiVy3srwS<|XI_E|^=OoBAhD?H~GTgW^)n>z(1i4nS;96b!jkx?Eo1j6tyxtS88C8?3Fsa$d^-18$Q>8G>L@|kbYn_nGZJoA zUtF>w$c(u<_lu7>OkoPjuqp~04ctj&``3&>ChS%OPKp-H3RyeS7uZh8-@l#-Klre} z<7^nnS_E8_5!364fb|-6m3Af42pdM1QfOF`w2?{sb^1IfJ=`T|d~6%F6{^~kqjamH z!e3Kq*VG{McIMlmGym~nr^Vxm0m@vF#RJGB#Jv|cZjJU`8-@}CLXAqJy?Zh6*cmP{ z@R^L*n#a1g=>~kzE__^Ubuj57o&Ml5n~o=ittHI2RA=tBGmkF{G`5x_lVEEFZrs@V zf(=870%B`i&9#aJuhykstxNyk6a_a2T%zE!8Brc(6-sqI);yF!6u1erj7iIN`um*p zlR|kd^EK$qH`^Rmi{0#H$X|E(V;O$r|&BqD^bSH=V*=l+twxGagNT06*Gx+bG_f?Xg~+QJkzL*mWBAYzYaM8@DL= zg@$2U2I_`1TxL^z~o0uH;FX^GDHi%~fzu+Ekt z6Ph<*EZ4bP({fvk5}ctRFjfGY?geCk_sz16mCUwE=e@?x3o9dFc8kaCCwHA9zQ%3~ zQROvn+umF+0YqK}uvg{mPS4xsn>gJX0tI_%LhfeKiNn|9*ja%4eL|8bH}K5l)!1sy z4v_gf-V*=KCg$@qc0`O7EYr38<`RcdG81zpQ`YL_bL`}k=!iyUnyqtQX6GEAn27^1 z+zezwGq)PexN&%!6{H_%m!Mh1}Gc8rCXZC65xV9&ASlpG>W z0)`ML8S#|En)`J1|IIFXJc11}Wv)&h)io8gW@LJsVDp$MtaDBom2(1uEkq_Z)F{%q z`yX^L#BxtSuqDhE)p-}$d4*t=JCSA?lHF2vc7{2{mr+N58+44hMJ71 z-u_qAV+SvyII`?|jECw0rrfKO@3h=aw)fc`6&9a!!EiA!HI%AJVyR zPs@D*R1Y&-mPYjjcHZ$&Jx(AZ1E!N#V}rQE5;{j9q5%UvI{bQJMr1E%O;+eue6uS9 z|HB9pTvS7`u42;FI{jTvdKE=e&RZbmyb;qW=WQMHt=E}9WM`g)4A_WFA_Mwywy855Bi%ugZ<&0?5nl~!{#1S-bQxL$B-fiGM%wX5bsFSTMfyR=OR#s5xV1d zQ}9X(f2SWWQC-#HBeR~eycjU&NThmLBcY3j^NFNr$jbM|sf^Amo(HZqO#4ULd zT85oDT&+vI79ZgT5o}Z*Xxi+J0={W+Qh=NoIDOdaoDER7{-z%oig!2SKHkkYmfT~W zO=}3J4!7nyJEgs)CQz559}_?G+LT~JhfSZ0qn+yPO16C>yWn>>#QR8KajTg?eS55y z$A^_NjEl=)%|BXi_3>l96?z0Gykqz45nGXo@RR1)raKb7fEgj=e|1=lx` z6oOJuf-D+oEp(b|)H2%@yL7g^WE{!0ng3HCAM6OmZLpfKlQnRDt?ip_!s!K8u|>2* zaIn}*@jfs583V#N+#-aSIH!obX`ZHLftXkvu+xg3gS{FnUW0So&9wKOhCL0YABs;O z8ob&w5b2S3XX03um-x0j2T9^}LxbnzpjMem60aD77b(+73N~@;gXxD%No77~N@kQH zEme7~FJ@b9XJiAZahXeiGnFhJGvBixlO5DRfhG4=^y~3Hj?G(jM={c0uMnhUL1O9y zE}E_@MrcuW`b@7ieMqJ+souaY=tSqf=TqoppK|8j^x<3M-3b=jjZOGK>%6x*c~7bt z5^lhjb=)1Uh(NYvyD7bdPA~|LQb?8EGeiI&x0)LrLSyw+z3b!M{ESxMEaCTSS_?BM z+C!Y0^KqOFDi!bL;IWAlsy~ozUTAsG@eIX#N!10f-W2aS3K-_BVypI>*e?cW(X_M= zt3h)$!vYei(&}WQ%K90mK&l?;RY)8HWmeZ<;b8l67e9et80uB>9a?5pOq5VvksYlvyZ^7wrfB?h_C@4sExT96R#xLXOoY;mx7Qar?r%S zmh6^W&?$mXWqKvl7MLfxTikdQU~z(_A^Y*4a7G!%mvYK*OT09hGPG}9<$ zTh}A1V2kLejX0*XrXQ+Q0Ia$Lp!{kh#?)u-(3r_HrQ#knrKOwI^9V_r7Www0ozJK# zTygmnmzVwrBcCBc4l$B_nwl1qJR42Nx&&cZE$~|I%ht4K1s{v|1c@MlZ_PT2jpcqe zY@SMBdlbYCvsR@MzNox0|AI6qED> zS(=rLYg2X^6kWWNZypyzqm!={{T{&_n?9g0%QL;uv!${c6HW~;i>Mja1{rLZ3^I2q z3m9MK^0Ua?C(hC|6Q%}Gyp5yKAf<4`T{grocG&iv<=L$SK*6zF;(ZX5kjs#^Se&h> zzI-tb>HaQ^7X}EF*}_EiHC48p722mhhv9M_j;ph|x)5fcDofOpNCKwf@|MI z2fD5QpkV*fC;$Hx?73*B5n@|kLl|IEf<2F^ui2(C^WFser)Fms>^LTwbbf<9Db?y- z2LgZyFW7M-lwZ7?k2O|wk+LGV$Fkdj_|E)ENQC`|(SUhsso`jeU{QstD)g1IO&9Zz;lo|XEIZbA^Ny4M>B6}^6KJU-up@wBJ7H+P18BT4#LFR~;k19! z4Txp*e)a;c)~S53<%Mm>34_x6IZ9}2kGg~gY&d9Ck01jOg7<^Tt5Xc_kOtdHbt=qF zm0DvA6ITBBG!d63pPNOMYER2sD6>q$O21B}>jJ#IZ1$Gn4W_4Jgzg>tkod@R{)#s} z$1yD4^+SZ-=(LEREXO=fA2yF*R0(5A*lpo=a6kNOerJ6F63GuKUL3b*sTFKiwqa?! zGlaHVG01GOk*w%qEpC)&Ay(_8Jc~Ji zaYE06iQJwAYhl$5feOU4xO7QInooHabCF*YB_GD~EOrqs=N(R`N(qmc@7l9as6q|l zSqw;@eJ4es+Hf z?=EHmy>bPO%%~BufvU45B0LfsPjk@)t)D!yT&^h|kpNQcV%46Xt%iZoOTM#E3*|Cc zUmA(`mZ6wZyt0}HiWFmc2gXG3YlptN~xMMbTfU7 z-ewjfaU6t%SPUhj6}uk{OlrnSAl8$ej1BDUjlA@;G2gmKV==~X)1>?kc0!upv6Y}a%XM#- zCV$*OA!$#-y_4gOZn>z&DaH!MHC(9K8Ztj@1wZUx(_M(H!d@IC@NI9vlps2l1YvA<~we+ktt|Bgqs_ zdtz9HLb2p|DK2H!6g&xf=Uegev3q@NE!=3@m-T9)5%?<=(M?QmO_4uztmZ{VaSo+L zah4Ei=c%QHV`XhQN{n|`vNqkkw>o)GL379*#aT)q*+VXh1fCV45PNo`8VO*0SEI5y!SO-Ke7dj7 z7J=DA*Mk1R3PQX%4IR*Buq19K8$M0n>WJ@kN55+ zXmyQY8~iqy;9}d^;bOKBduA(ZoYDq81r5>lfQw}mp{CSB-!Nb*gPeCMgPgQ%Yf@lb zG;6Lh$lFkRV<9gcY{!?+*9deO{d4==9B(4Pr9{@3e$U@jvV!OT|%9s zjd3*{cZ&24P4XdbFz7Gef)M~7emfT?`6=)?C4BWPhNqe-W-1W=eb^RwmhXOBPKnIp z_sV)iQk)^bMELF$^;6x>w;2~_!U$O)&MHSg2=cH@wU+ID>v7#)2sl@;zXkB)-Scp@ zx_NJP^4_H;l>a3W{{}*OG3laBTUSVH*^31)pdXhJOb@R*WGO<(u8`Px*_tqvO-_6; z+>|Y#l%lX|a~bU~4tSncin3q;(f+M~JAq9eSCM_e9g|ktA^-Yn;Ki1Pwq?G!!$tgd zD9Ramk|;AHNJb+Yz3wqL`XqovDo*K#y?E04fe%VQC|aguaP-4$f~)%<7bR*9-} zZg6}U#TWE5<%kwSJ0%Sof>MG^M?Fjsl!DrHf>Nr3l;29FV-WBczoA?GuJuDR02p%# zWoRBY==w8;*v%&~TI*1WQ7o`Tl?>y^i_imDcB#*8d!HhP0PBUWB)V#jN_3yO^LU5#BpYcRXi~6ldV- zM0okej_2_8`0<=5i}=FpZXQDsCX@gLzhX3w4430*tv6LX=H_^Bh|)jw70dgi)uJW8 z3WZwyRyCs%w3;4_S#rON{FUq{;iw||^0n;eT}t+ombL6p3&xb9=0=Q{GPYqpRvXy} zb;M3GL!P>+X>OwTXi9pQ z`2d1VkH%d5uajYkAe%b8PB%4gv@?-DB%I6SzjY^fYl*q2VZ6JA_3Y-o)yaGIURvNL zL?G+_=q6q`6M<1f!t)4#tL6k_Oi`b>5KC4yOL9n9Z0Jb^Zu$XW0wtk_ zgqdi9z|GtR8Tlh6^YZM@p{S3bC`b5@vfh`lfL^)U5Qi77Xv_WPa?jvkHy&W9o|nazVqCFq*Lga_)eCN@9=JN@f|N| zB8L|r8}rN5puj&6-w6=Z#b49CS(<$2W>Uq3kuZRY^vHWFc(Q$rqaEoP!knH| zq-O|`o*_nho)!R3Zky7l7yH+|``sPzbQV%kWWI0YxX^fxVfuo=fhA*Ed` za!YD@R=TgS62-*3SFx~e-dml#rwB|7DGd zJI}=!la2)KWxcokWDLHuP*_Up@3WgME-N3#iv;Z>xPN<9quv>LP6y`&w`(QBhY2D< z`w8*=X%PSMNKk@67kyQ?+NDICNYKPe4l(Int95}eOq2(kF=%v@ zss9D3lTW|ls2oN7-5o%_3?Nuv!a1v8Kfa(Z9eQ}wkiwgHPKMvsv8ZkT<*FF1Vku0V zh_x)QSFYozoXyNp!UW_Ui#UNvQslT4XF}(3f=6& zhf$6(NtFSkt%UZMJ-Rz4?KBX;D5qgNVST1u(?x00SE>U>{*Gr!m#rn340^gfZ2Pi* z&C8xGoBlk-Uf9Ql%$}F2wVKjmMJJ3B5pM;I5{XAYCQ1}y7fPgq-_xT+#~UX@@?C7& z%c=QZqGD*Us}2R3OGJkqV97K%9noRgDU-cE@x{MtT%SP4EMb{_?$IYB4Bv4c(w+l(J{YGDz>FSxh~ z%4__f6U707PUUQ$E9gWaWQSiZe#;beI{$7Lw~WyrwaBIP2k*wwA8A3Sd8oP3#>+ys zA;)t9{m}@xn#1^@^#^OOqM_6u9fbDNUAlWFtv@mZofZ++hvuiaAi4b-HNX(Skg(!a zXMPo#4)G6E#op_@n>}X_g35{zena>VXH|-lmvbteF@Jk*@h?A@Lb6_;`v_)|Y62S* zKrLe(pZmV9W1c-hsRc`GAf4lNUD$~O_fQSE7hk+UrhlvIw|2n`DP*mCcvTn%YDp>1 z1TNb%=TtMJoW*?{+bY}E5_XfMxXW&tH!d4gGE1SWhOC5|=tiWedi3P$(orEk=t`vb zZ>_ZV`BVi=Su!qLRFZ945HHODKIR6`2Mu1uMV0x%7B;Ye&!rVmjB4sVFk5cRSU|bE z06ypfRQ(Jp5 zNM}M%eENPn`pGo1g2>s9vhyd%VDE9+ia91W#m?GqRV2{S-mhRPTxDw9*)a;p2pnz{ zWl)9bdO^crr7yTw6Ip3;Ggo*`79!g|3gR3>eD=#Oh+mi-M8Z(t3Qb;&S%vmJb@I49c_Uz2QNT2N@_4mP zuucP@oK^f5;xXYgkBVHYc(+=AR>JyU`J7vnV|m>~>(AyAobQp$>(BTR z>(BPg;ACz`%wQ&G&A+BZjAEUsvPp>0Hwn1i+^D)ItDZb{xD$Y=1a4F)WX3oUYL^=Wgy* z-IV?D^)gkuZy1%pga^Dc=MQ0#3x+3fQg~&x)yXfFMjoLBpLH{b8lOk~C8YZ(LB*f5u!G-kP4OqQz!Pxc(tONQb-K34BU%hi|&Q*iZMJZGvC zru1;R+OAJ)wd&TusECvr_wjf6cSDqkEdHUQ?49 z)Vj4!tT(1D;eT*x5qZ;Dw^J9}mZrzCxe+7gIO z>}kN%cR#GLft3tCRMR7EG-ac4kA(kSOVpUa*@IlQec2Ug`>X@B$a0bwqp>Ggoc4CS zCzmJ@8*=pGw8yMoew1DUjBw++bFyVA)E8vv&*nd!+xPEB5X$Rx%AY=#kJ%Rl{$ zi@pGC5|c#J*A5G)T!MP_3mS=~$&Sk@d1>`P*v7axZ9-v77Ew#nelo7G4X|6%ge`N8 zD{STCIKq~oFcUvb*zz5PE%T}6YqqfE2PKqES!|hF#l|n=E)ZTsiKiy<_watgRcu$i zs=F1w>Nxss=n$~n|1FK>JTh*?>>)WSHnO@{Q1=pCA$p-6<9&Q%%V54%jDF-5&#bT& zI)<%2alYsw!d>>%SlOGlTzDBlLk_3LhDS+WOfN!`#0xt$MZt51{1yCR2nj1-RV~}j z%eF$-da#3+;2NitS*utzM$xdeS|kUjORW$}|9C4=fKWv^mXKVCf z>Dm~LMgIo#g^seF9jWPMz_ea)<{;hbTaBt{2I7Og&ZUM+#q1!@Fd<#`v~H*h@{DH1 zwQfj!04s_!Vo#xCwHV~dBKPcl$_)($r=ZQDgmI?|0R^ZR0AU7+gBBg+@e=SYpVtJV zB)tIsha~-@m;FDN^f_pn;bZ#>Y9}e_15DldO^uEBCh32A>1av6)8q~&Scx?=+v;79 zZYGx$Y{t}bJ|K=T!-_7krrEUvAD-NUP+NStLR+%;lGV*hV7 z-3q%;=+NvSFgP@!J@%4R?yMm^p%$m|d%bpO$RA+tuQX~bxh*PH&AtI-QGqGmr20QqBZ%2xHG)Hv!X@&cp+^XC!^Cta@6IU(+TZ#&ah6iIRE0Nhi+q z6>5`qChV$;GqII$_kT7;sBpOyXX+JdMF=-JMmrD-t6LfDAo*aGu^j-69fb0!+b|pT z_Gf^#wArY&XjR(4fV>zpFfg=Bqbg4-kRGj964zMCg6_9;b(IMq>180ffra(T6#|fJ z(;zpnHjQl%&P*KIs&R--o&)Cjsl;+zUD*NOM>#$`3hDm2iLvzH3o_u0q;ygBA<>g;Fke_v7AuuFH2eK zj+Z8Ja%hFLxuS{*; zrA+OVCV-&E9HIdFQ<<^NsJAhfmln3b`zKB9E>kH?}}YLKngs8b_-OJ55hwB`x5o^v`i>)Y@?5pK;*bXM%J-||Gzk@&# zrJ>dM1c)66V#|t5<&!W)WqplWWoC=FYJ2S&Z0w6~(+JeDBT6OuW~o_1SHN<#X}FI=>n33W-G>0T$LP*KuU|`F*-e7|0MJcIZG!9$+P(#oUlq4A9L0tUb&DJpl;?~M2XPs;bE!#TeYgLWY%v!Qc(Zm@)zFS*rm} zLY}M83F|jXo|h6<_3fGxN|Q(B)VLrz32wr#HoG=!ztvt%_9g~wPrRD!FKMBZ)1+g@ z-Pmb?@@sj{2W5SezLj8ijQIdD^8TNu6Y&2+cqK@st#q)fLJ%;ub$f9+S>)gX#TdA21=V9kj0M)tTAK7O|{Fzy(6wR_I&t zPTngLhQLUHO5CwoV|M}~KEUm#|N0-gg^prP(Ngbv6aZS{4{0g2V^E5a?)a5Py%^$Z z@t)OqeYQQEWbI<^?g3tlFSKq!NIVY=s0RO4kj9S6NJ1LoOgq{TA7X7k_o$2VX^4~T z=xC`i?{frM1v_uFTEOb?wJ?SSP_~U{@t$h0%8IVXHgRB6G&$gCn8ecQ8fy+s61>e; z0d0cwj)EFt9eaRE^*{RnQWdg9;`7EK)Yv%6%P{MH|89+_e;^c-MJoAAjqbG4W_^raG-l^E z)zle#(HLJU^rBbPqA`Mo9ln$$sHBaqOq2Zy3Zz{^o_*-NvZj34yCg&yL(sQ z7L?8(m(*mDs&kdp{K7ijhnUcBTO6_jkz3^Vv$$`~(|t5L`m>#dbnn1bOnyGb`}mmA zd-9VrJGX6#y^s$Rikh;ku(QsgYPz+s)wZ+B z-Kkk*4!+Y(_AKFYVjGC(Lk5$52O&jPX{bI)nS!Uy#!OAgw)Az{R&hjJgDftdl4H2E2!F8FUA-2fXA#CJGD=f!UU|gl0`kz z>Z%xgEX61i=3mG1dgVHfLV4fMbl=b$F#Dpc5tgv#;aAbTOa_^7gQ1N`8}IFBVLiOJ zEZ(d2Vy}7T=UUM%^|E>JD%SU$l`ihev{Foh1X6YZwifbYYoQ?)pyrs!y^i&$o#@%N z3{jpduh%$qD4AWP`l2rk%2mDq?^017MQx;-(NUh&sJ*e4mvwB%2U3&AT~VG?2|Yz_ zM&Sc|TY+vn1|(8?1?vf|f2Hn-Nq7ay{9q+Vc?BB?D_Wr`qBQy6a)etE8V;}Ed!$IH z^0)1UDJNbpHpf{n76SzHgzLp9Dr5we4IMjzN)J+rLViylK|SYj-CYxqd>b41qc7?P zinQapBh{@S1z9gfWrr>Ean)mf*XT!EnTFrchQ1#GqI z1OQTjphc|d^{J_Dj#gnkwBsPVziP*!6rVC^l`ca1)AwBDtph;>rut3JDAkb4@P3>? z&=Nv>C=D7S6M{iS0szuD&L-G0iO2~A*@)4Th?WxYlv_1ny=$$q3;>MfgtD+`GFoK? zlm7m0=!wt&3^-N$4!Bl|g@A;#xRJaV6E}M8m%2MAV4Fr3HW!8Iz-YRrC}v^3aveug z{P9uUgX71IX0w=6(~8L)H=>$x;zk_URMSi?Svis+ZZt=5)#KtD=qi|HLSkXj@LCj+a{Mi)@&E`SfZ0M!OD zZKMU|Ea1=IcC`SUJ7$>}R)3vvg&3BS1#vJ+#rVs_9{t~0CWfVRtn}fVG|81FmvhP5 zdtN4nLv9Iir3>O<#U#L`%shB7sda1tqmtn2T;Q6r@8D6sIi1h6e6;=elm#C&>-OE+ z`TT+?Vu#pG)r$TC(Jiy_fur%zS4$&LE_ieBgY)6W?6YnhX@6%*+u5j$Rs3@#Hfz6n zG#+d(>)d$Xo9%s3bZxf3vjRu*KylRV<=JcZ+@xrE)_|;Y!WnKB;K=c9QcEt=z)2w> zt_Gf-@ZF2F)P_vOIXVC%^=uGe)#j{yPT=ih@g5dvRSZ~ld#!uCmYmRL&Dw`BeN#64 zW*N+{T+am`Sj|&uG_ru}Tm=YpT+|_R*Vq-^b)t&SCY-~0X%)o@do2w%sEWP!RHWCl zRO-3Qsi!=SU(Y#&|E)Cm3^isAVo$y3mMMP&u%^E?4Ep5h2%nBLG@Xp|la$XR*GePA zPVcyw=MwtNSsiBULbI<8iJ#fLWXY2H8Fe-72TIJ2@IsPmj=40vh&Ri_EBG@dULN*s z`ookhknLGn@mM&3gB;|xJe(J=4TqbuXVuji&8X-|OSmENk$<`>%T%FPW3GB>B=Y$Z zhX7)8UZX|5Y)hPlm+k#UX2N`W>SoG~SUA6>!2ipWmLY{%8=kvp%Cu)tx;O3%;~c<^ zXm>0elxt413sq3?<~i^-e+XyCBZYe1#@Fk@OqcjEzML9kRat?B>I)e&u~_9PQeQgM zm(~2zs`8XJ`HV$)ow($rqO9GG;l}p5-Eb~)E!jBwj`g=q2m+Er^=+yNUvU{XyxFNZW zUu(m&QK`;n{I_k5oVFkZ0vipEG`-W1{E`A;L~>jokMiTuhU5%Vml8tB>#@6ap%SbIOHh3Vp5;b zU@oc=l4_jJQh&!7GpQg8&0C0yH)YSn``ez3WV<@;AYmVDNPds073W8$xV{hZ`%pvj zetZWNW6KyovKqs=R(UvN)rO0#ShyIL8tgR?{yhGn&=yRUSqodOy+6ObEnJ-C?_4Ss zz~>fZD5*rw{Az&6NBjjZ+xTZThUa0(YfjD-n|#(QI$4FRiPt|U6jZ7xXoLE)o?o`( z3z)l7ec7nKY~`1qt2~YBOTYRuz%R@2rM-h2q_m_@I>-n*25dlZfS8>VZmqc^j?ae z_U?*D1M;){9jBmCOIZtEC1CHhZM@*Uc&a+aKQY>uhM%H9q zn0#RW*zCr@FF+axcp1VaF-0}FR;ij;*yl9&%zL489NhyMlrwnkc$GLrK<`(T2un*T z6{WpCkr$v@s!G&FI$`t=@yKc~RP~h~Ft2J{Ytiu$kjT35I`uW#;JT!3$|6fPyp-0JQLz0fJr1)Y?&7p_Qg%vpJ?*lX(mXH zSCdzHf-=@gwLj%;-{QR~vS-1cn8WfeyCLEWFW8QB5V~L#Ej*dnQ$-J5-gf8&##J$E#BAiK^6eijf6-De;G6SCErIh9t)J zesUgJ&VNPLJpt6S)>g!3;KukFHdm^&WXi!@*tOoU;m)>dL+07Gz2stNnqM5)84R(m&9Abd9Xoz@Xo;euOz>U z?{E2MLc#O#p#RPR7(AA@8@ZS*H}XF%g@Bj`vt!N-t8EodJzFxYbZawO)ff&Xe4(qd z4*CPQZSM~vt$~trk=~0c2I9?uVbdGNp8t^nl$~!yuZ*{a!!W~Y!(Qy1us(p+dTPUg zN(k0`EO3T;u;H#d-wn4m+zgm(c0S4o#2c>~wu0#JnX#*e{k13M0nBIoR}9>97SOmE zspg_oV(_Zrcs4RLn$fVCWBq%!`83Ybj)hAXoDb7bxtgr5?Y4E3C6dB2Xj&#AV`hGCuB_k@-;?U z!coKwfRe>zqR4aePo@+e{1~sOv%<>`?Alt4D&WxQUwK}}O%R_qqO~`o)sLszyUBmk zU;H->e9`02-%8W-#hW8Afsf+`v74L2oQP7ufP%76-4DDGqV`y(qv` znx}O>BSOFzMWuRM&IgXe?ek#(p4wjGg!^Dk4G zlm{^r{CQ+gJSa>$8~9F4JzJPGd8wj$fagCr7aixSH!Q*5aT*@LdIqzsKO%ynh#~@} z9qLLm_B8BRUcMEb97g5`_b3V504ZAVBFeLTKgTDZ=?j}L9NA;VrqH3xGyjHtZ>?w# ziv&gIg1B=m@0C_?8Ki;NC?!GMI$ULes%Io#R^kN3%_bNabXLrR=`i9k3BNX z?)P85>E4t59j^dnWOGX%lGB)L1Q1Ll2W?hX%>aMQNjxIp$ZM5mPGq;=dIC8}J4aAF zK$e3g@;9N|Dp3pn74VO~cs*X9)Qm?*s)L|$95UoeiH9vOhRs|owMGd!)m4e8ltJN% zG6rWev1bz+9)P1zjj~{lTE!)3bjV35U?G5Yh+9r)=0mR3Whcp+;FE$`!$K*f2*4W|MgKAu zsf$c3ngMa-)I8USp^cD|?dOsGd5&uPnje@rKZA z)5+`SvMH2{v-xK%!lTi}OADbrbCR?WU6Ml&A=_*YH~Js^CLxuhMQrh@W>#dYxx-(+ zliq>;jK0@UI!vXFader~mm+;+I8CIx=f*=mRWYF&h7>8(trj2a% zmv1V-1_E#}aF|zQv%g|9fO*YrI1<2W>mEi0YT<>TlX5+q3Seti(;u5n2Q8=^w8XOr zE>n{M6{LrAag%F?!XPj|dVe-qBtB)(gI9J1yij}Qh3HrZ@Lq#siHv#Z zW;CFg4JgBUAa?z7URLw64wuCDgCv3mw4?zo7`5r=hip@R#HLqI12hdW_9(?l^yyn?j@H@|rf|r|o2xhTUaGpJ@P+3)3W3=H0 z)hJ}w&8|ZGXV(}TSdHzh#zj(%D5?OKrDP2tT1(pUFW!jg(BK8^`Z`|Re~E2x3jt^= z%h4e%W{23JFtwZj3OU6p6tiUgUKEL*$cs1AMfhYqO?R$zA= zY=VB<7ITACFLKI)R3bYFHkcpTG5_4do3dL|pX}h);QP=lLNpO_iF9)9mZtw0-nY@@04|9`-#!I2k!Kf1k+S%|00GYo zMw>%7n zJaX(Y_5wq%O($dA(ZPN$YZ2mQKbv$(w!(gwD*DQJaky#9%=V*G7%dv`cP)d!K^6Sg zVoIiH7_&nkMqP4_95dfK@+x#nqj}W7=9u~1k=>|31L^w~Xoxjnqu*IKXBTXN=Jla5 zwGSUTjs&^p5#$a_PUtEBgV#~gDp#NY!U-RPfDr(lS}kW}L&*3rUA5vZyaU%Y_S?oqW$Z| z(_E_=e?c+GfV6yQ24ZrH6*>cws7p1l5sLOnZWC7ftKlZ!9W!RwA8^om0$mEuFT%ls zmBs-)P`oyh^B7+-!tC~9Tp+_pr{-#j03^Ht5&`YPeDnnaB28YaEil}4((O$?A)OU? z2f~x)QsyL2rU?i`O?;G{d<8H*a}#)$77&d@)C)Q3 zWRkLwG7q1EmTw7C=i)JkL~&#G{CwP#=zLb_G#iy>Z99md-6n$jZTDJrcg}()^QZ@g zKeFUPkN8jsQAUWMsyxrL=;|O4mDl96f=kv@$W?k?Q=J3%Nr{Lm>7E%5{+fxfxQLe` zcXL4(IoZu&U)cy+h3e;kXBKnd2z9Y4N6_XRItKnVQ26jErnJ?$njD9{*&)FV*3E=l z7}?fxiGK}s5V9BNKF+#%wqidtR)md6{Na76~~L;~(at`cQ3VdtJjXi{C`Qou8Z@Yp4f=kaj>k4xlns+3mL{(5$6E(c1^!axZv zi;|Q`zZ)`KZ0uHBM@`j%aMTCDS*a7@}^@A zgBPK1iX-PbukCS*!P8jtu|j_-d*zlKV#Jq>fa2Qc!}933l6Mi@HAzOZx%3 zvy57lOR(K*M`@tW;y!F^V?@!En#3EY0W@~Ugt23k%9~g41~kd|!dyToQ^W@I7?ISN zq>%bRWm#U31}ly~>zU3>rRBU{j=S*@4YgKQTdnC8oFJqKiY zCWx$3lVy@a1NMmA`;jO|C$OnA*^dOMW)Z0hmWpJyDKsgvw-yX_Rp;UR>~GE>9OYH# zMogXnO}Ag0)mqekJiB%8;N=T0;Tt%@&$S^m#NnKe?}%($aG`?i(05hq=}dpBllu?2 zi2;o82&(T8{G||H2_&fHYy(;l+NqiLS=5*H_dGoq3VBXXr)hYfC z?(C~@-|}&2k`mOS*gVH9q6Ub()E2>WS%HevC}~e0nV}t0W;xHdvC4lwTt%OtGI3a- z2X2N&_bqr?y7FB>rOwO*bwwIf)jmU7lj~|KI-dp~{*s9^kQ!OD>sT@wge<2{z&HxyiS(`Xj3JF$pzH#49NYo-^DKS3> zLl-&9t%mGKV!?DbP|=b;8*uHi;m8Y!c7Pd3H;8s%@lNfM;cAI?)FxJ+!VV7J6#4yv z-wFo(9V^jCNM9`H3{Ft*=n3jwr9i8CL$Cs7iTPnv`{|aLWn@Q&7L3KkiD3TyWU21- z$X^!hM75P*Vyxl*15#~eEy2(h9_|WnXInbL`}uR3`F<-%0?e{}5{FPCh>94!49mg` zVYLMPIwNs8ig85IQh5`?8;Gw$MGwp5U5K&|1S9lkGwoIW&jb|rw@fk$i`Y-9v-9QkD20{3`MZeM62h zI=2KiXgC0gnPrC_TfcPg7f=IQXV3w+ThXuJDFmal82g#ymL-xya$w~Y5yG`j(6aTK zd#|>Fk67MS9CXgR?*rDCvym@AbBGB`oP_rVTAsw5B5xR=0!fZ?0UnhR>_^&}a7ead ztO;KW@1xrl1Oy*e>#lEo<;CwE4eSJ?)DLE= z25&`V9j^`PE({MjML=aw!YG3ydl!YV9E=-DU@(f~6DapipcM87Uk_E z)Vh(%k!o=t1}C-qxU-(sCg=|Aysv`>9^mK@cAe5;CDJb!KpE{^(t$CM1Zq>1a7*C1 zdj(t{*paAj0JtuZ{t3W+#?_^wuv2j5gQi|1XgX)02=z+g4H;JR_<9YN<1_Rr`CSx| zC_DQ#DXvQdGp+DaO$96McP1xT$EsNMjWuJ91lZ9W_Sd*ke5}W&Q==T>3CJ>e4}U zUjH10Zh?}`Py&_Z?!!^703^IG6}k@7_%I)3v0cv4%_8+6`gSibUg^&{>DMcLn|D5b zO5+Iyp0L&!)*TOS`D2iv>4Ae_7CG_(yk(RRk?Ftg&Aq}p6Qq?LK}q`J=<_%yobYW{ z#D75}!$KqdQx2ISXDE*BGiEIFDFXK}2)*FXz0#Yahz4af>Ra|0%psPdn!rKIR0f7> z(#mjLjDV;m)_^(Wtd}{;EU0pp4Ty-SCiM(2coS(f,n8o71KD8Ego`EBxv8;VjN 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