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