clear all;
clear globals;
close all;
clc;
tic;

dir_ib  = '_data\_input\ib\';
names_ib = dir([dir_ib,'*_ib.txt']);
ib_files = size(names_ib,1);

radek = 0;
for i=1:ib_files
    points_ib = (load([dir_ib,names_ib(i).name]))';
    ib_count = size(points_ib,2);
    for j=1:ib_count
       A(2*radek+j,1+6*(i-1)) = points_ib(1,j);
       A(2*radek+j,2+6*(i-1)) = points_ib(2,j);
       A(2*radek+j,5+6*(i-1)) = 1;
       A(2*radek+j+ib_count,3+6*(i-1)) = points_ib(1,j);
       A(2*radek+j+ib_count,4+6*(i-1)) = points_ib(2,j);
       A(2*radek+j+ib_count,6+6*(i-1)) = 1;
       l(2*radek+j) = points_ib(3,j);
       l(2*radek+j+ib_count) = points_ib(4,j)      
    end  
    radek = radek + ib_count;
    misto = findstr(names_ib(i).name, '_');
    jmeno = str2num(names_ib(i).name(1:misto(1)-1));
    jmena_ib(i) = jmeno;
end
l = l';


dir_rohy  = '_data\_input\rohy\';
names_rohy = dir([dir_rohy,'*_rohy.txt']);
rohy_files = size(names_rohy,1);

for i=1:rohy_files
    points_rohy = (load([dir_rohy,names_rohy(i).name]))';
    rohy_count = size(points_rohy,2);
    for j=1:rohy_count
        Bpomocna(i,1) = points_rohy(1,1);
        Bpomocna(i,2) = points_rohy(2,1);
        Bpomocna(i,3) = points_rohy(1,2);
        Bpomocna(i,4) = points_rohy(2,2);   
        Bpomocna(i,5) = points_rohy(1,3);   
        Bpomocna(i,6) = points_rohy(2,3);   
        Bpomocna(i,7) = points_rohy(1,4);   
        Bpomocna(i,8) = points_rohy(2,4);          
    end
end    


dir_klad  = '_data\_input\';
names_klad = dir([dir_klad,'rozlozeni.txt']);
klad = (load([dir_klad,names_klad(1).name]))';
klad = klad';

podminka_typ=ones(size(klad,1)+1,size(klad,2)+1);
for i=1:(size(klad,1)+1)
    for j=1:(size(klad,2)+1)
        if (i==1) && (j==1)
            podminka_typ(i,j)=0;
        elseif (i==1) && (j==size(klad,2)+1)
            podminka_typ(i,j)=0;
        elseif (i==size(klad,1)+1) && (j==size(klad,2)+1)
            podminka_typ(i,j)=0;
        elseif (i==size(klad,1)+1) && (j==1)
            podminka_typ(i,j)=0;
                
        elseif (i==1) && (j>1) && (j<=size(klad,2))
            if (klad(1,j-1)==0) && (klad(1,j)==0)
                podminka_typ(i,j)=0;
            elseif (klad(1,j-1)==0) && (klad(1,j)~=0)    
                podminka_typ(i,j)=0;
            elseif (klad(1,j-1)~=0) && (klad(1,j)==0)        
                podminka_typ(i,j)=0;
            elseif (klad(1,j-1)~=0) && (klad(1,j)~=0)        
                podminka_typ(i,j)=3;
            end
        elseif (i>1) && (i<=size(klad,1)) && (j==1)
            if (klad(i-1,1)==0) && (klad(i,1)==0)
                podminka_typ(i,j)=0;
            elseif (klad(i-1,1)==0) && (klad(i,1)~=0)
                podminka_typ(i,j)=0;
            elseif (klad(i-1,1)~=0) && (klad(i,1)==0)
                podminka_typ(i,j)=0;
            elseif (klad(i-1,1)~=0) && (klad(i,1)~=0)
                podminka_typ(i,j)=2;
            end
        elseif (i==size(klad,1)+1) && (j>1) && (j<=size(klad,2))
            if (klad(i-1,j-1)==0) && (klad(i-1,j)==0)
                podminka_typ(i,j)=0;
            elseif (klad(i-1,j-1)==0) && (klad(i-1,j)~=0)
                podminka_typ(i,j)=0;
            elseif (klad(i-1,j-1)~=0) && (klad(i-1,j)==0)
                podminka_typ(i,j)=0;
            elseif (klad(i-1,j-1)~=0) && (klad(i-1,j)~=0)
                podminka_typ(i,j)=1;
            end
        elseif (i>1) && (i<=size(klad,1)) && (j==size(klad,2)+1)
            if (klad(i-1,j-1)==0) && (klad(i,j-1)==0)
                podminka_typ(i,j)=0;
            elseif (klad(i-1,j-1)==0) && (klad(i,j-1)~=0)
                podminka_typ(i,j)=0;
            elseif (klad(i-1,j-1)~=0) && (klad(i,j-1)==0)
                podminka_typ(i,j)=0;
            elseif (klad(i-1,j-1)~=0) && (klad(i,j-1)~=0)
                podminka_typ(i,j)=4;
            end
            
        elseif (i>1) && (i<=size(klad,1)) && (j>1) && (j<=size(klad,2))
            if (klad(i-1,j-1)==0) && (klad(i-1,j)==0) && (klad(i,j)==0) && (klad(i,j-1)==0)
                  podminka_typ(i,j)=0;
            elseif (klad(i-1,j-1)~=0) && (klad(i-1,j)==0) && (klad(i,j)==0) && (klad(i,j-1)==0)
                  podminka_typ(i,j)=0;
            elseif (klad(i-1,j-1)==0) && (klad(i-1,j)~=0) && (klad(i,j)==0) && (klad(i,j-1)==0)
                  podminka_typ(i,j)=0;
            elseif (klad(i-1,j-1)==0) && (klad(i-1,j)==0) && (klad(i,j)~=0) && (klad(i,j-1)==0)
                  podminka_typ(i,j)=0;
            elseif (klad(i-1,j-1)==0) && (klad(i-1,j)==0) && (klad(i,j)==0) && (klad(i,j-1)~=0)
                  podminka_typ(i,j)=0;
            elseif (klad(i-1,j-1)~=0) && (klad(i-1,j)~=0) && (klad(i,j)==0) && (klad(i,j-1)==0)
                  podminka_typ(i,j)=1;
            elseif (klad(i-1,j-1)==0) && (klad(i-1,j)~=0) && (klad(i,j)~=0) && (klad(i,j-1)==0)
                  podminka_typ(i,j)=2;
            elseif (klad(i-1,j-1)==0) && (klad(i-1,j)==0) && (klad(i,j)~=0) && (klad(i,j-1)~=0)
                  podminka_typ(i,j)=3;
            elseif (klad(i-1,j-1)~=0) && (klad(i-1,j)==0) && (klad(i,j)==0) && (klad(i,j-1)~=0)
                  podminka_typ(i,j)=4;
            elseif (klad(i-1,j-1)~=0) && (klad(i-1,j)==0) && (klad(i,j)~=0) && (klad(i,j-1)==0)
                  podminka_typ(i,j)=10;
            elseif (klad(i-1,j-1)==0) && (klad(i-1,j)~=0) && (klad(i,j)==0) && (klad(i,j-1)~=0)
                  podminka_typ(i,j)=11;
            elseif (klad(i-1,j-1)~=0) && (klad(i-1,j)~=0) && (klad(i,j)~=0) && (klad(i,j-1)==0)
                  podminka_typ(i,j)=5;
            elseif (klad(i-1,j-1)==0) && (klad(i-1,j)~=0) && (klad(i,j)~=0) && (klad(i,j-1)~=0)
                  podminka_typ(i,j)=6;
            elseif (klad(i-1,j-1)~=0) && (klad(i-1,j)==0) && (klad(i,j)~=0) && (klad(i,j-1)~=0)
                  podminka_typ(i,j)=7;
            elseif (klad(i-1,j-1)~=0) && (klad(i-1,j)~=0) && (klad(i,j)==0) && (klad(i,j-1)~=0)
                  podminka_typ(i,j)=8;
            elseif (klad(i-1,j-1)~=0) && (klad(i-1,j)~=0) && (klad(i,j)~=0) && (klad(i,j-1)~=0)
                  podminka_typ(i,j)=9;
            end
        end
    end
end


podminka_pocet=1;
for i=1:(size(klad,1)+1)
    for j=1:(size(klad,2)+1)
        if podminka_typ(i,j)==1
            lh=klad(i-1,j-1);
            ph=klad(i-1,j);
            lh_index=find(jmena_ib==lh);
            ph_index=find(jmena_ib==ph);
            B(podminka_pocet, (ph_index-1)*6+1)= Bpomocna(ph_index,7);
            B(podminka_pocet, (ph_index-1)*6+2)= Bpomocna(ph_index,8);
            B(podminka_pocet, (ph_index-1)*6+3)= 0;
            B(podminka_pocet, (ph_index-1)*6+4)= 0;
            B(podminka_pocet, (ph_index-1)*6+5)= 1;
            B(podminka_pocet, (ph_index-1)*6+6)= 0;
            B(podminka_pocet, (lh_index-1)*6+1)= -1*Bpomocna(lh_index,5);
            B(podminka_pocet, (lh_index-1)*6+2)= -1*Bpomocna(lh_index,6);
            B(podminka_pocet, (lh_index-1)*6+3)= 0;
            B(podminka_pocet, (lh_index-1)*6+4)= 0;
            B(podminka_pocet, (lh_index-1)*6+5)= -1;
            B(podminka_pocet, (lh_index-1)*6+6)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+3)= Bpomocna(ph_index,7);
            B(podminka_pocet+1, (ph_index-1)*6+4)= Bpomocna(ph_index,8);
            B(podminka_pocet+1, (ph_index-1)*6+1)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+2)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+6)= 1;
            B(podminka_pocet+1, (ph_index-1)*6+5)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+3)= -1*Bpomocna(lh_index,5);
            B(podminka_pocet+1, (lh_index-1)*6+4)= -1*Bpomocna(lh_index,6);
            B(podminka_pocet+1, (lh_index-1)*6+1)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+2)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+6)= -1;
            B(podminka_pocet+1, (lh_index-1)*6+5)= 0;
            podminka_pocet=podminka_pocet+2;
            
        elseif podminka_typ(i,j)==2
            ph=klad(i-1,j);
            pd=klad(i,j);
            ph_index=find(jmena_ib==ph);
            pd_index=find(jmena_ib==pd);
            B(podminka_pocet, (ph_index-1)*6+1)= Bpomocna(ph_index,7);
            B(podminka_pocet, (ph_index-1)*6+2)= Bpomocna(ph_index,8);
            B(podminka_pocet, (ph_index-1)*6+3)= 0;
            B(podminka_pocet, (ph_index-1)*6+4)= 0;
            B(podminka_pocet, (ph_index-1)*6+5)= 1;
            B(podminka_pocet, (ph_index-1)*6+6)= 0;
            B(podminka_pocet, (pd_index-1)*6+1)= -1*Bpomocna(pd_index,1);
            B(podminka_pocet, (pd_index-1)*6+2)= -1*Bpomocna(pd_index,2);
            B(podminka_pocet, (pd_index-1)*6+3)= 0;
            B(podminka_pocet, (pd_index-1)*6+4)= 0;
            B(podminka_pocet, (pd_index-1)*6+5)= -1;
            B(podminka_pocet, (pd_index-1)*6+6)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+3)= Bpomocna(ph_index,7);
            B(podminka_pocet+1, (ph_index-1)*6+4)= Bpomocna(ph_index,8);
            B(podminka_pocet+1, (ph_index-1)*6+1)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+2)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+6)= 1;
            B(podminka_pocet+1, (ph_index-1)*6+5)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+3)= -1*Bpomocna(pd_index,1);
            B(podminka_pocet+1, (pd_index-1)*6+4)= -1*Bpomocna(pd_index,2);
            B(podminka_pocet+1, (pd_index-1)*6+1)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+2)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+6)= -1;
            B(podminka_pocet+1, (pd_index-1)*6+5)= 0;
            podminka_pocet=podminka_pocet+2;    
            
        elseif podminka_typ(i,j)==3
            pd=klad(i,j);
            ld=klad(i,j-1);
            pd_index=find(jmena_ib==pd);
            ld_index=find(jmena_ib==ld);
            B(podminka_pocet, (pd_index-1)*6+1)= Bpomocna(pd_index,1);
            B(podminka_pocet, (pd_index-1)*6+2)= Bpomocna(pd_index,2);
            B(podminka_pocet, (pd_index-1)*6+3)= 0;
            B(podminka_pocet, (pd_index-1)*6+4)= 0;
            B(podminka_pocet, (pd_index-1)*6+5)= 1;
            B(podminka_pocet, (pd_index-1)*6+6)= 0;
            B(podminka_pocet, (ld_index-1)*6+1)= -1*Bpomocna(ld_index,3);
            B(podminka_pocet, (ld_index-1)*6+2)= -1*Bpomocna(ld_index,4);
            B(podminka_pocet, (ld_index-1)*6+3)= 0;
            B(podminka_pocet, (ld_index-1)*6+4)= 0;
            B(podminka_pocet, (ld_index-1)*6+5)= -1;
            B(podminka_pocet, (ld_index-1)*6+6)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+3)= Bpomocna(pd_index,1);
            B(podminka_pocet+1, (pd_index-1)*6+4)= Bpomocna(pd_index,2);
            B(podminka_pocet+1, (pd_index-1)*6+1)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+2)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+6)= 1;
            B(podminka_pocet+1, (pd_index-1)*6+5)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+3)= -1*Bpomocna(ld_index,3);
            B(podminka_pocet+1, (ld_index-1)*6+4)= -1*Bpomocna(ld_index,4);
            B(podminka_pocet+1, (ld_index-1)*6+1)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+2)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+6)= -1;
            B(podminka_pocet+1, (ld_index-1)*6+5)= 0;
            podminka_pocet=podminka_pocet+2;  
            
        elseif podminka_typ(i,j)==4
            lh=klad(i-1,j-1);
            ld=klad(i,j-1);
            lh_index=find(jmena_ib==lh);
            ld_index=find(jmena_ib==ld);
            B(podminka_pocet, (lh_index-1)*6+1)= Bpomocna(lh_index,5);
            B(podminka_pocet, (lh_index-1)*6+2)= Bpomocna(lh_index,6);
            B(podminka_pocet, (lh_index-1)*6+3)= 0;
            B(podminka_pocet, (lh_index-1)*6+4)= 0;
            B(podminka_pocet, (lh_index-1)*6+5)= 1;
            B(podminka_pocet, (lh_index-1)*6+6)= 0;
            B(podminka_pocet, (ld_index-1)*6+1)= -1*Bpomocna(ld_index,3);
            B(podminka_pocet, (ld_index-1)*6+2)= -1*Bpomocna(ld_index,4);
            B(podminka_pocet, (ld_index-1)*6+3)= 0;
            B(podminka_pocet, (ld_index-1)*6+4)= 0;
            B(podminka_pocet, (ld_index-1)*6+5)= -1;
            B(podminka_pocet, (ld_index-1)*6+6)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+3)= Bpomocna(lh_index,5);
            B(podminka_pocet+1, (lh_index-1)*6+4)= Bpomocna(lh_index,6);
            B(podminka_pocet+1, (lh_index-1)*6+1)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+2)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+6)= 1;
            B(podminka_pocet+1, (lh_index-1)*6+5)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+3)= -1*Bpomocna(ld_index,3);
            B(podminka_pocet+1, (ld_index-1)*6+4)= -1*Bpomocna(ld_index,4);
            B(podminka_pocet+1, (ld_index-1)*6+1)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+2)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+6)= -1;
            B(podminka_pocet+1, (ld_index-1)*6+5)= 0;
            podminka_pocet=podminka_pocet+2;  
            
        elseif podminka_typ(i,j)==10
            lh=klad(i-1,j-1);
            pd=klad(i,j);
            lh_index=find(jmena_ib==lh);
            pd_index=find(jmena_ib==pd);
            B(podminka_pocet, (lh_index-1)*6+1)= Bpomocna(lh_index,5);
            B(podminka_pocet, (lh_index-1)*6+2)= Bpomocna(lh_index,6);
            B(podminka_pocet, (lh_index-1)*6+3)= 0;
            B(podminka_pocet, (lh_index-1)*6+4)= 0;
            B(podminka_pocet, (lh_index-1)*6+5)= 1;
            B(podminka_pocet, (lh_index-1)*6+6)= 0;
            B(podminka_pocet, (pd_index-1)*6+1)= -1*Bpomocna(pd_index,1);
            B(podminka_pocet, (pd_index-1)*6+2)= -1*Bpomocna(pd_index,2);
            B(podminka_pocet, (pd_index-1)*6+3)= 0;
            B(podminka_pocet, (pd_index-1)*6+4)= 0;
            B(podminka_pocet, (pd_index-1)*6+5)= -1;
            B(podminka_pocet, (pd_index-1)*6+6)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+3)= Bpomocna(lh_index,5);
            B(podminka_pocet+1, (lh_index-1)*6+4)= Bpomocna(lh_index,6);
            B(podminka_pocet+1, (lh_index-1)*6+1)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+2)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+6)= 1;
            B(podminka_pocet+1, (lh_index-1)*6+5)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+3)= -1*Bpomocna(pd_index,1);
            B(podminka_pocet+1, (pd_index-1)*6+4)= -1*Bpomocna(pd_index,2);
            B(podminka_pocet+1, (pd_index-1)*6+1)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+2)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+6)= -1;
            B(podminka_pocet+1, (pd_index-1)*6+5)= 0;
            podminka_pocet=podminka_pocet+2; 
            
        elseif podminka_typ(i,j)==11
            ph=klad(i-1,j);
            ld=klad(i,j);
            ph_index=find(jmena_ib==ph);
            ld_index=find(jmena_ib==ld);
            B(podminka_pocet, (ph_index-1)*6+1)= Bpomocna(ph_index,7);
            B(podminka_pocet, (ph_index-1)*6+2)= Bpomocna(ph_index,8);
            B(podminka_pocet, (ph_index-1)*6+3)= 0;
            B(podminka_pocet, (ph_index-1)*6+4)= 0;
            B(podminka_pocet, (ph_index-1)*6+5)= 1;
            B(podminka_pocet, (ph_index-1)*6+6)= 0;
            B(podminka_pocet, (ld_index-1)*6+1)= -1*Bpomocna(ld_index,3);
            B(podminka_pocet, (ld_index-1)*6+2)= -1*Bpomocna(ld_index,4);
            B(podminka_pocet, (ld_index-1)*6+3)= 0;
            B(podminka_pocet, (ld_index-1)*6+4)= 0;
            B(podminka_pocet, (ld_index-1)*6+5)= -1;
            B(podminka_pocet, (ld_index-1)*6+6)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+3)= Bpomocna(ph_index,7);
            B(podminka_pocet+1, (ph_index-1)*6+4)= Bpomocna(ph_index,8);
            B(podminka_pocet+1, (ph_index-1)*6+1)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+2)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+6)= 1;
            B(podminka_pocet+1, (ph_index-1)*6+5)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+3)= -1*Bpomocna(ld_index,3);
            B(podminka_pocet+1, (ld_index-1)*6+4)= -1*Bpomocna(ld_index,4);
            B(podminka_pocet+1, (ld_index-1)*6+1)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+2)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+6)= -1;
            B(podminka_pocet+1, (ld_index-1)*6+5)= 0;
            podminka_pocet=podminka_pocet+2;     
            
        elseif podminka_typ(i,j)==5
            lh=klad(i-1,j-1);
            ph=klad(i-1,j);
            lh_index=find(jmena_ib==lh);
            ph_index=find(jmena_ib==ph);
            B(podminka_pocet, (ph_index-1)*6+1)= Bpomocna(ph_index,7);
            B(podminka_pocet, (ph_index-1)*6+2)= Bpomocna(ph_index,8);
            B(podminka_pocet, (ph_index-1)*6+3)= 0;
            B(podminka_pocet, (ph_index-1)*6+4)= 0;
            B(podminka_pocet, (ph_index-1)*6+5)= 1;
            B(podminka_pocet, (ph_index-1)*6+6)= 0;
            B(podminka_pocet, (lh_index-1)*6+1)= -1*Bpomocna(lh_index,5);
            B(podminka_pocet, (lh_index-1)*6+2)= -1*Bpomocna(lh_index,6);
            B(podminka_pocet, (lh_index-1)*6+3)= 0;
            B(podminka_pocet, (lh_index-1)*6+4)= 0;
            B(podminka_pocet, (lh_index-1)*6+5)= -1;
            B(podminka_pocet, (lh_index-1)*6+6)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+3)= Bpomocna(ph_index,7);
            B(podminka_pocet+1, (ph_index-1)*6+4)= Bpomocna(ph_index,8);
            B(podminka_pocet+1, (ph_index-1)*6+1)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+2)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+6)= 1;
            B(podminka_pocet+1, (ph_index-1)*6+5)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+3)= -1*Bpomocna(lh_index,5);
            B(podminka_pocet+1, (lh_index-1)*6+4)= -1*Bpomocna(lh_index,6);
            B(podminka_pocet+1, (lh_index-1)*6+1)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+2)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+6)= -1;
            B(podminka_pocet+1, (lh_index-1)*6+5)= 0;              
            podminka_pocet=podminka_pocet+2;
            
            ph=klad(i-1,j);
            pd=klad(i,j);
            ph_index=find(jmena_ib==ph);
            pd_index=find(jmena_ib==pd);
            B(podminka_pocet, (ph_index-1)*6+1)= Bpomocna(ph_index,7);
            B(podminka_pocet, (ph_index-1)*6+2)= Bpomocna(ph_index,8);
            B(podminka_pocet, (ph_index-1)*6+3)= 0;
            B(podminka_pocet, (ph_index-1)*6+4)= 0;
            B(podminka_pocet, (ph_index-1)*6+5)= 1;
            B(podminka_pocet, (ph_index-1)*6+6)= 0;
            B(podminka_pocet, (pd_index-1)*6+1)= -1*Bpomocna(pd_index,1);
            B(podminka_pocet, (pd_index-1)*6+2)= -1*Bpomocna(pd_index,2);
            B(podminka_pocet, (pd_index-1)*6+3)= 0;
            B(podminka_pocet, (pd_index-1)*6+4)= 0;
            B(podminka_pocet, (pd_index-1)*6+5)= -1;
            B(podminka_pocet, (pd_index-1)*6+6)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+3)= Bpomocna(ph_index,7);
            B(podminka_pocet+1, (ph_index-1)*6+4)= Bpomocna(ph_index,8);
            B(podminka_pocet+1, (ph_index-1)*6+1)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+2)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+6)= 1;
            B(podminka_pocet+1, (ph_index-1)*6+5)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+3)= -1*Bpomocna(pd_index,1);
            B(podminka_pocet+1, (pd_index-1)*6+4)= -1*Bpomocna(pd_index,2);
            B(podminka_pocet+1, (pd_index-1)*6+1)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+2)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+6)= -1;
            B(podminka_pocet+1, (pd_index-1)*6+5)= 0;
            podminka_pocet=podminka_pocet+2;     
            
        elseif podminka_typ(i,j)==6
            ph=klad(i-1,j);
            pd=klad(i,j);
            ph_index=find(jmena_ib==ph);
            pd_index=find(jmena_ib==pd);
            B(podminka_pocet, (ph_index-1)*6+1)= Bpomocna(ph_index,7);
            B(podminka_pocet, (ph_index-1)*6+2)= Bpomocna(ph_index,8);
            B(podminka_pocet, (ph_index-1)*6+3)= 0;
            B(podminka_pocet, (ph_index-1)*6+4)= 0;
            B(podminka_pocet, (ph_index-1)*6+5)= 1;
            B(podminka_pocet, (ph_index-1)*6+6)= 0;
            B(podminka_pocet, (pd_index-1)*6+1)= -1*Bpomocna(pd_index,1);
            B(podminka_pocet, (pd_index-1)*6+2)= -1*Bpomocna(pd_index,2);
            B(podminka_pocet, (pd_index-1)*6+3)= 0;
            B(podminka_pocet, (pd_index-1)*6+4)= 0;
            B(podminka_pocet, (pd_index-1)*6+5)= -1;
            B(podminka_pocet, (pd_index-1)*6+6)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+3)= Bpomocna(ph_index,7);
            B(podminka_pocet+1, (ph_index-1)*6+4)= Bpomocna(ph_index,8);
            B(podminka_pocet+1, (ph_index-1)*6+1)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+2)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+6)= 1;
            B(podminka_pocet+1, (ph_index-1)*6+5)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+3)= -1*Bpomocna(pd_index,1);
            B(podminka_pocet+1, (pd_index-1)*6+4)= -1*Bpomocna(pd_index,2);
            B(podminka_pocet+1, (pd_index-1)*6+1)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+2)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+6)= -1;
            B(podminka_pocet+1, (pd_index-1)*6+5)= 0;
            podminka_pocet=podminka_pocet+2;   
            
            pd=klad(i,j);
            ld=klad(i,j-1);
            pd_index=find(jmena_ib==pd);
            ld_index=find(jmena_ib==ld);
            B(podminka_pocet, (pd_index-1)*6+1)= Bpomocna(pd_index,1);
            B(podminka_pocet, (pd_index-1)*6+2)= Bpomocna(pd_index,2);
            B(podminka_pocet, (pd_index-1)*6+3)= 0;
            B(podminka_pocet, (pd_index-1)*6+4)= 0;
            B(podminka_pocet, (pd_index-1)*6+5)= 1;
            B(podminka_pocet, (pd_index-1)*6+6)= 0;
            B(podminka_pocet, (ld_index-1)*6+1)= -1*Bpomocna(ld_index,3);
            B(podminka_pocet, (ld_index-1)*6+2)= -1*Bpomocna(ld_index,4);
            B(podminka_pocet, (ld_index-1)*6+3)= 0;
            B(podminka_pocet, (ld_index-1)*6+4)= 0;
            B(podminka_pocet, (ld_index-1)*6+5)= -1;
            B(podminka_pocet, (ld_index-1)*6+6)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+3)= Bpomocna(pd_index,1);
            B(podminka_pocet+1, (pd_index-1)*6+4)= Bpomocna(pd_index,2);
            B(podminka_pocet+1, (pd_index-1)*6+1)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+2)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+6)= 1;
            B(podminka_pocet+1, (pd_index-1)*6+5)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+3)= -1*Bpomocna(ld_index,3);
            B(podminka_pocet+1, (ld_index-1)*6+4)= -1*Bpomocna(ld_index,4);
            B(podminka_pocet+1, (ld_index-1)*6+1)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+2)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+6)= -1;
            B(podminka_pocet+1, (ld_index-1)*6+5)= 0;
            podminka_pocet=podminka_pocet+2;  
            
        elseif podminka_typ(i,j)==7
            pd=klad(i,j);
            ld=klad(i,j-1);
            pd_index=find(jmena_ib==pd);
            ld_index=find(jmena_ib==ld);
            B(podminka_pocet, (pd_index-1)*6+1)= Bpomocna(pd_index,1);
            B(podminka_pocet, (pd_index-1)*6+2)= Bpomocna(pd_index,2);
            B(podminka_pocet, (pd_index-1)*6+3)= 0;
            B(podminka_pocet, (pd_index-1)*6+4)= 0;
            B(podminka_pocet, (pd_index-1)*6+5)= 1;
            B(podminka_pocet, (pd_index-1)*6+6)= 0;
            B(podminka_pocet, (ld_index-1)*6+1)= -1*Bpomocna(ld_index,3);
            B(podminka_pocet, (ld_index-1)*6+2)= -1*Bpomocna(ld_index,4);
            B(podminka_pocet, (ld_index-1)*6+3)= 0;
            B(podminka_pocet, (ld_index-1)*6+4)= 0;
            B(podminka_pocet, (ld_index-1)*6+5)= -1;
            B(podminka_pocet, (ld_index-1)*6+6)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+3)= Bpomocna(pd_index,1);
            B(podminka_pocet+1, (pd_index-1)*6+4)= Bpomocna(pd_index,2);
            B(podminka_pocet+1, (pd_index-1)*6+1)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+2)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+6)= 1;
            B(podminka_pocet+1, (pd_index-1)*6+5)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+3)= -1*Bpomocna(ld_index,3);
            B(podminka_pocet+1, (ld_index-1)*6+4)= -1*Bpomocna(ld_index,4);
            B(podminka_pocet+1, (ld_index-1)*6+1)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+2)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+6)= -1;
            B(podminka_pocet+1, (ld_index-1)*6+5)= 0;
            podminka_pocet=podminka_pocet+2; 
            
            lh=klad(i-1,j-1);
            ld=klad(i,j-1);
            lh_index=find(jmena_ib==lh);
            ld_index=find(jmena_ib==ld);
            B(podminka_pocet, (lh_index-1)*6+1)= Bpomocna(lh_index,5);
            B(podminka_pocet, (lh_index-1)*6+2)= Bpomocna(lh_index,6);
            B(podminka_pocet, (lh_index-1)*6+3)= 0;
            B(podminka_pocet, (lh_index-1)*6+4)= 0;
            B(podminka_pocet, (lh_index-1)*6+5)= 1;
            B(podminka_pocet, (lh_index-1)*6+6)= 0;
            B(podminka_pocet, (ld_index-1)*6+1)= -1*Bpomocna(ld_index,3);
            B(podminka_pocet, (ld_index-1)*6+2)= -1*Bpomocna(ld_index,4);
            B(podminka_pocet, (ld_index-1)*6+3)= 0;
            B(podminka_pocet, (ld_index-1)*6+4)= 0;
            B(podminka_pocet, (ld_index-1)*6+5)= -1;
            B(podminka_pocet, (ld_index-1)*6+6)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+3)= Bpomocna(lh_index,5);
            B(podminka_pocet+1, (lh_index-1)*6+4)= Bpomocna(lh_index,6);
            B(podminka_pocet+1, (lh_index-1)*6+1)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+2)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+6)= 1;
            B(podminka_pocet+1, (lh_index-1)*6+5)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+3)= -1*Bpomocna(ld_index,3);
            B(podminka_pocet+1, (ld_index-1)*6+4)= -1*Bpomocna(ld_index,4);
            B(podminka_pocet+1, (ld_index-1)*6+1)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+2)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+6)= -1;
            B(podminka_pocet+1, (ld_index-1)*6+5)= 0;
            podminka_pocet=podminka_pocet+2;
            
        elseif podminka_typ(i,j)==8
            lh=klad(i-1,j-1);
            ph=klad(i-1,j);
            lh_index=find(jmena_ib==lh);
            ph_index=find(jmena_ib==ph);
            B(podminka_pocet, (ph_index-1)*6+1)= Bpomocna(ph_index,7);
            B(podminka_pocet, (ph_index-1)*6+2)= Bpomocna(ph_index,8);
            B(podminka_pocet, (ph_index-1)*6+3)= 0;
            B(podminka_pocet, (ph_index-1)*6+4)= 0;
            B(podminka_pocet, (ph_index-1)*6+5)= 1;
            B(podminka_pocet, (ph_index-1)*6+6)= 0;
            B(podminka_pocet, (lh_index-1)*6+1)= -1*Bpomocna(lh_index,5);
            B(podminka_pocet, (lh_index-1)*6+2)= -1*Bpomocna(lh_index,6);
            B(podminka_pocet, (lh_index-1)*6+3)= 0;
            B(podminka_pocet, (lh_index-1)*6+4)= 0;
            B(podminka_pocet, (lh_index-1)*6+5)= -1;
            B(podminka_pocet, (lh_index-1)*6+6)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+3)= Bpomocna(ph_index,7);
            B(podminka_pocet+1, (ph_index-1)*6+4)= Bpomocna(ph_index,8);
            B(podminka_pocet+1, (ph_index-1)*6+1)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+2)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+6)= 1;
            B(podminka_pocet+1, (ph_index-1)*6+5)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+3)= -1*Bpomocna(lh_index,5);
            B(podminka_pocet+1, (lh_index-1)*6+4)= -1*Bpomocna(lh_index,6);
            B(podminka_pocet+1, (lh_index-1)*6+1)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+2)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+6)= -1;
            B(podminka_pocet+1, (lh_index-1)*6+5)= 0;              
            podminka_pocet=podminka_pocet+2;
            
            lh=klad(i-1,j-1);
            ld=klad(i,j-1);
            lh_index=find(jmena_ib==lh);
            ld_index=find(jmena_ib==ld);
            B(podminka_pocet, (lh_index-1)*6+1)= Bpomocna(lh_index,5);
            B(podminka_pocet, (lh_index-1)*6+2)= Bpomocna(lh_index,6);
            B(podminka_pocet, (lh_index-1)*6+3)= 0;
            B(podminka_pocet, (lh_index-1)*6+4)= 0;
            B(podminka_pocet, (lh_index-1)*6+5)= 1;
            B(podminka_pocet, (lh_index-1)*6+6)= 0;
            B(podminka_pocet, (ld_index-1)*6+1)= -1*Bpomocna(ld_index,3);
            B(podminka_pocet, (ld_index-1)*6+2)= -1*Bpomocna(ld_index,4);
            B(podminka_pocet, (ld_index-1)*6+3)= 0;
            B(podminka_pocet, (ld_index-1)*6+4)= 0;
            B(podminka_pocet, (ld_index-1)*6+5)= -1;
            B(podminka_pocet, (ld_index-1)*6+6)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+3)= Bpomocna(lh_index,5);
            B(podminka_pocet+1, (lh_index-1)*6+4)= Bpomocna(lh_index,6);
            B(podminka_pocet+1, (lh_index-1)*6+1)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+2)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+6)= 1;
            B(podminka_pocet+1, (lh_index-1)*6+5)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+3)= -1*Bpomocna(ld_index,3);
            B(podminka_pocet+1, (ld_index-1)*6+4)= -1*Bpomocna(ld_index,4);
            B(podminka_pocet+1, (ld_index-1)*6+1)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+2)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+6)= -1;
            B(podminka_pocet+1, (ld_index-1)*6+5)= 0;
            podminka_pocet=podminka_pocet+2;
            
        elseif podminka_typ(i,j)==9
            lh=klad(i-1,j-1);
            ph=klad(i-1,j);
            lh_index=find(jmena_ib==lh);
            ph_index=find(jmena_ib==ph);
            B(podminka_pocet, (ph_index-1)*6+1)= Bpomocna(ph_index,7);
            B(podminka_pocet, (ph_index-1)*6+2)= Bpomocna(ph_index,8);
            B(podminka_pocet, (ph_index-1)*6+3)= 0;
            B(podminka_pocet, (ph_index-1)*6+4)= 0;
            B(podminka_pocet, (ph_index-1)*6+5)= 1;
            B(podminka_pocet, (ph_index-1)*6+6)= 0;
            B(podminka_pocet, (lh_index-1)*6+1)= -1*Bpomocna(lh_index,5);
            B(podminka_pocet, (lh_index-1)*6+2)= -1*Bpomocna(lh_index,6);
            B(podminka_pocet, (lh_index-1)*6+3)= 0;
            B(podminka_pocet, (lh_index-1)*6+4)= 0;
            B(podminka_pocet, (lh_index-1)*6+5)= -1;
            B(podminka_pocet, (lh_index-1)*6+6)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+3)= Bpomocna(ph_index,7);
            B(podminka_pocet+1, (ph_index-1)*6+4)= Bpomocna(ph_index,8);
            B(podminka_pocet+1, (ph_index-1)*6+1)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+2)= 0;
            B(podminka_pocet+1, (ph_index-1)*6+6)= 1;
            B(podminka_pocet+1, (ph_index-1)*6+5)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+3)= -1*Bpomocna(lh_index,5);
            B(podminka_pocet+1, (lh_index-1)*6+4)= -1*Bpomocna(lh_index,6);
            B(podminka_pocet+1, (lh_index-1)*6+1)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+2)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+6)= -1;
            B(podminka_pocet+1, (lh_index-1)*6+5)= 0;              
            podminka_pocet=podminka_pocet+2;
            
            pd=klad(i,j);
            ld=klad(i,j-1);
            pd_index=find(jmena_ib==pd);
            ld_index=find(jmena_ib==ld);
            B(podminka_pocet, (pd_index-1)*6+1)= Bpomocna(pd_index,1);
            B(podminka_pocet, (pd_index-1)*6+2)= Bpomocna(pd_index,2);
            B(podminka_pocet, (pd_index-1)*6+3)= 0;
            B(podminka_pocet, (pd_index-1)*6+4)= 0;
            B(podminka_pocet, (pd_index-1)*6+5)= 1;
            B(podminka_pocet, (pd_index-1)*6+6)= 0;
            B(podminka_pocet, (ld_index-1)*6+1)= -1*Bpomocna(ld_index,3);
            B(podminka_pocet, (ld_index-1)*6+2)= -1*Bpomocna(ld_index,4);
            B(podminka_pocet, (ld_index-1)*6+3)= 0;
            B(podminka_pocet, (ld_index-1)*6+4)= 0;
            B(podminka_pocet, (ld_index-1)*6+5)= -1;
            B(podminka_pocet, (ld_index-1)*6+6)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+3)= Bpomocna(pd_index,1);
            B(podminka_pocet+1, (pd_index-1)*6+4)= Bpomocna(pd_index,2);
            B(podminka_pocet+1, (pd_index-1)*6+1)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+2)= 0;
            B(podminka_pocet+1, (pd_index-1)*6+6)= 1;
            B(podminka_pocet+1, (pd_index-1)*6+5)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+3)= -1*Bpomocna(ld_index,3);
            B(podminka_pocet+1, (ld_index-1)*6+4)= -1*Bpomocna(ld_index,4);
            B(podminka_pocet+1, (ld_index-1)*6+1)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+2)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+6)= -1;
            B(podminka_pocet+1, (ld_index-1)*6+5)= 0;
            podminka_pocet=podminka_pocet+2; 
            
            lh=klad(i-1,j-1);
            ld=klad(i,j-1);
            lh_index=find(jmena_ib==lh);
            ld_index=find(jmena_ib==ld);
            B(podminka_pocet, (lh_index-1)*6+1)= Bpomocna(lh_index,5);
            B(podminka_pocet, (lh_index-1)*6+2)= Bpomocna(lh_index,6);
            B(podminka_pocet, (lh_index-1)*6+3)= 0;
            B(podminka_pocet, (lh_index-1)*6+4)= 0;
            B(podminka_pocet, (lh_index-1)*6+5)= 1;
            B(podminka_pocet, (lh_index-1)*6+6)= 0;
            B(podminka_pocet, (ld_index-1)*6+1)= -1*Bpomocna(ld_index,3);
            B(podminka_pocet, (ld_index-1)*6+2)= -1*Bpomocna(ld_index,4);
            B(podminka_pocet, (ld_index-1)*6+3)= 0;
            B(podminka_pocet, (ld_index-1)*6+4)= 0;
            B(podminka_pocet, (ld_index-1)*6+5)= -1;
            B(podminka_pocet, (ld_index-1)*6+6)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+3)= Bpomocna(lh_index,5);
            B(podminka_pocet+1, (lh_index-1)*6+4)= Bpomocna(lh_index,6);
            B(podminka_pocet+1, (lh_index-1)*6+1)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+2)= 0;
            B(podminka_pocet+1, (lh_index-1)*6+6)= 1;
            B(podminka_pocet+1, (lh_index-1)*6+5)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+3)= -1*Bpomocna(ld_index,3);
            B(podminka_pocet+1, (ld_index-1)*6+4)= -1*Bpomocna(ld_index,4);
            B(podminka_pocet+1, (ld_index-1)*6+1)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+2)= 0;
            B(podminka_pocet+1, (ld_index-1)*6+6)= -1;
            B(podminka_pocet+1, (ld_index-1)*6+5)= 0;
            podminka_pocet=podminka_pocet+2;
            
        end
    end
end

matice=[A'*A, B'; B, zeros(size(B,1),size(B,1))];
vektor=[A'*l; zeros(size(B,1),1)];

nezname= inv(matice)*vektor;
x=nezname(1:size(A,2));
v=A*x-l;
m_nula= sqrt(v'*v/(size(A,1)+size(B,1)-size(A,2)));    
            












