--- a/src/run.rs Wed Aug 05 17:50:38 2026 -0500 +++ b/src/run.rs Thu Aug 06 14:33:17 2026 -0500 @@ -1412,8 +1412,8 @@ (Option<DiscreteMeasure<U, F>>, Z, Y), String, ), - ) -> DynResult<Pair<DiscreteMeasure<U, F>, Z>>, -) -> DynResult<Pair<DiscreteMeasure<U, F>, Z>> + ) -> DynResult<MeasureZ<F, Z, U>>, +) -> DynResult<MeasureZ<F, Z, U>> where F: Float + ToNalgebraRealField, U: Space + Clone + Dist<L2, F>, @@ -1421,7 +1421,7 @@ I: AlgIteratorFactory<IterInfo<F>>, Dat: DifferentiableMapping<MeasureZ<F, Z, U>, Codomain = F, DerivativeDomain = Pair<S, Z>> + BoundedCurvature<F>, - S: DifferentiableMapping<U, Codomain = F> + ClosedMul<F> + MinMaxMapping<U, F>, + S: ClosedMul<F>, for<'a> Pair<&'a P, &'a IdOp<Z>>: StepLengthBoundPair<F, Dat>, //Pair<S, Z>: ClosedMul<F>, DiscreteMeasure<U, F>: SpikeMerging<F>, @@ -1476,8 +1476,8 @@ (Option<DiscreteMeasure<U, F>>, Z, Y), String, ), - ) -> DynResult<Pair<DiscreteMeasure<U, F>, Z>>, -) -> DynResult<Pair<DiscreteMeasure<U, F>, Z>> + ) -> DynResult<MeasureZ<F, Z, U>>, +) -> DynResult<MeasureZ<F, Z, U>> where F: Float + ToNalgebraRealField, U: Space + Clone + Dist<L2, F>, @@ -1485,7 +1485,7 @@ I: AlgIteratorFactory<IterInfo<F>>, Dat: DifferentiableMapping<MeasureZ<F, Z, U>, Codomain = F, DerivativeDomain = Pair<S, Z>> + BoundedCurvature<F>, - S: DifferentiableMapping<U, Codomain = F> + ClosedMul<F> + MinMaxMapping<U, F>, + S: ClosedMul<F>, for<'a> Pair<&'a P, &'a IdOp<Z>>: StepLengthBoundPair<F, Dat>, //Pair<S, Z>: ClosedMul<F>, DiscreteMeasure<U, F>: SpikeMerging<F>, @@ -1563,8 +1563,8 @@ (Option<DiscreteMeasure<U, F>>, Z), String, ), - ) -> DynResult<Pair<DiscreteMeasure<U, F>, Z>>, -) -> DynResult<Pair<DiscreteMeasure<U, F>, Z>> + ) -> DynResult<MeasureZ<F, Z, U>>, +) -> DynResult<MeasureZ<F, Z, U>> where F: Float + ToNalgebraRealField, U: Space + Clone + Dist<L2, F>, @@ -1572,7 +1572,7 @@ I: AlgIteratorFactory<IterInfo<F>>, Dat: DifferentiableMapping<MeasureZ<F, Z, U>, Codomain = F, DerivativeDomain = Pair<S, Z>> + BoundedCurvature<F>, - S: DifferentiableMapping<U, Codomain = F> + ClosedMul<F> + MinMaxMapping<U, F>, + S: ClosedMul<F>, DiscreteMeasure<U, F>: SpikeMerging<F>, Reg: SlidingRegTerm<U, F>, P: TransportProxPenalty<U, S, Reg, F>, @@ -1581,8 +1581,6 @@ for<'b> &'b Z: Instance<Z>, R: Prox<Z, Codomain = F>, Plot: Plotter<P::ReturnMapping, S, DiscreteMeasure<U, F>>, - // We should not need to explicitly require this: - for<'b> &'b Loc<0, F>: Instance<Loc<0, F>>, { run_fb_pair_dom(f, reg, prox_penalty, fnR, init, &mut FullSpace, cont) } @@ -1608,8 +1606,8 @@ (Option<DiscreteMeasure<U, F>>, Z), String, ), - ) -> DynResult<Pair<DiscreteMeasure<U, F>, Z>>, -) -> DynResult<Pair<DiscreteMeasure<U, F>, Z>> + ) -> DynResult<MeasureZ<F, Z, U>>, +) -> DynResult<MeasureZ<F, Z, U>> where F: Float + ToNalgebraRealField, U: Space + Clone + Dist<L2, F>, @@ -1617,7 +1615,7 @@ I: AlgIteratorFactory<IterInfo<F>>, Dat: DifferentiableMapping<MeasureZ<F, Z, U>, Codomain = F, DerivativeDomain = Pair<S, Z>> + BoundedCurvature<F>, - S: DifferentiableMapping<U, Codomain = F> + ClosedMul<F> + MinMaxMapping<U, F>, + S: ClosedMul<F>, DiscreteMeasure<U, F>: SpikeMerging<F>, Reg: SlidingRegTerm<U, F>, P: TransportProxPenalty<U, S, Reg, F>, @@ -1626,8 +1624,6 @@ for<'b> &'b Z: Instance<Z>, R: Prox<Z, Codomain = F>, Plot: Plotter<P::ReturnMapping, S, DiscreteMeasure<U, F>>, - // We should not need to explicitly require this: - for<'b> &'b Loc<0, F>: Instance<Loc<0, F>>, { let pt = P::prox_type();