pub enum EnergyScaleJacobianMethod {
FiniteDifference,
PartialGal,
}Expand description
Method for computing the t0 / L_scale columns of the
EnergyScaleTransmissionModel Jacobian.
-
PartialGal(default since issue #489): central FD ont0only (2 evaluations); deriveL_scalecolumn inline via the rank-1 identityJ[:, L_scale] = ((tof - t0) / L_scale) * J[:, t0]per energy bin. Halves the FD probe count on workloads where both calibration parameters are free.Correctness regime: exact in the no-resolution limit and the narrow-kernel limit. With a non-trivial resolution operator
R, the rank-1 simplification additionally assumes per-bin uniformity of(tof - t0) / L_scaleover the kernel support — necessary becauseRmixes source bins whose ratios differ.broaden_presortedusesself.flight_path_m(not the model’sL_nominal * L_scale) so tabulated kernels satisfy the structural factorisation throughe_corr, but the per-bin homogeneity assumption is empirical. On real VENUS Hf 120-min KL+per-iso+TZERO 4×4 the approximation is tight enough that 15/16 pixels converge within 0.1·σ_Fisher of FD2; median wall-time speedup 1.28× over FD2. -
FiniteDifference: central FD on the full inner forward chain, 4 forward evaluations per Jacobian (h_t0=1e-4, h_ls=1e-7). The pre-#489 production default; reachable viaNEREIDS_TZERO_JACOBIAN=fd2env var ortzero_jacobian="fd2"Python kwarg.
Variants§
Trait Implementations§
Source§impl Clone for EnergyScaleJacobianMethod
impl Clone for EnergyScaleJacobianMethod
Source§fn clone(&self) -> EnergyScaleJacobianMethod
fn clone(&self) -> EnergyScaleJacobianMethod
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for EnergyScaleJacobianMethod
impl Debug for EnergyScaleJacobianMethod
impl Copy for EnergyScaleJacobianMethod
impl Eq for EnergyScaleJacobianMethod
impl StructuralPartialEq for EnergyScaleJacobianMethod
Auto Trait Implementations§
impl Freeze for EnergyScaleJacobianMethod
impl RefUnwindSafe for EnergyScaleJacobianMethod
impl Send for EnergyScaleJacobianMethod
impl Sync for EnergyScaleJacobianMethod
impl Unpin for EnergyScaleJacobianMethod
impl UnsafeUnpin for EnergyScaleJacobianMethod
impl UnwindSafe for EnergyScaleJacobianMethod
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 more