src/sliding_pdps.rs

changeset 81
642141008293
parent 78
2a122736e91c
child 83
66b8ac0ebe00
equal deleted inserted replaced
79:b6af27f72492 81:642141008293
12 use crate::regularisation::SlidingRegTerm; 12 use crate::regularisation::SlidingRegTerm;
13 use crate::sliding_fb::{SlidingFBConfig, Transport, TransportConfig, TransportProxPenalty}; 13 use crate::sliding_fb::{SlidingFBConfig, Transport, TransportConfig, TransportProxPenalty};
14 use crate::types::*; 14 use crate::types::*;
15 use alg_tools::bounds::MinMaxMapping; 15 use alg_tools::bounds::MinMaxMapping;
16 use alg_tools::convex::{Conjugable, Prox, Zero}; 16 use alg_tools::convex::{Conjugable, Prox, Zero};
17 use alg_tools::norms::L2;
17 use alg_tools::direct_product::Pair; 18 use alg_tools::direct_product::Pair;
18 use alg_tools::error::DynResult; 19 use alg_tools::error::DynResult;
19 use alg_tools::euclidean::ClosedEuclidean; 20 use alg_tools::euclidean::ClosedEuclidean;
20 use alg_tools::iterate::AlgIteratorFactory; 21 use alg_tools::iterate::AlgIteratorFactory;
21 use alg_tools::linops::{ 22 use alg_tools::linops::{
22 BoundedLinear, IdOp, SimplyAdjointable, StaticEuclideanOriginGenerator, ZeroOp, AXPY, GEMV, 23 BoundedLinear, IdOp, SimplyAdjointable, StaticEuclideanOriginGenerator, ZeroOp, AXPY, GEMV,
23 }; 24 };
24 use alg_tools::mapping::{DifferentiableMapping, DifferentiableRealMapping, Instance}; 25 use alg_tools::mapping::{DifferentiableMapping, DifferentiableRealMapping, Instance};
25 use alg_tools::nalgebra_support::ToNalgebraRealField; 26 use alg_tools::nalgebra_support::ToNalgebraRealField;
26 use alg_tools::norms::L2;
27 use anyhow::ensure; 27 use anyhow::ensure;
28 use numeric_literals::replace_float_literals; 28 use numeric_literals::replace_float_literals;
29 use serde::{Deserialize, Serialize}; 29 use serde::{Deserialize, Serialize};
30 30
31 /// Settings for [`pointsource_sliding_pdps_pair`]. 31 /// Settings for [`pointsource_sliding_pdps_pair`].
310 &μ̆, 310 &μ̆,
311 τ, 311 τ,
312 ε, 312 ε,
313 ins, 313 ins,
314 &reg, 314 &reg,
315 Some(|μ̃: &RNDM<N, F>| f.apply(Pair(μ̃, &z))), 315 Some(|μ̃: &RNDM<N, F>| f.apply(Pair(μ̃, &z)) + reg.apply(μ̃)),
316 ); 316 );
317 if m > 0 { 317 if m > 0 {
318 stats.merged += m; 318 stats.merged += m;
319 } 319 }
320 }); 320 });

mercurial