354 generic_pointsource_fb_reg( |
351 generic_pointsource_fb_reg( |
355 opA, reg, op𝒟, τ, &config.insertion, iterator, plotter, y, pdps |
352 opA, reg, op𝒟, τ, &config.insertion, iterator, plotter, y, pdps |
356 ) |
353 ) |
357 } |
354 } |
358 |
355 |
359 // |
|
360 // Deprecated interfaces |
|
361 // |
|
362 |
|
363 #[deprecated(note = "Use `pointsource_pdps_reg`")] |
|
364 pub fn pointsource_pdps<'a, F, I, A, GA, 𝒟, BTA, G𝒟, S, K, D, const N : usize>( |
|
365 opA : &'a A, |
|
366 b : &'a A::Observable, |
|
367 α : F, |
|
368 op𝒟 : &'a 𝒟, |
|
369 config : &PDPSConfig<F>, |
|
370 iterator : I, |
|
371 plotter : SeqPlotter<F, N>, |
|
372 dataterm : D, |
|
373 ) -> DiscreteMeasure<Loc<F, N>, F> |
|
374 where F : Float + ToNalgebraRealField, |
|
375 I : AlgIteratorFactory<IterInfo<F, N>>, |
|
376 for<'b> &'b A::Observable : std::ops::Neg<Output=A::Observable> |
|
377 + std::ops::Add<A::Observable, Output=A::Observable>, |
|
378 A::Observable : std::ops::MulAssign<F>, |
|
379 GA : SupportGenerator<F, N, SupportType = S, Id = usize> + Clone, |
|
380 A : ForwardModel<Loc<F, N>, F, PreadjointCodomain = BTFN<F, GA, BTA, N>> |
|
381 + Lipschitz<𝒟, FloatType=F>, |
|
382 BTA : BTSearch<F, N, Data=usize, Agg=Bounds<F>>, |
|
383 G𝒟 : SupportGenerator<F, N, SupportType = K, Id = usize> + Clone, |
|
384 𝒟 : DiscreteMeasureOp<Loc<F, N>, F, PreCodomain = PreBTFN<F, G𝒟, N>>, |
|
385 𝒟::Codomain : RealMapping<F, N>, |
|
386 S: RealMapping<F, N> + LocalAnalysis<F, Bounds<F>, N>, |
|
387 K: RealMapping<F, N> + LocalAnalysis<F, Bounds<F>, N>, |
|
388 BTNodeLookup: BTNode<F, usize, Bounds<F>, N>, |
|
389 Cube<F, N>: P2Minimise<Loc<F, N>, F>, |
|
390 PlotLookup : Plotting<N>, |
|
391 DiscreteMeasure<Loc<F, N>, F> : SpikeMerging<F>, |
|
392 PDPS<'a, F, A, D, N> : FBSpecialisation<F, A::Observable, N>, |
|
393 D : Subdifferentiable<F, A::Observable> { |
|
394 |
|
395 pointsource_pdps_reg(opA, b, NonnegRadonRegTerm(α), op𝒟, config, iterator, plotter, dataterm) |
|
396 } |
|