function [A] = get_dat(iwhich)


switch iwhich
    
    case 1
        n = 1000;
        load gisette256;
        [data_m,data_n] = size(x);
        seq = randperm(data_n,n);
        A = x(:,seq); 
%         A = A./norm(A(:));
        A = normdata(A,1);
% A = A / norm(A(:));
        A = full(A);

    case 2
        m = 2000;
        n = 1000;
        A = randn(m,n);
    case 22
        m = 2000;
        n = 200;
        A = randn(m,n);
    case 222
        m = 2000;
        n = 100;
        A = randn(m,n);
    case 3
        n = 2048;
        load gisette256;
        [data_m,data_n]=size(x);
        seq = randperm(data_n,n);
        A = x(:,seq); b = y;
        A = normdata(A,2);
        b = b + randn(size(b))*norm(b)*10;
        
    case 4
        n = 1024;
        totnnz = 100;
        x = generate_x(n,totnnz);
        A = randn(256,n);
        b = A*x +  generate_noise(size(A,1),1);
        
    case 5
        n = 2048;
        totnnz = 100;
        x = generate_x(n,totnnz);
        A = randn(256,n);
        b = A*x +  generate_noise(size(A,1),1);
        
        %%%%%%%%%%%%%%%
        
        
    case 11
        n = 1024;
        load gisette256;
        [data_m,data_n] = size(x);
        seq = randperm(data_n,n);
        A = x(:,seq); b = y;
        A = normdata(A,2);
        b = b + randn(size(b))*norm(b)*10;
        A = scaleA(A);
    case 12
        n = 2048;
        load gisette256;
        [data_m,data_n]=size(x);
        seq = randperm(data_n,n);
        A = x(:,seq); b = y;
        A = normdata(A,2);
        b = b + randn(size(b))*norm(b)*10;
        A = scaleA(A);
    case 13
        n = 1024;
        totnnz = 100;
        x = generate_x(n,totnnz);
        A = randn(256,n);A = scaleA(A);
        b = A*x + generate_noise(size(A,1),2);
        
        
    case 14
        n = 2048;
        totnnz = 100;
        x = generate_x(n,totnnz);
        A = randn(256,n);A = scaleA(A);
        b = A*x + generate_noise(size(A,1),2);
        
end



