poisson_fit

Function poisson_fit 

Source
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.