Tue, 01 Aug 2023 10:32:12 +0300
merge
| 32 | 1 | /// Definitions related to optimal transport |
| 2 | ||
| 3 | use crate::types::*; | |
| 4 | ||
| 5 | pub trait TransportLipschitz<Cost> { | |
| 6 | /// Type of floats | |
| 7 | type FloatType : Float; | |
| 8 | ||
| 9 | /// Returns the transport Lipschitz factor of Self. | |
| 10 | /// | |
| 11 | /// If `Self` is a linear operator $A$ on $ℳ(Ω)$, and `Cost` represents the spatial | |
| 12 | /// cost function $c$, this factor $L$ is such that, for all $0 ≤ λ ∈ ℳ(Ω^2)$, | |
| 13 | /// $$ | |
| 14 | /// \norm{A(π_\#^1-π_\#^0)λ}^2 ≤ L^2 \norm{λ}_{ℳ(Ω^2)} ∫ c(x, y) dλ(x, y). | |
| 15 | /// $$ | |
| 16 | fn transport_lipschitz_factor(&self, cost : Cost) -> Self::FloatType; | |
| 17 | } |