DP3
EstimateMixed.h
Go to the documentation of this file.
1 // EstimateMixed.h: Estimate Jones matrices for several directions
2 // simultaneously. A separate data stream is used for each direction. The
3 // mixing coefficients quantify the influence of each direction on each of the
4 // other directions (including time and frequency smearing).
5 //
6 // Copyright (C) 2020 ASTRON (Netherlands Institute for Radio Astronomy)
7 // SPDX-License-Identifier: GPL-3.0-or-later
8 
14 
15 #ifndef DPPP_ESTIMATEMIXED_H
16 #define DPPP_ESTIMATEMIXED_H
17 
18 #include "Baseline.h"
19 #include "Cursor.h"
20 
21 #include <vector>
22 
23 namespace dp3 {
24 namespace base {
25 
30 //
58 bool estimate(size_t nDirection, size_t nStation, size_t nBaseline,
59  size_t nChannel, const_cursor<Baseline> baselines,
60  std::vector<const_cursor<std::complex<float>>> data,
61  std::vector<const_cursor<std::complex<double>>> model,
63  const_cursor<std::complex<double>> mix, double* unknowns,
64  size_t maxiter = 50);
65 
66 #ifdef HAVE_LIBDIRAC
75 bool estimate(std::size_t n_direction, std::size_t n_station,
76  std::size_t n_baseline, std::size_t n_channel,
77  const_cursor<Baseline> baselines,
78  std::vector<const_cursor<std::complex<float>>> data,
79  std::vector<const_cursor<std::complex<double>>> model,
81  const_cursor<std::complex<double>> mix, double* unknowns,
82  std::size_t lbfgs_mem, double robust_nu, const double sol_min,
83  const double sol_max, std::size_t max_iter = 50);
84 #endif /* HAVE_LIBDIRAC */
85 
94 void makeIndex(std::size_t n_direction, std::size_t n_station,
95  const Baseline& baseline, unsigned int* index);
96 
97 } // namespace base
98 } // namespace dp3
99 
100 #endif
Pair of stations that together form a baseline (interferometer).
Definition: Cursor.h:97
void makeIndex(std::size_t n_direction, std::size_t n_station, const Baseline &baseline, unsigned int *index)
std::pair< size_t, size_t > Baseline
Definition: Baseline.h:18
bool estimate(size_t nDirection, size_t nStation, size_t nBaseline, size_t nChannel, const_cursor< Baseline > baselines, std::vector< const_cursor< std::complex< float >>> data, std::vector< const_cursor< std::complex< double >>> model, const_cursor< bool > flag, const_cursor< float > weight, const_cursor< std::complex< double >> mix, double *unknowns, size_t maxiter=50)
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53