6 #ifndef DP3_COMMON_BASELINE_INDICES_H_
7 #define DP3_COMMON_BASELINE_INDICES_H_
69 const size_t n_correlations = (n_antennas * (n_antennas - 1)) / 2;
70 const size_t n_autocorrelations = n_antennas;
71 return n_correlations + n_autocorrelations;
81 size_t row = std::min(antenna_a, antenna_b);
82 size_t col = std::max(antenna_a, antenna_b);
84 return size_t((row * n_antennas) + col - row * (row + 1) / 2);
86 return size_t((col * (col + 1)) / 2) + row;
99 const size_t antenna =
100 (1 + std::sqrt(1 + 8 * (n_baselines - baseline_index - 1))) / 2;
101 const size_t antenna1 = n_antennas - antenna;
103 const size_t n = n_baselines - n_antennas - (antenna * (antenna - 1)) / 2;
104 const size_t antenna2 = baseline_index - n;
105 return {antenna1, antenna2};
107 const size_t antenna2 = (1 + std::sqrt(1 + 8 * baseline_index)) / 2;
109 const size_t n = int((antenna2 * (antenna2 - 1)) / 2);
110 const size_t antenna1 = baseline_index - n;
111 return {antenna1, antenna2 - 1};
122 std::vector<size_t> indices;
123 indices.reserve(n_antennas);
125 for (
size_t i = 0; i < n_antennas; i++) {
size_t ComputeNBaselines(size_t n_antennas)
Definition: baseline_indices.h:68
std::pair< size_t, size_t > ComputeBaseline(size_t baseline_index, size_t n_antennas, BaselineOrder order)
Definition: baseline_indices.h:94
size_t ComputeBaselineIndex(size_t antenna_a, size_t antenna_b, size_t n_antennas, BaselineOrder order)
Definition: baseline_indices.h:79
BaselineOrder
Definition: baseline_indices.h:63
std::vector< size_t > ComputeBaselineList(size_t antenna, size_t n_antennas, BaselineOrder order)
Definition: baseline_indices.h:119
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53