ARTS  2.4.0(git:4fb77825)
ConstTensor3View Class Reference

A constant view of a Tensor3. More...

#include <matpackIII.h>

Inheritance diagram for ConstTensor3View:
Tensor3View Tensor3

Public Member Functions

constexpr ConstTensor3View (const ConstTensor3View &)=default
 
constexpr ConstTensor3View (ConstTensor3View &&)=default
 
ConstTensor3Viewoperator= (const ConstTensor3View &)=default
 
ConstTensor3Viewoperator= (ConstTensor3View &&)=default
 
bool empty () const
 Check if variable is empty. More...
 
Index npages () const
 Returns the number of pages. More...
 
Index nrows () const
 Returns the number of rows. More...
 
Index ncols () const
 Returns the number of columns. More...
 
ConstTensor3View operator() (const Range &p, const Range &r, const Range &c) const
 Const index operator for subrange. More...
 
ConstMatrixView operator() (const Range &p, const Range &r, Index c) const
 Const index operator returning an object of type ConstMatrixView. More...
 
ConstMatrixView operator() (const Range &p, Index r, const Range &c) const
 Const index operator returning an object of type ConstMatrixView. More...
 
ConstMatrixView operator() (Index p, const Range &r, const Range &c) const
 Const index operator returning an object of type ConstMatrixView. More...
 
ConstVectorView operator() (Index p, Index r, const Range &c) const
 Const index operator returning an object of type ConstVectorView. More...
 
ConstVectorView operator() (Index p, const Range &r, Index c) const
 Const index operator returning an object of type ConstVectorView. More...
 
ConstVectorView operator() (const Range &p, Index r, Index c) const
 Const index operator returning an object of type ConstVectorView. More...
 
Numeric operator() (Index p, Index r, Index c) const
 Plain const index operator. More...
 
Numeric get (Index p, Index r, Index c) const
 Get element implementation without assertions. More...
 
ConstIterator3D begin () const
 Return const iterator to first page. More...
 
ConstIterator3D end () const
 Return const iterator behind last page. More...
 
virtual ~ConstTensor3View ()=default
 Destructor. More...
 
 ConstTensor3View (const ConstMatrixView &a)
 Special constructor to make a Tensor3 view of a matrix. More...
 

Protected Member Functions

 ConstTensor3View ()=default
 
 ConstTensor3View (Numeric *data, const Range &p, const Range &r, const Range &c)
 Explicit constructor. More...
 
 ConstTensor3View (Numeric *data, const Range &pp, const Range &pr, const Range &pc, const Range &np, const Range &nr, const Range &nc)
 Recursive constructor. More...
 

Protected Attributes

Range mpr {0, 0, 1}
 The page range of mdata that is actually used. More...
 
Range mrr {0, 0, 1}
 The row range of mdata that is actually used. More...
 
Range mcr {0, 0, 1}
 The column range of mdata that is actually used. More...
 
Numericmdata {nullptr}
 Pointer to the plain C array that holds the data. More...
 

Friends

class Tensor3View
 
class ConstIterator4D
 
class ConstTensor4View
 
class ConstTensor5View
 
class ConstTensor6View
 
class ConstTensor7View
 

Detailed Description

A constant view of a Tensor3.

This, together with the derived class Tensor3View, contains the main implementation of a Tensor3. It defines the concepts of Tensor3View. Plus additionally the recursive subrange operator, which makes it possible to create a Tensor3View from a subrange of a Tensor3View.

The three dimensions of the tensor are called: page, row, column.

The class Tensor3 is just a special case of a Tensor3View which also allocates storage.

Definition at line 132 of file matpackIII.h.

Constructor & Destructor Documentation

◆ ConstTensor3View() [1/6]

constexpr ConstTensor3View::ConstTensor3View ( const ConstTensor3View )
constexprdefault

◆ ConstTensor3View() [2/6]

constexpr ConstTensor3View::ConstTensor3View ( ConstTensor3View &&  )
constexprdefault

◆ ~ConstTensor3View()

virtual ConstTensor3View::~ConstTensor3View ( )
virtualdefault

Destructor.

◆ ConstTensor3View() [3/6]

ConstTensor3View::ConstTensor3View ( const ConstMatrixView a)

Special constructor to make a Tensor3 view of a matrix.

Definition at line 153 of file matpackIII.cc.

◆ ConstTensor3View() [4/6]

ConstTensor3View::ConstTensor3View ( )
protecteddefault

◆ ConstTensor3View() [5/6]

ConstTensor3View::ConstTensor3View ( Numeric data,
const Range pr,
const Range rr,
const Range cr 
)
protected

Explicit constructor.

This one is used by Tensor3 to initialize its own Tensor3View 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 165 of file matpackIII.cc.

◆ ConstTensor3View() [6/6]

ConstTensor3View::ConstTensor3View ( Numeric data,
const Range pp,
const Range pr,
const Range pc,
const Range np,
const Range nr,
const Range nc 
)
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 180 of file matpackIII.cc.

Member Function Documentation

◆ begin()

ConstIterator3D ConstTensor3View::begin ( ) const

Return const iterator to first page.

Definition at line 139 of file matpackIII.cc.

References mcr, mdata, mpr, mrr, Range::mstart, and Range::mstride.

Referenced by copy(), operator<<(), Tensor3View::operator=(), and Tensor3::Tensor3().

◆ empty()

bool ConstTensor3View::empty ( ) const

Check if variable is empty.

Parameters
[in]xThe variable to check.
Returns
True if the size of any dimension of x is 0.

Definition at line 38 of file matpackIII.cc.

References ncols(), npages(), and nrows().

Referenced by get_variable_value(), and test_empty().

◆ end()

ConstIterator3D ConstTensor3View::end ( ) const

Return const iterator behind last page.

Definition at line 145 of file matpackIII.cc.

References mcr, mdata, Range::mextent, mpr, mrr, Range::mstart, and Range::mstride.

Referenced by copy(), operator<<(), Tensor3View::operator=(), and Tensor3::Tensor3().

◆ get()

Numeric ConstTensor3View::get ( Index  p,
Index  r,
Index  c 
) const
inline

Get element implementation without assertions.

Definition at line 180 of file matpackIII.h.

◆ ncols()

◆ npages()

◆ nrows()

◆ operator()() [1/8]

ConstTensor3View ConstTensor3View::operator() ( const Range p,
const Range r,
const Range c 
) const

Const index operator for subrange.

We have to also account for the case, that *this is already a subrange of a Tensor3. This allows correct recursive behavior.

Definition at line 45 of file matpackIII.cc.

◆ operator()() [2/8]

ConstMatrixView ConstTensor3View::operator() ( const Range p,
const Range r,
Index  c 
) const

Const index operator returning an object of type ConstMatrixView.

(Reducing the dimension by one.)

Definition at line 53 of file matpackIII.cc.

◆ operator()() [3/8]

ConstMatrixView ConstTensor3View::operator() ( const Range p,
Index  r,
const Range c 
) const

Const index operator returning an object of type ConstMatrixView.

(Reducing the dimension by one.)

Definition at line 65 of file matpackIII.cc.

◆ operator()() [4/8]

ConstVectorView ConstTensor3View::operator() ( const Range p,
Index  r,
Index  c 
) const

Const index operator returning an object of type ConstVectorView.

(Reducing the dimension by two.)

Definition at line 123 of file matpackIII.cc.

◆ operator()() [5/8]

ConstMatrixView ConstTensor3View::operator() ( Index  p,
const Range r,
const Range c 
) const

Const index operator returning an object of type ConstMatrixView.

(Reducing the dimension by one.)

Definition at line 77 of file matpackIII.cc.

◆ operator()() [6/8]

ConstVectorView ConstTensor3View::operator() ( Index  p,
const Range r,
Index  c 
) const

Const index operator returning an object of type ConstVectorView.

(Reducing the dimension by two.)

Definition at line 106 of file matpackIII.cc.

◆ operator()() [7/8]

ConstVectorView ConstTensor3View::operator() ( Index  p,
Index  r,
const Range c 
) const

Const index operator returning an object of type ConstVectorView.

(Reducing the dimension by two.)

Definition at line 89 of file matpackIII.cc.

◆ operator()() [8/8]

Numeric ConstTensor3View::operator() ( Index  p,
Index  r,
Index  c 
) const
inline

Plain const index operator.

Definition at line 166 of file matpackIII.h.

◆ operator=() [1/2]

ConstTensor3View& ConstTensor3View::operator= ( const ConstTensor3View )
default

◆ operator=() [2/2]

ConstTensor3View& ConstTensor3View::operator= ( ConstTensor3View &&  )
default

Friends And Related Function Documentation

◆ ConstIterator4D

friend class ConstIterator4D
friend

Definition at line 194 of file matpackIII.h.

◆ ConstTensor4View

friend class ConstTensor4View
friend

Definition at line 195 of file matpackIII.h.

◆ ConstTensor5View

friend class ConstTensor5View
friend

Definition at line 196 of file matpackIII.h.

◆ ConstTensor6View

friend class ConstTensor6View
friend

Definition at line 197 of file matpackIII.h.

◆ ConstTensor7View

friend class ConstTensor7View
friend

Definition at line 198 of file matpackIII.h.

◆ Tensor3View

friend class Tensor3View
friend

Definition at line 193 of file matpackIII.h.

Member Data Documentation

◆ mcr

Range ConstTensor3View::mcr {0, 0, 1}
protected

◆ mdata

◆ mpr

Range ConstTensor3View::mpr {0, 0, 1}
protected

◆ mrr

Range ConstTensor3View::mrr {0, 0, 1}
protected

The documentation for this class was generated from the following files: