BCS1D.m


%
% Compute 1D BCS Signals in COCE 
% Global COCE structure is used to produce COCE.Boundary signals
% Code assumes COCE structure global. See InitCOCE.m
% 

COCE.Boundary = zeros(COCE.PopulationSize(2),2);
X = COCE.Data(COCE.PopulationSize(1)/2,:);
Q = [-1 1];
for q = 1:2
    for i = 0:COCE.PopulationSize(2)-1;
        COCE.Boundary(i+1,q) = 0;
        d = -(COCE.PopulationSize(2)/2-1);
        for  k = i - COCE.PopulationSize(2)/2+1:i+COCE.PopulationSize(2)/2-1
            if ( k < 1) j = 1;
            elseif (k > COCE.PopulationSize(2))  j = COCE.PopulationSize(2);
            else j = k;
            end
           COCE.Boundary(i+1,q) = COCE.Boundary(i+1,q) + (exp(-((d)^2))- exp(-((d - Q(q))^2))) * X(j);
           d = d+1;
        end
    end
end