--- a/src/frank_wolfe.rs Thu Dec 01 23:07:35 2022 +0200 +++ b/src/frank_wolfe.rs Sun Sep 25 21:45:56 2022 +0300 @@ -149,13 +149,13 @@ inner : &InnerSettings<F>, iterator : I ) -> usize -where F : Float + ToNalgebraRealField, +where F : Float + ToNalgebraRealField<MixedType=F>, I : AlgIteratorFactory<F>, A : ForwardModel<Loc<F, N>, F> { // Form and solve finite-dimensional subproblem. let (Ã, g̃) = opA.findim_quadratic_model(&μ, b); - let mut x = μ.masses_dvector(); + let mut x = μ.masses_mut(); // `inner_τ1` is based on an estimate of the operator norm of $A$ from ℳ(Ω) to // ℝ^n. This estimate is a good one for the matrix norm from ℝ^m to ℝ^n when the @@ -168,7 +168,7 @@ let inner_τ = inner.τ0 / (findim_data.opAnorm_squared * F::cast_from(μ.len())); let iters = quadratic_nonneg(inner.method, &Ã, &g̃, α, &mut x, inner_τ, iterator); // Update masses of μ based on solution of finite-dimensional subproblem. - μ.set_masses_dvector(&x); + //μ.set_masses_dvector(&x); iters } @@ -193,7 +193,7 @@ iterator : I, mut plotter : SeqPlotter<F, N>, ) -> DiscreteMeasure<Loc<F, N>, F> -where F : Float + ToNalgebraRealField, +where F : Float + ToNalgebraRealField<MixedType=F>, I : AlgIteratorFactory<IterInfo<F, N>>, for<'b> &'b A::Observable : std::ops::Neg<Output=A::Observable>, //+ std::ops::Mul<F, Output=A::Observable>, <-- FIXME: compiler overflow