src/forward_model.rs

branch
dev
changeset 44
03251c546744
parent 35
b087e3eab191
child 49
6b0db7251ebe
--- a/src/forward_model.rs	Thu Jan 23 23:39:40 2025 +0100
+++ b/src/forward_model.rs	Fri Jan 31 18:00:17 2025 -0500
@@ -54,6 +54,7 @@
         -> Option<(Self::FloatType, Self::FloatType)>;
 }
 
+/*
 /// Trait for [`ForwardModel`]s whose preadjoint has Lipschitz values.
 pub trait LipschitzValues {
     type FloatType : Float;
@@ -69,4 +70,16 @@
         None
     }
 }
+*/
 
+/// Trait for [`ForwardModel`]s that satisfy bounds on the curvature $𝒦_F$.
+pub trait BoundedCurvature {
+    type FloatType : Float;
+
+    /// Returns components for a bound $ℓ_F$ on the curvature
+    /// $$
+    ///     𝒦_F(μ, γ) = ∫ B_{F'(μ)} dγ +  B_F(μ, μ+Δ).
+    /// $$
+    /// such that $𝒦_F(μ, γ)  ≤ ℓ_F ∫  c_2 d|γ|$.
+    fn curvature_bound_components(&self) -> (Option<Self::FloatType>, Option<Self::FloatType>);
+}

mercurial