1008 opA, reg, op𝒟, τ, &config.insertion, iterator, plotter, initial_residual, |
1008 opA, reg, op𝒟, τ, &config.insertion, iterator, plotter, initial_residual, |
1009 FISTA{ b, opA, λ : 1.0, μ_prev : DiscreteMeasure::new() }, |
1009 FISTA{ b, opA, λ : 1.0, μ_prev : DiscreteMeasure::new() }, |
1010 ), |
1010 ), |
1011 } |
1011 } |
1012 } |
1012 } |
1013 |
|
1014 // |
|
1015 // Deprecated interfaces |
|
1016 // |
|
1017 |
|
1018 #[deprecated(note = "Use `pointsource_fb_reg`")] |
|
1019 pub fn pointsource_fb<'a, F, I, A, GA, 𝒟, BTA, G𝒟, S, K, const N : usize>( |
|
1020 opA : &'a A, |
|
1021 b : &A::Observable, |
|
1022 α : F, |
|
1023 op𝒟 : &'a 𝒟, |
|
1024 config : &FBConfig<F>, |
|
1025 iterator : I, |
|
1026 plotter : SeqPlotter<F, N> |
|
1027 ) -> DiscreteMeasure<Loc<F, N>, F> |
|
1028 where F : Float + ToNalgebraRealField, |
|
1029 I : AlgIteratorFactory<IterInfo<F, N>>, |
|
1030 for<'b> &'b A::Observable : std::ops::Neg<Output=A::Observable>, |
|
1031 A::Observable : std::ops::MulAssign<F>, |
|
1032 GA : SupportGenerator<F, N, SupportType = S, Id = usize> + Clone, |
|
1033 A : ForwardModel<Loc<F, N>, F, PreadjointCodomain = BTFN<F, GA, BTA, N>> |
|
1034 + Lipschitz<𝒟, FloatType=F>, |
|
1035 BTA : BTSearch<F, N, Data=usize, Agg=Bounds<F>>, |
|
1036 G𝒟 : SupportGenerator<F, N, SupportType = K, Id = usize> + Clone, |
|
1037 𝒟 : DiscreteMeasureOp<Loc<F, N>, F, PreCodomain = PreBTFN<F, G𝒟, N>>, |
|
1038 𝒟::Codomain : RealMapping<F, N>, |
|
1039 S: RealMapping<F, N> + LocalAnalysis<F, Bounds<F>, N>, |
|
1040 K: RealMapping<F, N> + LocalAnalysis<F, Bounds<F>, N>, |
|
1041 BTNodeLookup: BTNode<F, usize, Bounds<F>, N>, |
|
1042 Cube<F, N>: P2Minimise<Loc<F, N>, F>, |
|
1043 PlotLookup : Plotting<N>, |
|
1044 DiscreteMeasure<Loc<F, N>, F> : SpikeMerging<F> { |
|
1045 |
|
1046 pointsource_fb_reg(opA, b, NonnegRadonRegTerm(α), op𝒟, config, iterator, plotter) |
|
1047 } |
|
1048 |
|
1049 |
|
1050 #[deprecated(note = "Use `generic_pointsource_fb_reg`")] |
|
1051 pub fn generic_pointsource_fb<'a, F, I, A, GA, 𝒟, BTA, G𝒟, S, K, Spec, const N : usize>( |
|
1052 opA : &'a A, |
|
1053 α : F, |
|
1054 op𝒟 : &'a 𝒟, |
|
1055 τ : F, |
|
1056 config : &FBGenericConfig<F>, |
|
1057 iterator : I, |
|
1058 plotter : SeqPlotter<F, N>, |
|
1059 residual : A::Observable, |
|
1060 specialisation : Spec, |
|
1061 ) -> DiscreteMeasure<Loc<F, N>, F> |
|
1062 where F : Float + ToNalgebraRealField, |
|
1063 I : AlgIteratorFactory<IterInfo<F, N>>, |
|
1064 Spec : FBSpecialisation<F, A::Observable, N>, |
|
1065 A::Observable : std::ops::MulAssign<F>, |
|
1066 GA : SupportGenerator<F, N, SupportType = S, Id = usize> + Clone, |
|
1067 A : ForwardModel<Loc<F, N>, F, PreadjointCodomain = BTFN<F, GA, BTA, N>> |
|
1068 + Lipschitz<𝒟, FloatType=F>, |
|
1069 BTA : BTSearch<F, N, Data=usize, Agg=Bounds<F>>, |
|
1070 G𝒟 : SupportGenerator<F, N, SupportType = K, Id = usize> + Clone, |
|
1071 𝒟 : DiscreteMeasureOp<Loc<F, N>, F, PreCodomain = PreBTFN<F, G𝒟, N>>, |
|
1072 𝒟::Codomain : RealMapping<F, N>, |
|
1073 S: RealMapping<F, N> + LocalAnalysis<F, Bounds<F>, N>, |
|
1074 K: RealMapping<F, N> + LocalAnalysis<F, Bounds<F>, N>, |
|
1075 BTNodeLookup: BTNode<F, usize, Bounds<F>, N>, |
|
1076 Cube<F, N>: P2Minimise<Loc<F, N>, F>, |
|
1077 PlotLookup : Plotting<N>, |
|
1078 DiscreteMeasure<Loc<F, N>, F> : SpikeMerging<F> { |
|
1079 |
|
1080 generic_pointsource_fb_reg(opA, NonnegRadonRegTerm(α), op𝒟, τ, config, iterator, plotter, |
|
1081 residual, specialisation) |
|
1082 } |
|