function [x, error, error2, total_iters, it_hist]= runAll(m)

n=m^2;
x0=zeros(n,1);
b0=zeros(m,m);
xT=zeros(m,m);

for i=1:m
    for j=1:m
        b0(i,j)=b(i,j,m);
        xT(i,j)=xTrue(i,j,m);
    end
end
B=zeros(n,1);
x=zeros(n,1);
B=b0(:);
x=xT(:);
clear b0 xT;

[ xP, errorP, error2P, total_itersP, it_histP ] = pcgsol ( x0, B, 'atx_sq', [1/(m+1)^2,100], 'fish2d' );
semilogy(0:length(error2P)-1,error2P,'-k');
hold on;

[ xJ, errorJ, error2J, total_itersJ, it_histJ ] = pcgsol ( x0, B, 'atx_sq', [1/(m+1)^2,100], 'jacobi2d' );
semilogy(0:length(error2J)-1,error2J,'-b');

[ xN, errorN, error2N, total_itersN, it_histN ] = pcgsol ( x0, B, 'atx_sq', [1/(m+1)^2,100] );
semilogy(0:length(error2N)-1,error2N,'-r');

xlim([0,60]);
x=[x,xP,xN];
error=[errorP,errorJ,errorN];
error2=[error2P,error2J,error2N];
total_iters=[total_itersP,total_itersJ,total_itersN];
it_hist=[it_histP,it_histJ,it_histN];
hold off
return;