You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix: the batched joint nested-Laplace driver's DENSE path could converge a
species to a different mode than its own independent fit (#397). run_multi_block_nested_laplace_joint_batch's dense branch (small/medium
fields, n_x < SPARSE_THRESHOLD) solved every Newton step and the final
log-determinant through the fixed-ridge-only dispatch_factor_solve / dispatch_factor_log_det, instead of the PD-escalating joint_pd_step_solve_dense (the #344 fix) the single-species
dense joint driver and the batched driver's own SPARSE branch already use.
A coupled likelihood whose observed Hessian is indefinite away from the mode
(the occupancy mixture's dark-cell term is not concave everywhere) could hit
a negative pivot at one outer-grid cell; with no ridge escalation the
Cholesky's sqrt produced NaN, silently dropping that cell's weight from
the fit and shifting every reported summary. Confirmed data-dependent (not
batch-slot-dependent): the same species diverged identically whether alone,
paired, or duplicated against itself, and grid cells before the affected one
matched the independent fit to machine precision. Fixed by routing both the
per-iteration dense solve and the final-pass log-determinant through joint_pd_step_solve_dense with JointPDMode::LM, mirroring the
single-species driver and the batch driver's own sparse branch exactly.