Skip to content
Snippets Groups Projects
gt6DUpdateDualDetector.m 789 B
function p = gt6DUpdateDualDetector(p, bls, proj_bls, sigma1, sigma1_1, use_c_function)
% function p = gt6DUpdateDualDetector(p, bls, proj_bls, sigma1, sigma1_1, [use_c_function])
%

    if (~exist('use_c_function', 'var'))
        use_c_function = true;
    end

    if (use_c_function)
        p = gt6DUpdateDualDetector_c(p, bls, proj_bls, sigma1, sigma1_1);

%         % Or equivalently
%         proj_bls = internal_cell_sub_assign(proj_bls, bls);
%         proj_bls = internal_cell_prod_assign(proj_bls, sigma1);
%         p = internal_cell_sum_assign(p, proj_bls);
%         p = internal_cell_prod_assign(p, sigma1_1);
    else
        for n = 1:numel(p)
            p{n} = p{n} + sigma1{n} .* (proj_bls{n} - bls{n});
            p{n} = p{n} .* sigma1_1{n};
        end
    end
end