src/forward_model.rs

branch
dev
changeset 44
03251c546744
parent 35
b087e3eab191
child 49
6b0db7251ebe
equal deleted inserted replaced
43:aacd9af21b3a 44:03251c546744
52 /// Return $(L, L_z)$ such that $A_*A ≤ (L_1 D_1, L_2 D_2)$. 52 /// Return $(L, L_z)$ such that $A_*A ≤ (L_1 D_1, L_2 D_2)$.
53 fn adjoint_product_pair_bound(&self, other1 : &D1, other_2 : &D2) 53 fn adjoint_product_pair_bound(&self, other1 : &D1, other_2 : &D2)
54 -> Option<(Self::FloatType, Self::FloatType)>; 54 -> Option<(Self::FloatType, Self::FloatType)>;
55 } 55 }
56 56
57 /*
57 /// Trait for [`ForwardModel`]s whose preadjoint has Lipschitz values. 58 /// Trait for [`ForwardModel`]s whose preadjoint has Lipschitz values.
58 pub trait LipschitzValues { 59 pub trait LipschitzValues {
59 type FloatType : Float; 60 type FloatType : Float;
60 /// Return (if one exists) a factor $L$ such that $A_*z$ is $L$-Lipschitz for all 61 /// Return (if one exists) a factor $L$ such that $A_*z$ is $L$-Lipschitz for all
61 /// $z$ in the unit ball. 62 /// $z$ in the unit ball.
67 /// $z$ in the unit ball. 68 /// $z$ in the unit ball.
68 fn value_diff_unit_lipschitz_factor(&self) -> Option<Self::FloatType> { 69 fn value_diff_unit_lipschitz_factor(&self) -> Option<Self::FloatType> {
69 None 70 None
70 } 71 }
71 } 72 }
73 */
72 74
75 /// Trait for [`ForwardModel`]s that satisfy bounds on the curvature $𝒦_F$.
76 pub trait BoundedCurvature {
77 type FloatType : Float;
78
79 /// Returns components for a bound $ℓ_F$ on the curvature
80 /// $$
81 /// 𝒦_F(μ, γ) = ∫ B_{F'(μ)} dγ + B_F(μ, μ+Δ).
82 /// $$
83 /// such that $𝒦_F(μ, γ) ≤ ℓ_F ∫ c_2 d|γ|$.
84 fn curvature_bound_components(&self) -> (Option<Self::FloatType>, Option<Self::FloatType>);
85 }

mercurial