pub struct ClassicalPI<F: SemiflowFloat> {
pub alpha: F,
pub beta: F,
/* private fields */
}Expand description
Söderlind 2002 “PI.4.7” step-size law (NORMATIVE default).
Gains: α = 0.7/p, β = 0.4/p (math.md §11.1.bis). Bit-identical to the
v1.0.0 inlined pi_step_factor / reject_step_factor helpers (ADR-0044).
The FP association safety * e * e_prev (left-to-right) is NORMATIVE and
enforced by tests/adaptive_classical_bit_equal.rs.
Fields§
§alpha: FSöderlind PI.4.7 P-gain exponent α = 0.7 / p.
beta: FSöderlind PI.4.7 I-gain exponent β = 0.4 / p.
Implementations§
Source§impl<F: SemiflowFloat> ClassicalPI<F>
impl<F: SemiflowFloat> ClassicalPI<F>
Sourcepub fn with_order(p: u32) -> Self
pub fn with_order(p: u32) -> Self
Construct with §11.1.bis gains for the given inner order p.
Trait Implementations§
Source§impl<F: Clone + SemiflowFloat> Clone for ClassicalPI<F>
impl<F: Clone + SemiflowFloat> Clone for ClassicalPI<F>
Source§impl<F: Debug + SemiflowFloat> Debug for ClassicalPI<F>
impl<F: Debug + SemiflowFloat> Debug for ClassicalPI<F>
Source§impl<F: SemiflowFloat> Default for ClassicalPI<F>
impl<F: SemiflowFloat> Default for ClassicalPI<F>
Source§impl<F: SemiflowFloat> StepController<F> for ClassicalPI<F>
impl<F: SemiflowFloat> StepController<F> for ClassicalPI<F>
Source§fn propose_accept(&mut self, err_norm: F, tol: F, safety: F, _p: u32) -> F
fn propose_accept(&mut self, err_norm: F, tol: F, safety: F, _p: u32) -> F
Called after a substep is accepted. Read more
Source§fn propose_reject(&mut self, err_norm: F, tol: F, safety: F, _p: u32) -> F
fn propose_reject(&mut self, err_norm: F, tol: F, safety: F, _p: u32) -> F
Called after a substep is rejected. Read more
Auto Trait Implementations§
impl<F> Freeze for ClassicalPI<F>where
F: Freeze,
impl<F> RefUnwindSafe for ClassicalPI<F>where
F: RefUnwindSafe,
impl<F> Send for ClassicalPI<F>
impl<F> Sync for ClassicalPI<F>
impl<F> Unpin for ClassicalPI<F>where
F: Unpin,
impl<F> UnsafeUnpin for ClassicalPI<F>where
F: UnsafeUnpin,
impl<F> UnwindSafe for ClassicalPI<F>where
F: UnwindSafe,
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
Mutably borrows from an owned value. Read more