ARTS 2.5.10 (git: 2f1c442c)
|
A constant view of a Tensor6. More...
#include <matpackVI.h>
Protected Member Functions | |
ConstTensor6View ()=default | |
ConstTensor6View (Numeric *data, const Range &v, const Range &s, const Range &b, const Range &p, const Range &r, const Range &c) | |
Explicit constructor. | |
ConstTensor6View (Numeric *data, const Range &pv, const Range &ps, const Range &pb, const Range &pp, const Range &pr, const Range &pc, const Range &nv, const Range &ns, const Range &nb, const Range &np, const Range &nr, const Range &nc) | |
Recursive constructor. | |
Protected Attributes | |
Range | mvr {0, 0, 1} |
The vitrine range of mdata that is actually used. | |
Range | msr {0, 0, 1} |
The shelf range of mdata that is actually used. | |
Range | mbr {0, 0, 1} |
The book range of mdata that is actually used. | |
Range | mpr {0, 0, 1} |
The page range of mdata that is actually used. | |
Range | mrr {0, 0, 1} |
The row range of mdata that is actually used. | |
Range | mcr {0, 0, 1} |
The column range of mdata that is actually used. | |
Numeric * | mdata {nullptr} |
Pointer to the plain C array that holds the data. | |
Friends | |
class | ConstIterator7D |
class | Tensor6View |
class | ConstTensor7View |
std::ostream & | operator<< (std::ostream &os, const ConstTensor6View &v) |
Output operator. | |
A constant view of a Tensor6.
This, together with the derived class Tensor6View, contains the main implementation of a Tensor6. It defines the concepts of Tensor6View. Plus additionally the recursive subrange operator, which makes it possible to create a Tensor6View from a subrange of a Tensor6View.
Dimensions are called: vitrine, shelf, book, page, row, column. or short: v, s, b, p, r, c
The class Tensor6 is just a special case of a Tensor6View which also allocates storage.
Definition at line 150 of file matpackVI.h.
|
constexprdefault |
|
constexprdefault |
|
virtualdefault |
ConstTensor6View::ConstTensor6View | ( | const ConstTensor5View & | a | ) |
Special constructor to make a Tensor6 view of a Tensor5.
Definition at line 867 of file matpackVI.cc.
|
protecteddefault |
Referenced by operator()().
|
protected |
Explicit constructor.
This one is used by Tensor6 to initialize its own Tensor6View part. The row range rr must have a stride to account for the length of one row. The page range pr must have a stride to account for the length of one page.
Definition at line 885 of file matpackVI.cc.
|
protected |
Recursive constructor.
This is used to construct sub-tensors from sub-tensors. That means that the new ranges have to be interpreted relative to the original ranges.
The new ranges may contain -1 for the extent which acts as a joker. However, the used Range constructor converts this to an explicit range, consistent with the original Range.
Definition at line 903 of file matpackVI.cc.
ConstIterator6D ConstTensor6View::begin | ( | ) | const |
Return const iterator to first sub-tensor.
Definition at line 848 of file matpackVI.cc.
References mbr, mcr, mdata, mpr, mrr, msr, Range::mstart, Range::mstride, and mvr.
Referenced by copy(), max(), min(), Tensor6View::operator*=(), Tensor6View::operator+=(), Tensor6View::operator-=(), Tensor6View::operator/=(), Tensor6View::operator=(), Tensor6::Tensor6(), and transform().
|
inlinenoexcept |
Definition at line 169 of file matpackVI.h.
References size().
ConstIterator6D ConstTensor6View::end | ( | ) | const |
Return const iterator behind last sub-tensor.
Definition at line 855 of file matpackVI.cc.
References mbr, mcr, mdata, Range::mextent, mpr, mrr, msr, Range::mstart, Range::mstride, and mvr.
Referenced by copy(), max(), min(), Tensor6View::operator=(), Tensor6::Tensor6(), and transform().
Get element implementation without assertions.
Definition at line 561 of file matpackVI.h.
References b, c, mdata, OFFSET, and v.
Referenced by interp(), and operator()().
|
inlinenoexcept |
Definition at line 160 of file matpackVI.h.
References mbr, and Range::mextent.
Referenced by GriddedField6::checksize(), chk_size(), cloudbox_field_monoIterate(), describe(), doit_conv_flagAbs(), doit_conv_flagAbsBT(), doit_conv_flagLsq(), doit_scat_fieldNormalize(), Interpolation::interp(), is_size(), Tensor6View::operator*=(), Tensor6View::operator+=(), Tensor6View::operator-=(), Tensor6View::operator/=(), Tensor6::operator=(), pha_mat_1ScatElem(), Reduce(), Tensor6::reduce_rank(), select_dims_by_size(), shape(), size(), surface_reflectivityFromGriddedField6(), Tensor6::Tensor6(), Tensor6Multiply(), transform(), and xml_write_to_stream().
|
inlinenoexcept |
Definition at line 163 of file matpackVI.h.
References mcr, and Range::mextent.
Referenced by GriddedField6::checksize(), chk_size(), cloud_ppath_update1D(), cloud_ppath_update1D_noseq(), cloud_ppath_update1D_planeparallel(), cloud_ppath_update3D(), cloud_RT_no_background(), cloudbox_field_monoIterate(), cloudbox_fieldUpdate1D(), cloudbox_fieldUpdateSeq1D(), cloudbox_fieldUpdateSeq1DPP(), cloudbox_fieldUpdateSeq3D(), describe(), doit_conv_flagAbs(), doit_conv_flagAbsBT(), doit_conv_flagLsq(), doit_scat_fieldCalc(), doit_scat_fieldCalcLimb(), doit_scat_fieldNormalize(), doit_za_grid_optCalc(), Interpolation::interp(), interp_cloud_coeff1D(), is_size(), Tensor6View::operator*=(), Tensor6View::operator+=(), Tensor6View::operator-=(), Tensor6View::operator/=(), Tensor6::operator=(), OptimizeDoitPressureGrid(), pha_mat_1ScatElem(), Reduce(), Tensor6::reduce_rank(), select_dims_by_size(), shape(), size(), surface_reflectivityFromGriddedField6(), Tensor6::Tensor6(), Tensor6Multiply(), transform(), and xml_write_to_stream().
|
inlinenoexcept |
Definition at line 161 of file matpackVI.h.
References Range::mextent, and mpr.
Referenced by GriddedField6::checksize(), chk_size(), cloudbox_field_monoIterate(), cloudbox_field_monoOptimizeReverse(), cloudbox_field_ngAcceleration(), describe(), doit_conv_flagAbs(), doit_conv_flagAbsBT(), doit_conv_flagLsq(), doit_scat_fieldNormalize(), Interpolation::interp(), is_size(), Tensor6View::operator*=(), Tensor6View::operator+=(), Tensor6View::operator-=(), Tensor6View::operator/=(), Tensor6::operator=(), OptimizeDoitPressureGrid(), pha_mat_1ScatElem(), Reduce(), Tensor6::reduce_rank(), select_dims_by_size(), shape(), size(), surface_reflectivityFromGriddedField6(), Tensor6::Tensor6(), Tensor6Multiply(), transform(), xml_write_to_stream(), and za_gridOpt().
|
inlinenoexcept |
Definition at line 162 of file matpackVI.h.
References Range::mextent, and mrr.
Referenced by GriddedField6::checksize(), chk_size(), cloudbox_field_monoIterate(), describe(), doit_conv_flagAbs(), doit_conv_flagAbsBT(), doit_conv_flagLsq(), doit_scat_fieldNormalize(), Interpolation::interp(), is_size(), Tensor6View::operator*=(), Tensor6View::operator+=(), Tensor6View::operator-=(), Tensor6View::operator/=(), Tensor6::operator=(), pha_mat_1ScatElem(), Reduce(), Tensor6::reduce_rank(), select_dims_by_size(), shape(), size(), surface_reflectivityFromGriddedField6(), Tensor6::Tensor6(), Tensor6Multiply(), transform(), and xml_write_to_stream().
|
inlinenoexcept |
Definition at line 159 of file matpackVI.h.
References Range::mextent, and msr.
Referenced by GriddedField6::checksize(), chk_size(), cloudbox_field_monoIterate(), describe(), doit_conv_flagAbs(), doit_conv_flagAbsBT(), doit_conv_flagLsq(), doit_scat_fieldNormalize(), Interpolation::interp(), is_size(), Tensor6View::operator*=(), Tensor6View::operator+=(), Tensor6View::operator-=(), Tensor6View::operator/=(), Tensor6::operator=(), pha_mat_1ScatElem(), Reduce(), Tensor6::reduce_rank(), select_dims_by_size(), shape(), size(), surface_reflectivityFromGriddedField6(), Tensor6::Tensor6(), Tensor6Multiply(), transform(), and xml_write_to_stream().
|
inlinenoexcept |
Definition at line 158 of file matpackVI.h.
References Range::mextent, and mvr.
Referenced by GriddedField6::checksize(), chk_size(), cloudbox_field_monoIterate(), cloudbox_field_ngAcceleration(), cloudbox_fieldUpdateSeq1D(), describe(), doit_conv_flagAbs(), doit_conv_flagAbsBT(), doit_conv_flagLsq(), doit_scat_fieldNormalize(), doit_za_grid_optCalc(), Interpolation::interp(), is_size(), Tensor6View::operator*=(), Tensor6View::operator+=(), Tensor6View::operator-=(), Tensor6View::operator/=(), Tensor6::operator=(), pha_mat_1ScatElem(), Reduce(), Tensor6::reduce_rank(), select_dims_by_size(), shape(), size(), surface_reflectivityFromGriddedField6(), Tensor6::Tensor6(), Tensor6Multiply(), transform(), xml_write_to_stream(), and za_gridOpt().
ConstTensor3View ConstTensor6View::operator() | ( | Index | v, |
Index | s, | ||
const Range & | b, | ||
Index | p, | ||
const Range & | r, | ||
const Range & | c | ||
) | const |
Definition at line 569 of file matpackVI.cc.
|
default |
|
default |
|
inline |
Returns the shape as an array (to allow templates to just look for shape on different matpack objects)
Definition at line 172 of file matpackVI.h.
References nbooks(), ncols(), npages(), nrows(), nshelves(), and nvitrines().
Referenced by Tensor6::operator=().
|
inlinenoexcept |
Definition at line 166 of file matpackVI.h.
References nbooks(), ncols(), npages(), nrows(), nshelves(), and nvitrines().
Referenced by empty(), Tensor6View::get_c_array(), Tensor6::reduce_rank(), Tensor7::reduce_rank(), and Tensor6::transform_elementwise().
|
friend |
Definition at line 575 of file matpackVI.h.
|
friend |
Definition at line 577 of file matpackVI.h.
|
friend |
Output operator.
This demonstrates how iterators can be used to traverse the tensor. We use the standard output operator for Tensor5 to print each page in turn.
Definition at line 929 of file matpackVI.cc.
|
friend |
Definition at line 576 of file matpackVI.h.
|
protected |
The book range of mdata that is actually used.
Definition at line 615 of file matpackVI.h.
Referenced by Tensor6View::begin(), begin(), end(), Tensor6View::end(), Tensor6View::get_c_array(), nbooks(), ConstIterator7D::operator!=(), Iterator7D::operator!=(), Tensor6View::operator()(), operator()(), Tensor6View::operator=(), and Tensor6::resize().
|
protected |
The column range of mdata that is actually used.
Definition at line 621 of file matpackVI.h.
Referenced by Tensor6View::begin(), begin(), end(), Tensor6View::end(), Tensor6View::get_c_array(), ncols(), ConstIterator7D::operator!=(), Iterator7D::operator!=(), Tensor6View::operator()(), operator()(), Tensor6View::operator=(), and Tensor6::resize().
|
protected |
Pointer to the plain C array that holds the data.
Definition at line 623 of file matpackVI.h.
Referenced by Tensor6View::begin(), begin(), end(), Tensor6View::end(), get(), Tensor6View::get_c_array(), ConstIterator7D::operator!=(), Iterator7D::operator!=(), Tensor6View::operator()(), operator()(), Iterator7D::operator++(), ConstIterator7D::operator++(), Tensor6::operator=(), Tensor6::reduce_rank(), Tensor6::resize(), Tensor6::Tensor6(), Tensor6::transform_elementwise(), and Tensor6::~Tensor6().
|
protected |
The page range of mdata that is actually used.
Definition at line 617 of file matpackVI.h.
Referenced by Tensor6View::begin(), begin(), Tensor6View::end(), end(), Tensor6View::get_c_array(), npages(), ConstIterator7D::operator!=(), Iterator7D::operator!=(), Tensor6View::operator()(), operator()(), Tensor6View::operator=(), and Tensor6::resize().
|
protected |
The row range of mdata that is actually used.
Definition at line 619 of file matpackVI.h.
Referenced by Tensor6View::begin(), begin(), end(), Tensor6View::end(), Tensor6View::get_c_array(), nrows(), ConstIterator7D::operator!=(), Iterator7D::operator!=(), Tensor6View::operator()(), operator()(), Tensor6View::operator=(), and Tensor6::resize().
|
protected |
The shelf range of mdata that is actually used.
Definition at line 613 of file matpackVI.h.
Referenced by Tensor6View::begin(), begin(), Tensor6View::end(), end(), Tensor6View::get_c_array(), nshelves(), ConstIterator7D::operator!=(), Iterator7D::operator!=(), Tensor6View::operator()(), operator()(), Tensor6View::operator=(), and Tensor6::resize().
|
protected |
The vitrine range of mdata that is actually used.
Definition at line 611 of file matpackVI.h.
Referenced by Tensor6View::begin(), begin(), Tensor6View::end(), end(), Tensor6View::get_c_array(), nvitrines(), ConstIterator7D::operator!=(), Iterator7D::operator!=(), Tensor6View::operator()(), operator()(), Tensor6View::operator=(), and Tensor6::resize().