Update CFSimpleIndexer authored by Martin Pokorny's avatar Martin Pokorny
...@@ -18,14 +18,13 @@ The signature of the `CFSimpleIterator` constructor is the following ...@@ -18,14 +18,13 @@ The signature of the `CFSimpleIterator` constructor is the following
const axis_desc_t& time, const axis_desc_t& time,
const axis_desc_t& w_plane, const axis_desc_t& w_plane,
const axis_desc_t& frequency, const axis_desc_t& frequency,
const axis_desc_t& mcol, const axis_desc_t& mueller);
const axis_desc_t& mrow);
``` ```
The arguments of the constructor correspond (largely) to dimensions in the space of `CFStore2 x CFBuffer`. Each of the arguments is a value of type `CFSimpleIndexer::axis_desc_t`, which combines the size of the axis and a flag to indicate whether the convolution function support sizes may be variable along that axis. Note that each axis is assumed to be densely occupied, and any conversion of an index on these axes to or from an index in `CFStore2 x CFBuffer` is unspecified. The "variable-size CF" flag **must** be set if the support size of the convolution functions is not constant as the index on that axis changes while the remaining indexes stay fixed. The arguments of the constructor correspond (largely) to dimensions in the space of `CFStore2 x CFBuffer`. Each of the arguments is a value of type `CFSimpleIndexer::axis_desc_t`, which combines the size of the axis and a flag to indicate whether the convolution function support sizes may be variable along that axis. Note that each axis is assumed to be densely occupied, and any conversion of an index on these axes to or from an index in `CFStore2 x CFBuffer` is unspecified. The "variable-size CF" flag **must** be set if the support size of the convolution functions is not constant as the index on that axis changes while the remaining indexes stay fixed.
The index type that is related to `hpg::CFArray` is `CFSimpleIndexer::cf_index_t`, which comprises three elements that correspond to the `mrow`, `cube` and `group` arguments of the `CFArray` indexing operator. The `CFSimpleIndexer` method that converts from a CASA-like index to a `CFArray` index is then The index type that is related to `hpg::CFArray` is `CFSimpleIndexer::cf_index_t`, which comprises three elements that correspond to the `mueller` `cube` and `group` arguments of the `CFArray` indexing operator. The `CFSimpleIndexer` method that converts from a CASA-like index to a `CFArray` index is then
```c++ ```c++
// array elements: (mrow, cube, grp) // array elements: (mueller, cube, grp)
using cf_index_t = std::array<unsigned, 3>; using cf_index_t = std::array<unsigned, 3>;
cf_index_t cf_index_t
...@@ -38,7 +37,7 @@ Comparing the `cf_index_t` value to the definition of the `CFArray` element acce ...@@ -38,7 +37,7 @@ Comparing the `cf_index_t` value to the definition of the `CFArray` element acce
CFArray:operator()( CFArray:operator()(
unsigned x, unsigned x,
unsigned y, unsigned y,
unsigned mrow, unsigned mueller,
unsigned cube, unsigned cube,
unsigned grp); unsigned grp);
``` ```
... ...
......