ARTS 2.5.10 (git: 2f1c442c)
|
A constant view of a Tensor7. More...
#include <matpackVII.h>
Static Public Attributes | |
static constexpr bool | matpack_type {true} |
Protected Member Functions | |
ConstTensor7View ()=default | |
ConstTensor7View (Numeric *data, const Range &l, const Range &v, const Range &s, const Range &b, const Range &p, const Range &r, const Range &c) | |
Explicit constructor. | |
ConstTensor7View (Numeric *data, const Range &pl, const Range &pv, const Range &ps, const Range &pb, const Range &pp, const Range &pr, const Range &pc, const Range &nl, const Range &nv, const Range &ns, const Range &nb, const Range &np, const Range &nr, const Range &nc) | |
Recursive constructor. | |
Protected Attributes | |
Range | mlr {0, 0, 1} |
The library range of mdata that is actually used. | |
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 | Tensor7View |
std::ostream & | operator<< (std::ostream &os, const ConstTensor7View &v) |
Output operator. | |
A constant view of a Tensor7.
This, together with the derived class Tensor7View, contains the main implementation of a Tensor7. It defines the concepts of Tensor7View. Plus additionally the recursive subrange operator, which makes it possible to create a Tensor7View from a subrange of a Tensor7View.
Dimensions are called: library, vitrine, shelf, book, page, row, column. or short: l, v, s, b, p, r, c
The class Tensor7 is just a special case of a Tensor7View which also allocates storage.
Definition at line 148 of file matpackVII.h.
|
constexprdefault |
|
constexprdefault |
|
virtualdefault |
Destructor.
ConstTensor7View::ConstTensor7View | ( | const ConstTensor6View & | a | ) |
Special constructor to make a Tensor7 view of a Tensor6.
Definition at line 2475 of file matpackVII.cc.
|
protecteddefault |
Referenced by operator()().
|
protected |
Explicit constructor.
This one is used by Tensor7 to initialize its own Tensor7View 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 2494 of file matpackVII.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 2513 of file matpackVII.cc.
ConstIterator7D ConstTensor7View::begin | ( | ) | const |
Return const iterator to first sub-tensor.
Definition at line 2455 of file matpackVII.cc.
References mbr, mcr, mdata, mlr, mpr, mrr, msr, Range::mstart, Range::mstride, and mvr.
Referenced by max(), min(), Tensor7View::operator*=(), Tensor7View::operator+=(), Tensor7View::operator-=(), Tensor7View::operator/=(), Tensor7View::operator=(), Tensor7::Tensor7(), and transform().
|
inlinenoexcept |
Definition at line 171 of file matpackVII.h.
References size().
ConstIterator7D ConstTensor7View::end | ( | ) | const |
Return const iterator behind last sub-tensor.
Definition at line 2462 of file matpackVII.cc.
References mbr, mcr, mdata, Range::mextent, mlr, mpr, mrr, msr, Range::mstart, Range::mstride, and mvr.
Referenced by max(), min(), Tensor7View::operator=(), Tensor7::Tensor7(), and transform().
|
inline |
Get element implementation without assertions.
Definition at line 1231 of file matpackVII.h.
References b, c, mdata, OFFSET, and v.
Referenced by interp(), and operator()().
|
inlinenoexcept |
Definition at line 161 of file matpackVII.h.
References mbr, and Range::mextent.
Referenced by chk_size(), cloudbox_fieldInterp2Azimuth(), cloudbox_fieldSetClearsky(), cloudbox_fieldSetConst(), cloudbox_fieldSetConstPerFreq(), ConvertAzimuthallyRandomSingleScatteringData(), describe(), DoitGetIncoming(), DoitGetIncoming1DAtm(), FouComp_1ScatElem(), Interpolation::interp(), is_size(), iyEmissionHybrid(), iyInterpCloudboxField(), Tensor7View::operator*=(), Tensor7View::operator+=(), Tensor7View::operator-=(), Tensor7View::operator/=(), Tensor7::operator=(), OptimizeDoitPressureGrid(), RadiationFieldSpectralIntegrate(), Reduce(), Tensor7::reduce_rank(), ScatSpeciesExtendTemperature(), ScatSpeciesMerge(), select_dims_by_size(), shape(), size(), spectral_irradiance_fieldFromSpectralRadianceField(), Tensor7::Tensor7(), Tensor7Multiply(), transform(), WriteMolTau(), and xml_write_to_stream().
|
inlinenoexcept |
Definition at line 164 of file matpackVII.h.
References mcr, and Range::mextent.
Referenced by chk_size(), cloudbox_fieldInterp2Azimuth(), cloudbox_fieldSetClearsky(), cloudbox_fieldSetConst(), cloudbox_fieldSetConstPerFreq(), cloudbox_fieldSetFromPrecalc(), ConvertAzimuthallyRandomSingleScatteringData(), describe(), FouComp_1ScatElem(), Interpolation::interp(), interp_scat_angle_temperature(), is_size(), iyEmissionHybrid(), Tensor7View::operator*=(), Tensor7View::operator+=(), Tensor7View::operator-=(), Tensor7View::operator/=(), Tensor7::operator=(), Reduce(), Tensor7::reduce_rank(), ScatSpeciesExtendTemperature(), ScatSpeciesMerge(), select_dims_by_size(), shape(), size(), Tensor7::Tensor7(), Tensor7Multiply(), transform(), and xml_write_to_stream().
|
inlinenoexcept |
Definition at line 158 of file matpackVII.h.
References Range::mextent, and mlr.
Referenced by chk_size(), cloudbox_fieldInterp2Azimuth(), cloudbox_fieldSetClearsky(), cloudbox_fieldSetConst(), cloudbox_fieldSetConstPerFreq(), cloudbox_fieldSetFromPrecalc(), ConvertAzimuthallyRandomSingleScatteringData(), describe(), FouComp_1ScatElem(), Interpolation::interp(), is_size(), iyEmissionHybrid(), iyInterpCloudboxField(), Tensor7View::operator*=(), Tensor7View::operator+=(), Tensor7View::operator-=(), Tensor7View::operator/=(), Tensor7::operator=(), RadiationFieldSpectralIntegrate(), Reduce(), Tensor7::reduce_rank(), ScatSpeciesMerge(), select_dims_by_size(), shape(), size(), spectral_irradiance_fieldFromSpectralRadianceField(), Tensor7::Tensor7(), Tensor7Multiply(), transform(), WriteMolTau(), xml_read_from_stream(), and xml_write_to_stream().
|
inlinenoexcept |
Definition at line 162 of file matpackVII.h.
References Range::mextent, and mpr.
Referenced by chk_size(), cloudbox_fieldInterp2Azimuth(), cloudbox_fieldSetClearsky(), cloudbox_fieldSetConst(), cloudbox_fieldSetConstPerFreq(), cloudbox_fieldSetFromPrecalc(), describe(), FouComp_1ScatElem(), Interpolation::interp(), is_size(), iyEmissionHybrid(), Tensor7View::operator*=(), Tensor7View::operator+=(), Tensor7View::operator-=(), Tensor7View::operator/=(), Tensor7::operator=(), OptimizeDoitPressureGrid(), RadiationFieldSpectralIntegrate(), Reduce(), Tensor7::reduce_rank(), ScatSpeciesExtendTemperature(), ScatSpeciesMerge(), select_dims_by_size(), shape(), size(), spectral_irradiance_fieldFromSpectralRadianceField(), Tensor7::Tensor7(), Tensor7Multiply(), transform(), and xml_write_to_stream().
|
inlinenoexcept |
Definition at line 163 of file matpackVII.h.
References Range::mextent, and mrr.
Referenced by chk_size(), cloudbox_fieldInterp2Azimuth(), cloudbox_fieldSetClearsky(), cloudbox_fieldSetConst(), cloudbox_fieldSetConstPerFreq(), ConvertAzimuthallyRandomSingleScatteringData(), describe(), FouComp_1ScatElem(), Interpolation::interp(), is_size(), iyEmissionHybrid(), iyInterpCloudboxField(), Tensor7View::operator*=(), Tensor7View::operator+=(), Tensor7View::operator-=(), Tensor7View::operator/=(), Tensor7::operator=(), RadiationFieldSpectralIntegrate(), Reduce(), Tensor7::reduce_rank(), ScatSpeciesExtendTemperature(), ScatSpeciesMerge(), select_dims_by_size(), shape(), size(), spectral_irradiance_fieldFromSpectralRadianceField(), Tensor7::Tensor7(), Tensor7Multiply(), transform(), and xml_write_to_stream().
|
inlinenoexcept |
Definition at line 160 of file matpackVII.h.
References Range::mextent, and msr.
Referenced by chk_size(), cloudbox_fieldInterp2Azimuth(), cloudbox_fieldSetClearsky(), cloudbox_fieldSetConst(), cloudbox_fieldSetConstPerFreq(), ConvertAzimuthallyRandomSingleScatteringData(), describe(), DoitGetIncoming(), DoitGetIncoming1DAtm(), FouComp_1ScatElem(), Interpolation::interp(), is_size(), iyEmissionHybrid(), iyInterpCloudboxField(), Tensor7View::operator*=(), Tensor7View::operator+=(), Tensor7View::operator-=(), Tensor7View::operator/=(), Tensor7::operator=(), RadiationFieldSpectralIntegrate(), Reduce(), Tensor7::reduce_rank(), ScatSpeciesExtendTemperature(), ScatSpeciesMerge(), select_dims_by_size(), shape(), size(), spectral_irradiance_fieldFromSpectralRadianceField(), Tensor7::Tensor7(), Tensor7Multiply(), transform(), and xml_write_to_stream().
|
inlinenoexcept |
Definition at line 159 of file matpackVII.h.
References Range::mextent, and mvr.
Referenced by chk_size(), cloudbox_fieldInterp2Azimuth(), cloudbox_fieldSetClearsky(), cloudbox_fieldSetConst(), cloudbox_fieldSetConstPerFreq(), cloudbox_fieldSetFromPrecalc(), ConvertAzimuthallyRandomSingleScatteringData(), describe(), DoitGetIncoming(), DoitGetIncoming1DAtm(), FouComp_1ScatElem(), Interpolation::interp(), is_size(), iyEmissionHybrid(), iyInterpCloudboxField(), Tensor7View::operator*=(), Tensor7View::operator+=(), Tensor7View::operator-=(), Tensor7View::operator/=(), Tensor7::operator=(), OptimizeDoitPressureGrid(), RadiationFieldSpectralIntegrate(), Reduce(), Tensor7::reduce_rank(), select_dims_by_size(), shape(), size(), spectral_irradiance_fieldFromSpectralRadianceField(), Tensor7::Tensor7(), Tensor7Multiply(), transform(), and xml_write_to_stream().
|
default |
|
default |
|
inline |
Returns the shape as an array (to allow templates to just look for shape on different matpack objects)
Definition at line 174 of file matpackVII.h.
References nbooks(), ncols(), nlibraries(), npages(), nrows(), nshelves(), and nvitrines().
Referenced by Tensor7::operator=().
|
inlinenoexcept |
Definition at line 167 of file matpackVII.h.
References nbooks(), ncols(), nlibraries(), npages(), nrows(), nshelves(), and nvitrines().
Referenced by empty(), Tensor7View::get_c_array(), Tensor7::reduce_rank(), and Tensor7::transform_elementwise().
|
friend |
Output operator.
This demonstrates how iterators can be used to traverse the tensor. We use the standard output operator for Tensor6 to print each page in turn.
Definition at line 2542 of file matpackVII.cc.
|
friend |
Definition at line 1245 of file matpackVII.h.
|
staticconstexpr |
Definition at line 150 of file matpackVII.h.
Referenced by test_concepts().
|
protected |
The book range of mdata that is actually used.
Definition at line 1288 of file matpackVII.h.
Referenced by Tensor7View::begin(), begin(), Tensor7View::end(), end(), Tensor7View::get_c_array(), nbooks(), Tensor7View::operator()(), operator()(), Tensor7View::operator=(), and Tensor7::resize().
|
protected |
The column range of mdata that is actually used.
Definition at line 1294 of file matpackVII.h.
Referenced by Tensor7View::begin(), begin(), Tensor7View::end(), end(), Tensor7View::get_c_array(), ncols(), Tensor7View::operator()(), operator()(), Tensor7View::operator=(), and Tensor7::resize().
|
protected |
Pointer to the plain C array that holds the data.
Definition at line 1296 of file matpackVII.h.
Referenced by Tensor7View::begin(), begin(), Tensor7View::end(), end(), get(), Tensor7View::get_c_array(), Tensor7View::operator()(), operator()(), Tensor7::operator=(), Tensor7::reduce_rank(), Tensor7::resize(), Tensor7::Tensor7(), Tensor7::transform_elementwise(), and Tensor7::~Tensor7().
|
protected |
The library range of mdata that is actually used.
Definition at line 1282 of file matpackVII.h.
Referenced by Tensor7View::begin(), begin(), Tensor7View::end(), end(), Tensor7View::get_c_array(), nlibraries(), Tensor7View::operator()(), operator()(), Tensor7View::operator=(), and Tensor7::resize().
|
protected |
The page range of mdata that is actually used.
Definition at line 1290 of file matpackVII.h.
Referenced by Tensor7View::begin(), begin(), Tensor7View::end(), end(), Tensor7View::get_c_array(), npages(), Tensor7View::operator()(), operator()(), Tensor7View::operator=(), and Tensor7::resize().
|
protected |
The row range of mdata that is actually used.
Definition at line 1292 of file matpackVII.h.
Referenced by Tensor7View::begin(), begin(), Tensor7View::end(), end(), Tensor7View::get_c_array(), nrows(), Tensor7View::operator()(), operator()(), Tensor7View::operator=(), and Tensor7::resize().
|
protected |
The shelf range of mdata that is actually used.
Definition at line 1286 of file matpackVII.h.
Referenced by Tensor7View::begin(), begin(), Tensor7View::end(), end(), Tensor7View::get_c_array(), nshelves(), Tensor7View::operator()(), operator()(), Tensor7View::operator=(), and Tensor7::resize().
|
protected |
The vitrine range of mdata that is actually used.
Definition at line 1284 of file matpackVII.h.
Referenced by Tensor7View::begin(), begin(), Tensor7View::end(), end(), Tensor7View::get_c_array(), nvitrines(), Tensor7View::operator()(), operator()(), Tensor7View::operator=(), and Tensor7::resize().