# HG changeset patch # User Nic Cleju # Date 1331303131 -7200 # Node ID a7082bb226447d7520f8baa6a4e31904832fab90 # Parent 319927cc961d1329d70522e2ee37f8fe606edfee Modified structure:should keep in this repo only the bare solvers. Anything related to Analysis should be moved to ABS repository. Renamed RecomTST to TST, renamed lots of functions, removed Analysis.py and algos.py. diff -r 319927cc961d -r a7082bb22644 pyCSalgos/Analysis.py --- a/pyCSalgos/Analysis.py Mon Feb 27 20:41:11 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,127 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Created on Thu Dec 08 10:56:56 2011 - -@author: ncleju -""" - -import numpy -import numpy.linalg - -from numpy.random import RandomState -rng = RandomState() - -def Generate_Analysis_Operator(d, p): - # generate random tight frame with equal column norms - if p == d: - T = rng.randn(d,d); - [Omega, discard] = numpy.qr(T); - else: - Omega = rng.randn(p, d); - T = numpy.zeros((p, d)); - tol = 1e-8; - max_j = 200; - j = 1; - while (sum(sum(abs(T-Omega))) > numpy.dot(tol,numpy.dot(p,d)) and j < max_j): - j = j + 1; - T = Omega; - [U, S, Vh] = numpy.linalg.svd(Omega); - V = Vh.T - #Omega = U * [eye(d); zeros(p-d,d)] * V'; - Omega2 = numpy.dot(numpy.dot(U, numpy.concatenate((numpy.eye(d), numpy.zeros((p-d,d))))), V.transpose()) - #Omega = diag(1./sqrt(diag(Omega*Omega')))*Omega; - Omega = numpy.dot(numpy.diag(1.0 / numpy.sqrt(numpy.diag(numpy.dot(Omega2,Omega2.transpose())))), Omega2) - #end - ##disp(j); - #end - return Omega - - -def Generate_Data_Known_Omega(Omega, d,p,m,k,noiselevel, numvectors, normstr): - #function [x0,y,M,LambdaMat] = Generate_Data_Known_Omega(Omega, d,p,m,k,noiselevel, numvectors, normstr) - - # Building an analysis problem, which includes the ingredients: - # - Omega - the analysis operator of size p*d - # - M is anunderdetermined measurement matrix of size m*d (m