ARTS  1.0.222
Public Member Functions | Protected Member Functions | List of all members
Tensor3View Class Reference

The Tensor3View class. More...

#include <matpackIII.h>

Inheritance diagram for Tensor3View:
ConstTensor3View Tensor3

Public Member Functions

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...
 
Tensor3View operator() (const Range &p, const Range &r, const Range &c)
 Index operator for subrange. More...
 
MatrixView operator() (const Range &p, const Range &r, Index c)
 Index operator returning an object of type MatrixView. More...
 
MatrixView operator() (const Range &p, Index r, const Range &c)
 Index operator returning an object of type MatrixView. More...
 
MatrixView operator() (Index p, const Range &r, const Range &c)
 Index operator returning an object of type MatrixView. More...
 
VectorView operator() (Index p, Index r, const Range &c)
 Index operator returning an object of type VectorView. More...
 
VectorView operator() (Index p, const Range &r, Index c)
 Index operator returning an object of type VectorView. More...
 
VectorView operator() (const Range &p, Index r, Index c)
 Index operator returning an object of type VectorView. More...
 
Numericoperator() (Index p, Index r, Index c)
 Plain non-const index operator. More...
 
ConstIterator3D begin () const
 Return const iterator to first row. More...
 
ConstIterator3D end () const
 Return const iterator behind last row. More...
 
Iterator3D begin ()
 Return iterator to first page. More...
 
Iterator3D end ()
 Return iterator behind last page. More...
 
Tensor3Viewoperator= (const ConstTensor3View &v)
 Assignment operator. More...
 
Tensor3Viewoperator= (const Tensor3View &v)
 Assignment from Tensor3View to Tensor3View. More...
 
Tensor3Viewoperator= (const Tensor3 &v)
 Assignment from a Tensor3. More...
 
Tensor3Viewoperator= (Numeric x)
 Assigning a scalar to a Tensor3View will set all elements to this value. More...
 
Tensor3Viewoperator*= (Numeric x)
 Multiplication by scalar. More...
 
Tensor3Viewoperator/= (Numeric x)
 Division by scalar. More...
 
Tensor3Viewoperator+= (Numeric x)
 Addition of scalar. More...
 
Tensor3Viewoperator-= (Numeric x)
 Subtraction of scalar. More...
 
Tensor3Viewoperator*= (const ConstTensor3View &x)
 Element-vise multiplication by another Tensor3. More...
 
Tensor3Viewoperator/= (const ConstTensor3View &x)
 Element-vise division by another Tensor3. More...
 
Tensor3Viewoperator+= (const ConstTensor3View &x)
 Element-vise addition of another Tensor3. More...
 
Tensor3Viewoperator-= (const ConstTensor3View &x)
 Element-vise subtraction of another Tensor3. More...
 
- Public Member Functions inherited from ConstTensor3View
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...
 
ConstIterator3D begin () const
 Return const iterator to first page. More...
 
ConstIterator3D end () const
 Return const iterator behind last page. More...
 

Protected Member Functions

 Tensor3View ()
 Default constructor. More...
 
 Tensor3View (Numeric *data, const Range &p, const Range &r, const Range &c)
 Explicit constructor. More...
 
 Tensor3View (Numeric *data, const Range &pp, const Range &pr, const Range &pc, const Range &np, const Range &nr, const Range &nc)
 Recursive constructor. More...
 
- Protected Member Functions inherited from ConstTensor3View
 ConstTensor3View ()
 Default constructor. More...
 
 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...
 

Additional Inherited Members

- Protected Attributes inherited from ConstTensor3View
Range mpr
 The page range of mdata that is actually used. More...
 
Range mrr
 The row range of mdata that is actually used. More...
 
Range mcr
 The column range of mdata that is actually used. More...
 
Numericmdata
 Pointer to the plain C array that holds the data. More...
 

Detailed Description

The Tensor3View class.

This 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 class Tensor3 is just a special case of a Tensor3View which also allocates storage.

Definition at line 151 of file matpackIII.h.

Constructor & Destructor Documentation

◆ Tensor3View() [1/3]

Tensor3View::Tensor3View ( )
inlineprotected

Default constructor.

This is necessary, so that we can have a default constructor for the derived class Tensor3.

Definition at line 1041 of file matpackIII.h.

◆ Tensor3View() [2/3]

Tensor3View::Tensor3View ( Numeric data,
const Range pr,
const Range rr,
const Range cr 
)
inlineprotected

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.

Definition at line 1050 of file matpackIII.h.

◆ Tensor3View() [3/3]

Tensor3View::Tensor3View ( Numeric data,
const Range pp,
const Range pr,
const Range pc,
const Range np,
const Range nr,
const Range nc 
)
inlineprotected

Recursive constructor.

This is used to construct SubMatrices from SubMatrices. 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.

Parameters
*dataThe actual data.
pPrevious range.
nNew Range.

Definition at line 1070 of file matpackIII.h.

Member Function Documentation

◆ begin() [1/2]

Iterator3D Tensor3View::begin ( )
inline

Return iterator to first page.

Definition at line 852 of file matpackIII.h.

◆ begin() [2/2]

ConstIterator3D Tensor3View::begin ( ) const
inline

Return const iterator to first row.

Has to be redefined here, since it is hiden by the non-const operator of the derived class.

Definition at line 840 of file matpackIII.h.

◆ end() [1/2]

Iterator3D Tensor3View::end ( )
inline

Return iterator behind last page.

Definition at line 861 of file matpackIII.h.

◆ end() [2/2]

ConstIterator3D Tensor3View::end ( ) const
inline

Return const iterator behind last row.

Definition at line 846 of file matpackIII.h.

◆ operator()() [1/16]

Tensor3View Tensor3View::operator() ( const Range p,
const Range r,
const Range c 
)
inline

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 715 of file matpackIII.h.

◆ operator()() [2/16]

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

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. Has to be redefined here, since it is hiden by the non-const operator of the derived class.

Definition at line 632 of file matpackIII.h.

◆ operator()() [3/16]

MatrixView Tensor3View::operator() ( const Range p,
const Range r,
Index  c 
)
inline

Index operator returning an object of type MatrixView.

(Reducing the dimension by one.)

Definition at line 724 of file matpackIII.h.

◆ operator()() [4/16]

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

Const index operator returning an object of type ConstMatrixView.

(Reducing the dimension by one.) Has to be redefined here, since it is hiden by the non-const operator of the derived class.

Definition at line 643 of file matpackIII.h.

◆ operator()() [5/16]

MatrixView Tensor3View::operator() ( const Range p,
Index  r,
const Range c 
)
inline

Index operator returning an object of type MatrixView.

(Reducing the dimension by one.)

Definition at line 739 of file matpackIII.h.

◆ operator()() [6/16]

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

Const index operator returning an object of type ConstMatrixView.

(Reducing the dimension by one.) Has to be redefined here, since it is hiden by the non-const operator of the derived class.

Definition at line 654 of file matpackIII.h.

◆ operator()() [7/16]

VectorView Tensor3View::operator() ( const Range p,
Index  r,
Index  c 
)
inline

Index operator returning an object of type VectorView.

(Reducing the dimension by two.)

Definition at line 805 of file matpackIII.h.

◆ operator()() [8/16]

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

Const index operator returning an object of type ConstVectorView.

(Reducing the dimension by two.) Has to be redefined here, since it is hiden by the non-const operator of the derived class.

Definition at line 698 of file matpackIII.h.

◆ operator()() [9/16]

MatrixView Tensor3View::operator() ( Index  p,
const Range r,
const Range c 
)
inline

Index operator returning an object of type MatrixView.

(Reducing the dimension by one.)

Definition at line 754 of file matpackIII.h.

◆ operator()() [10/16]

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

Const index operator returning an object of type ConstMatrixView.

(Reducing the dimension by one.) Has to be redefined here, since it is hiden by the non-const operator of the derived class.

Definition at line 665 of file matpackIII.h.

◆ operator()() [11/16]

VectorView Tensor3View::operator() ( Index  p,
const Range r,
Index  c 
)
inline

Index operator returning an object of type VectorView.

(Reducing the dimension by two.)

Definition at line 787 of file matpackIII.h.

◆ operator()() [12/16]

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

Const index operator returning an object of type ConstVectorView.

(Reducing the dimension by two.) Has to be redefined here, since it is hiden by the non-const operator of the derived class.

Definition at line 687 of file matpackIII.h.

◆ operator()() [13/16]

VectorView Tensor3View::operator() ( Index  p,
Index  r,
const Range c 
)
inline

Index operator returning an object of type VectorView.

(Reducing the dimension by two.)

Definition at line 769 of file matpackIII.h.

◆ operator()() [14/16]

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

Const index operator returning an object of type ConstVectorView.

(Reducing the dimension by two.) Has to be redefined here, since it is hiden by the non-const operator of the derived class.

Definition at line 676 of file matpackIII.h.

◆ operator()() [15/16]

Numeric & Tensor3View::operator() ( Index  p,
Index  r,
Index  c 
)
inline

Plain non-const index operator.

Definition at line 822 of file matpackIII.h.

◆ operator()() [16/16]

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

Plain const index operator.

Has to be redefined here, since it is hiden by the non-const operator of the derived class.

Definition at line 707 of file matpackIII.h.

◆ operator*=() [1/2]

Tensor3View & Tensor3View::operator*= ( const ConstTensor3View x)
inline

Element-vise multiplication by another Tensor3.

Definition at line 976 of file matpackIII.h.

◆ operator*=() [2/2]

Tensor3View & Tensor3View::operator*= ( Numeric  x)
inline

Multiplication by scalar.

Definition at line 932 of file matpackIII.h.

◆ operator+=() [1/2]

Tensor3View & Tensor3View::operator+= ( const ConstTensor3View x)
inline

Element-vise addition of another Tensor3.

Definition at line 1008 of file matpackIII.h.

◆ operator+=() [2/2]

Tensor3View & Tensor3View::operator+= ( Numeric  x)
inline

Addition of scalar.

Definition at line 954 of file matpackIII.h.

◆ operator-=() [1/2]

Tensor3View & Tensor3View::operator-= ( const ConstTensor3View x)
inline

Element-vise subtraction of another Tensor3.

Definition at line 1024 of file matpackIII.h.

◆ operator-=() [2/2]

Tensor3View & Tensor3View::operator-= ( Numeric  x)
inline

Subtraction of scalar.

Definition at line 965 of file matpackIII.h.

◆ operator/=() [1/2]

Tensor3View & Tensor3View::operator/= ( const ConstTensor3View x)
inline

Element-vise division by another Tensor3.

Definition at line 992 of file matpackIII.h.

◆ operator/=() [2/2]

Tensor3View & Tensor3View::operator/= ( Numeric  x)
inline

Division by scalar.

Definition at line 943 of file matpackIII.h.

◆ operator=() [1/4]

Tensor3View & Tensor3View::operator= ( const ConstTensor3View m)
inline

Assignment operator.

This copies the data from another Tensor3View to this Tensor3View. Dimensions must agree! Resizing would destroy the selection that we might have done in this Tensor3View by setting its range.

Definition at line 874 of file matpackIII.h.

◆ operator=() [2/4]

Tensor3View & Tensor3View::operator= ( const Tensor3 m)
inline

Assignment from a Tensor3.

This must exist to overide the automatically generated assignment operators, which don't copy the contents!

Definition at line 904 of file matpackIII.h.

◆ operator=() [3/4]

Tensor3View & Tensor3View::operator= ( const Tensor3View m)
inline

Assignment from Tensor3View to Tensor3View.

This is a tricky one. The problem is that since Tensor3View is derived from ConstTensor3View, a default = operator is generated by the compiler, which does not do what we want. So we need this one to override the default.

Definition at line 890 of file matpackIII.h.

◆ operator=() [4/4]

Tensor3View & Tensor3View::operator= ( Numeric  x)
inline

Assigning a scalar to a Tensor3View will set all elements to this value.

Definition at line 917 of file matpackIII.h.


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