diff -r 6be459f08b66 -r 943c6b3b9414 src/mapping/dataterm.rs --- a/src/mapping/dataterm.rs Wed Apr 30 00:48:56 2025 -0500 +++ b/src/mapping/dataterm.rs Wed Apr 30 01:06:25 2025 -0500 @@ -5,11 +5,11 @@ #![allow(non_snake_case)] -use super::{DifferentiableImpl, DifferentiableMapping, /*LipschitzDifferentiableImpl,*/ Mapping,}; +use super::{DifferentiableImpl, DifferentiableMapping, LipschitzDifferentiableImpl, Mapping}; use crate::convex::ConvexMapping; use crate::instance::{Instance, Space}; -use crate::linops::{/*BoundedLinear,*/ Linear, Preadjointable}; -//use crate::norms::{Norm, NormExponent, L2}; +use crate::linops::{BoundedLinear, Linear, Preadjointable}; +use crate::norms::{Normed, L2}; use crate::types::Float; use std::ops::Sub; //use serde::{Deserialize, Serialize}; @@ -72,10 +72,10 @@ impl ConvexMapping for DataTerm where F: Float, - X: Space, + X: Normed, A: Linear, G: ConvexMapping, - A::Codomain: for<'a> Sub<&'a A::Codomain, Output = A::Codomain>, + A::Codomain: Normed + for<'a> Sub<&'a A::Codomain, Output = A::Codomain>, { } @@ -103,22 +103,18 @@ } } -/* -impl<'a, F, X, ExpX, Y, ExpY, A, G> LipschitzDifferentiableImpl for DataTerm +impl<'a, F, X, Y, A, G> LipschitzDifferentiableImpl for DataTerm where F: Float, - X: Space + Clone + Norm, - Y: Space + Norm, - ExpX: NormExponent, - ExpY: NormExponent, - A: Clone + BoundedLinear, - G: Mapping + LipschitzDifferentiableImpl, + X: Normed + Clone, + Y: Normed, + A: Clone + BoundedLinear, + G: Mapping + LipschitzDifferentiableImpl, Self: DifferentiableImpl, { type FloatType = F; - fn diff_lipschitz_factor(&self, seminorm: ExpX) -> Option { + fn diff_lipschitz_factor(&self, seminorm: X::NormExp) -> Option { Some(self.opA.opnorm_bound(seminorm, L2).powi(2)) } } -*/