4 #ifndef DP3_DDECAL_TEC_CONSTRAINT_H_
5 #define DP3_DDECAL_TEC_CONSTRAINT_H_
31 const std::vector<uint32_t>& solutions_per_direction,
32 const std::vector<double>& frequencies)
override;
35 void SetWeights(
const std::vector<double>& weights)
final override;
60 finished_approximate_stage_(false),
61 fitting_chunk_size_(0),
62 max_approx_iters_(50) {}
65 bool final_iter)
override {
66 finished_approximate_stage_ =
67 has_reached_precision || final_iter || iteration >= max_approx_iters_;
68 for (
size_t thread = 0; thread !=
phase_fitters_.size(); ++thread) {
76 bool Satisfied()
const override {
return finished_approximate_stage_; }
81 fitting_chunk_size_ = fitting_chunk_size;
85 max_approx_iters_ = max_approx_iters;
88 std::vector<ConstraintResult>
GetResult()
const override {
89 return finished_approximate_stage_ ?
results_
90 : std::vector<ConstraintResult>();
97 bool finished_approximate_stage_;
98 std::vector<PieceWisePhaseFitter> pw_fitters_;
99 std::vector<std::vector<double>> thread_data_;
100 std::vector<std::vector<double>> thread_fitted_data_;
101 std::vector<std::vector<double>> thread_weights_;
102 size_t fitting_chunk_size_, max_approx_iters_;
Definition: TecConstraint.h:56
ApproximateTECConstraint(Mode mode)
Definition: TecConstraint.h:58
std::vector< ConstraintResult > GetResult() const override
Definition: TecConstraint.h:88
bool Satisfied() const override
Definition: TecConstraint.h:76
void PrepareIteration(bool has_reached_precision, size_t iteration, bool final_iter) override
Definition: TecConstraint.h:64
void SetMaxApproximatingIterations(size_t max_approx_iters)
Definition: TecConstraint.h:84
void SetFittingChunkSize(size_t fitting_chunk_size)
Definition: TecConstraint.h:80
void Apply(SolutionSpan &solutions, double time) override
void initializeChild() override
This class is the base class for classes that implement a constraint on calibration solutions....
Definition: Constraint.h:27
Definition: TecConstraint.h:19
void Initialize(size_t nAntennas, const std::vector< uint32_t > &solutions_per_direction, const std::vector< double > &frequencies) override
std::vector< ConstraintResult > results_
Definition: TecConstraint.h:53
bool do_phase_reference_
Definition: TecConstraint.h:50
void SetWeights(const std::vector< double > &weights) final override
std::vector< PhaseFitter > phase_fitters_
Definition: TecConstraint.h:51
Mode
Definition: TecConstraint.h:21
virtual void initializeChild()
Definition: TecConstraint.h:47
std::vector< ConstraintResult > GetResult() const override
Definition: TecConstraint.h:44
std::vector< double > weights_
Definition: TecConstraint.h:52
void Apply(SolutionSpan &solutions, double time) override
void setDoPhaseReference(bool doPhaseReference)
Definition: TecConstraint.h:38
Mode mode_
Definition: TecConstraint.h:49
Definition: AmplitudeOnlyConstraint.h:12
aocommon::xt::Span< std::complex< double >, 4 > SolutionSpan
Definition: Solutions.h:20