pub fn poisson_fit(
model: &dyn FitModel,
y_obs: &[f64],
params: &mut ParameterSet,
config: &PoissonConfig,
) -> Result<PoissonResult, FittingError>Expand description
Run Poisson-likelihood optimization using a projected KL optimizer.
Uses damped Gauss-Newton / Fisher steps when an analytical Jacobian is available, falling back to projected gradient descent otherwise. Both paths use backtracking line search with Armijo condition and projection onto parameter bounds after each step.
§Arguments
model— Forward model (maps parameters → predicted counts).y_obs— Observed counts at each data point.params— Parameter set (modified in place).config— Optimizer configuration.
§Returns
Ok(PoissonResult) with final NLL, parameters, and convergence status.
Err(FittingError) if model evaluation fails at the initial point.
Evaluation errors during line-search trials are treated as bad steps
(backtrack), not fatal errors.