pub struct LatentInnerOptions {
pub max_iterations: usize,
pub convergence_tolerance: f64,
pub initial_ridge_t: f64,
pub initial_ridge_beta: f64,
pub lm_grow: f64,
pub lm_shrink: f64,
pub max_ridge: f64,
pub solver_mode: Option<ArrowSolverMode>,
pub trust_region_radius: f64,
pub block_offsets: Option<Arc<[Range<usize>]>>,
}Expand description
Configuration for LatentInnerSolver::solve.
Fields§
§max_iterations: usizeMaximum joint (t, β) Newton iterations.
convergence_tolerance: f64Relative-gradient convergence tolerance (see module docs).
initial_ridge_t: f64Initial LM-style ridge on the per-row latent blocks.
initial_ridge_beta: f64Initial LM-style ridge on the β block.
lm_grow: f64Multiplicative growth factor for the LM ridges on a rejected step.
lm_shrink: f64Multiplicative shrink factor for the LM ridges on an accepted step.
max_ridge: f64Maximum ridge value before declaring failure.
solver_mode: Option<ArrowSolverMode>BA Schur mode for the reduced shared system. None selects Direct for
K <= 2000 and InexactPCG above, matching large-scale BA practice.
trust_region_radius: f64Reduced-system trust-region radius for Steihaug-CG. This is the Ceres/BA trust-region bound layered on top of the existing LM ridges.
block_offsets: Option<Arc<[Range<usize>]>>Optional β-block column ranges for the block-Jacobi Schur preconditioner.
When Some, the solver calls
crate::arrow_schur::ArrowSchurSystem::set_block_offsets on
every assembled system, engaging the block-Jacobi PCG preconditioner
(one dense Schur sub-block per term, max size 256 columns) instead of
the scalar-diagonal fallback.
Derive from ParameterBlockSpec slices via
gam_custom_family::block_offsets_from_specs or an
equivalent family-owned block layout.
When None, the preconditioner falls back to scalar-diagonal Jacobi
(the pre-block-Jacobi behaviour); when Some([]) (empty slice), the
same fallback applies.
Trait Implementations§
Source§impl Clone for LatentInnerOptions
impl Clone for LatentInnerOptions
Source§fn clone(&self) -> LatentInnerOptions
fn clone(&self) -> LatentInnerOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LatentInnerOptions
impl Debug for LatentInnerOptions
Auto Trait Implementations§
impl Freeze for LatentInnerOptions
impl RefUnwindSafe for LatentInnerOptions
impl Send for LatentInnerOptions
impl Sync for LatentInnerOptions
impl Unpin for LatentInnerOptions
impl UnsafeUnpin for LatentInnerOptions
impl UnwindSafe for LatentInnerOptions
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T, U> Imply<T> for U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.