src/fb.rs

branch
dev
changeset 29
87649ccfa6a8
parent 24
d29d1fcf5423
child 32
56c8adc32b09
equal deleted inserted replaced
28:eb98b05b9c60 29:87649ccfa6a8
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 }

mercurial