diff -r d9318317ccac -r 5ba25d740dfc src/sliding_pdps.rs --- a/src/sliding_pdps.rs Wed Aug 05 17:50:38 2026 -0500 +++ b/src/sliding_pdps.rs Thu Aug 06 14:33:17 2026 -0500 @@ -108,9 +108,8 @@ I: AlgIteratorFactory>, Dat: DifferentiableMapping, Codomain = F, DerivativeDomain = Pair> + BoundedCurvature, - S: DifferentiableMapping + ClosedMul + MinMaxMapping, + S: ClosedMul, for<'a> Pair<&'a P, &'a IdOp>: StepLengthBoundPair, - //Pair: ClosedMul, DiscreteMeasure: SpikeMerging, Reg: SlidingRegTerm, P: TransportProxPenalty, @@ -420,7 +419,7 @@ I: AlgIteratorFactory>, Dat: DifferentiableMapping, Codomain = F, DerivativeDomain = Pair> + BoundedCurvature, - S: DifferentiableMapping + ClosedMul + MinMaxMapping, + S: ClosedMul, DiscreteMeasure: SpikeMerging, Reg: SlidingRegTerm, P: TransportProxPenalty, @@ -429,15 +428,10 @@ for<'b> &'b Z: Instance, R: Prox, Plot: Plotter>, - // We should not need to explicitly require this: - for<'b> &'b Loc<0, F>: Instance>, - // Loc<0, F>: StaticEuclidean> - // + Instance> - // + VectorSpace, { let opKz: ZeroOp, _, _, F> = ZeroOp::new_dualisable(StaticEuclideanOriginGenerator, z.dual_origin()); - let fnH = Zero::new(); + let fnH = Zero::, F>::new(); // Convert config. We don't implement From (that could be done with the o2o crate), as σd0 // needs to be chosen in a general case; for the problem of this fucntion, anything is valid. let &SlidingFBConfig { τ0, σp0, insertion, transport, guess } = config; @@ -495,22 +489,11 @@ I: AlgIteratorFactory>, Dat: DifferentiableMapping, Codomain = F, DerivativeDomain = Pair> + BoundedCurvature, - S: DifferentiableMapping + ClosedMul + MinMaxMapping, + S: ClosedMul, for<'a> Pair<&'a P, &'a IdOp>: StepLengthBoundPair, - //Pair: ClosedMul, DiscreteMeasure: SpikeMerging, Reg: SlidingRegTerm, P: TransportProxPenalty, - // KOpM : Linear, Codomain=Y> - // + GEMV> - // + Preadjointable< - // DiscreteMeasure, Y, - // PreadjointCodomain = S, - // > - // + TransportLipschitz - // + AdjointProductBoundedBy, 𝒟, FloatType=F>, - // for<'b> KOpM::Preadjoint<'b> : GEMV, - // Since Z is Hilbert, we may just as well use adjoints for K_z. KOpZ: BoundedLinear + GEMV + SimplyAdjointable, @@ -569,11 +552,6 @@ for<'b> &'b Z: Instance, R: Prox, Plot: Plotter>, - // We should not need to explicitly require this: - for<'b> &'b Loc<0, F>: Instance>, - // Loc<0, F>: StaticEuclidean> - // + Instance> - // + VectorSpace, { let opKz: ZeroOp, _, _, F> = ZeroOp::new_dualisable(StaticEuclideanOriginGenerator, z.dual_origin());