src/types.rs

changeset 98
b9818eb24b47
parent 63
7a8a55fd41c0
--- a/src/types.rs	Fri Aug 14 10:38:27 2026 -0500
+++ b/src/types.rs	Fri Oct 02 12:03:25 2026 -0500
@@ -66,10 +66,18 @@
     pub inner_iters: usize,
     /// Transport statistis
     pub transport: Option<TransportInfo<F>>,
+    /// Measure component discrepancy
+    pub discrepancy: Option<F>,
+    /// Auxiliary parameter discrepancy
+    pub aux_discrepancy: Option<F>,
+    /// Discrepancy of both components
+    pub joint_discrepancy: Option<F>,
     /// Current tolerance
     pub ε: F,
     // /// Solve fin.dim problem for this measure to get the optimal `value`.
     // pub postprocessing : Option<RNDM<N, F>>,
+    /// Norm of the measure
+    pub μ_norm: F,
 }
 
 impl<F: Float> IterInfo<F> {
@@ -86,6 +94,10 @@
             ε: F::NAN,
             // postprocessing : None,
             transport: None,
+            discrepancy: None,
+            aux_discrepancy: None,
+            joint_discrepancy: None,
+            μ_norm: F::ZERO,
         }
     }
 
@@ -105,8 +117,15 @@
 {
     fn logrepr(&self) -> ColoredString {
         format!(
-            "{}\t| N = {}, ε = {:.2e}, 𝔼inner_it = {}, 𝔼ins/mer/pru = {}/{}/{}{}",
+            "\t{:.10}{}| N = {}, ε = {:.2e}, 𝔼inner_it = {}, 𝔼ins/mer/pru = {}/{}/{}{}",
             self.value.logrepr(),
+            match &self.joint_discrepancy {
+                Some(d) => format!(" ∂_joint={:.10}", d),
+                None => match &self.discrepancy {
+                    None => format!(""),
+                    Some(d) => format!(" ∂={:.10}", d),
+                },
+            },
             self.n_spikes,
             self.ε,
             self.inner_iters as float / self.this_iters.max(1) as float,

mercurial