ARTS  2.0.49
Tensor4 Class Reference

The Tensor4 class. More...

#include <matpackIV.h>

Inheritance diagram for Tensor4:
Tensor4View ConstTensor4View

Public Member Functions

 Tensor4 ()
 Default constructor. More...
 
 Tensor4 (Index b, Index p, Index r, Index c)
 Constructor setting size. More...
 
 Tensor4 (Index b, Index p, Index r, Index c, Numeric fill)
 Constructor setting size and filling with constant value. More...
 
 Tensor4 (const ConstTensor4View &v)
 Copy constructor from Tensor4View. More...
 
 Tensor4 (const Tensor4 &v)
 Copy constructor from Tensor4. More...
 
Tensor4operator= (const Tensor4 &x)
 Assignment operator from another tensor. More...
 
Tensor4operator= (Numeric x)
 Assignment operator from scalar. More...
 
void resize (Index b, Index p, Index r, Index c)
 Resize function. More...
 
virtual ~Tensor4 ()
 Destructor for Tensor4. More...
 
- Public Member Functions inherited from Tensor4View
ConstTensor4View operator() (const Range &b, const Range &p, const Range &r, const Range &c) const
 Const index operator for subrange. More...
 
ConstTensor3View operator() (const Range &b, const Range &p, const Range &r, Index c) const
 Const index operator returning an object of type ConstTensor3View. More...
 
ConstTensor3View operator() (const Range &b, const Range &p, Index r, const Range &c) const
 Const index operator returning an object of type ConstTensor3View. More...
 
ConstTensor3View operator() (const Range &b, Index p, const Range &r, const Range &c) const
 Const index operator returning an object of type ConstTensor3View. More...
 
ConstTensor3View operator() (Index b, const Range &p, const Range &r, const Range &c) const
 Const index operator returning an object of type ConstTensor3View. More...
 
ConstMatrixView operator() (const Range &b, const Range &p, Index r, Index c) const
 Const index operator returning an object of type ConstMatrixView. More...
 
ConstMatrixView operator() (const Range &b, Index p, const Range &r, Index c) const
 Const index operator returning an object of type ConstMatrixView. More...
 
ConstMatrixView operator() (const Range &b, Index p, Index r, const Range &c) const
 Const index operator returning an object of type ConstMatrixView. More...
 
ConstMatrixView operator() (Index b, const Range &p, Index r, const Range &c) const
 Const index operator returning an object of type ConstMatrixView. More...
 
ConstMatrixView operator() (Index b, const Range &p, const Range &r, Index c) const
 Const index operator returning an object of type ConstMatrixView. More...
 
ConstMatrixView operator() (Index b, Index p, const Range &r, const Range &c) const
 Const index operator returning an object of type ConstMatrixView. More...
 
ConstVectorView operator() (const Range &b, Index p, Index r, Index c) const
 Const index operator returning an object of type ConstVectorView. More...
 
ConstVectorView operator() (Index b, const Range &p, Index r, Index c) const
 Const index operator returning an object of type ConstVectorView. More...
 
ConstVectorView operator() (Index b, Index p, const Range &r, Index c) const
 Const index operator returning an object of type ConstVectorView. More...
 
ConstVectorView operator() (Index b, Index p, Index r, const Range &c) const
 Const index operator returning an object of type ConstVectorView. More...
 
Numeric operator() (Index b, Index p, Index r, Index c) const
 Plain const index operator. More...
 
Tensor4View operator() (const Range &b, const Range &p, const Range &r, const Range &c)
 Index operator for subrange. More...
 
Tensor3View operator() (const Range &b, const Range &p, const Range &r, Index c)
 Index operator returning an object of type Tensor3View. More...
 
Tensor3View operator() (const Range &b, const Range &p, Index r, const Range &c)
 Index operator returning an object of type Tensor3View. More...
 
Tensor3View operator() (const Range &b, Index p, const Range &r, const Range &c)
 Index operator returning an object of type Tensor3View. More...
 
Tensor3View operator() (Index b, const Range &p, const Range &r, const Range &c)
 Index operator returning an object of type Tensor3View. More...
 
MatrixView operator() (const Range &b, const Range &p, Index r, Index c)
 Index operator returning an object of type MatrixView. More...
 
MatrixView operator() (const Range &b, Index p, const Range &r, Index c)
 Index operator returning an object of type MatrixView. More...
 
MatrixView operator() (const Range &b, Index p, Index r, const Range &c)
 Index operator returning an object of type MatrixView. More...
 
MatrixView operator() (Index b, const Range &p, Index r, const Range &c)
 Index operator returning an object of type MatrixView. More...
 
MatrixView operator() (Index b, const Range &p, const Range &r, Index c)
 Index operator returning an object of type MatrixView. More...
 
MatrixView operator() (Index b, Index p, const Range &r, const Range &c)
 Index operator returning an object of type MatrixView. More...
 
VectorView operator() (const Range &b, Index p, Index r, Index c)
 Index operator returning an object of type VectorView. More...
 
VectorView operator() (Index b, const Range &p, Index r, Index c)
 Index operator returning an object of type VectorView. More...
 
VectorView operator() (Index b, Index p, const Range &r, Index c)
 Index operator returning an object of type VectorView. More...
 
VectorView operator() (Index b, Index p, Index r, const Range &c)
 Index operator returning an object of type VectorView. More...
 
Numericoperator() (Index b, Index p, Index r, Index c)
 Plain non-const index operator. More...
 
const Numericget_c_array () const
 Conversion to plain C-array. More...
 
Numericget_c_array ()
 Conversion to plain C-array. More...
 
ConstIterator4D begin () const
 Return const iterator to first book. More...
 
ConstIterator4D end () const
 Return const iterator behind last book. More...
 
Iterator4D begin ()
 Return iterator to first book. More...
 
Iterator4D end ()
 Return iterator behind last book. More...
 
Tensor4Viewoperator= (const ConstTensor4View &v)
 Assignment operator. More...
 
Tensor4Viewoperator= (const Tensor4View &v)
 Assignment from Tensor4View to Tensor4View. More...
 
Tensor4Viewoperator= (const Tensor4 &v)
 Assignment from a Tensor4. More...
 
Tensor4Viewoperator= (Numeric x)
 Assigning a scalar to a Tensor4View will set all elements to this value. More...
 
Tensor4Viewoperator*= (Numeric x)
 Multiplication by scalar. More...
 
Tensor4Viewoperator/= (Numeric x)
 Division by scalar. More...
 
Tensor4Viewoperator+= (Numeric x)
 Addition of scalar. More...
 
Tensor4Viewoperator-= (Numeric x)
 Subtraction of scalar. More...
 
Tensor4Viewoperator*= (const ConstTensor4View &x)
 Element-vise multiplication by another Tensor4. More...
 
Tensor4Viewoperator/= (const ConstTensor4View &x)
 Element-vise division by another Tensor4. More...
 
Tensor4Viewoperator+= (const ConstTensor4View &x)
 Element-vise addition of another Tensor4. More...
 
Tensor4Viewoperator-= (const ConstTensor4View &x)
 Element-vise subtraction of another Tensor4. More...
 
virtual ~Tensor4View ()
 Destructor. More...
 
 Tensor4View (const Tensor3View &a)
 Special constructor to make a Tensor4 view of a Tensor3. More...
 
- Public Member Functions inherited from ConstTensor4View
Index nbooks () const
 Returns the number of books. 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...
 
ConstTensor4View operator() (const Range &b, const Range &p, const Range &r, const Range &c) const
 Const index operator for subrange. More...
 
ConstTensor3View operator() (const Range &b, const Range &p, const Range &r, Index c) const
 Const index operator returning an object of type ConstTensor3View. More...
 
ConstTensor3View operator() (const Range &b, const Range &p, Index r, const Range &c) const
 Const index operator returning an object of type ConstTensor3View. More...
 
ConstTensor3View operator() (const Range &b, Index p, const Range &r, const Range &c) const
 Const index operator returning an object of type ConstTensor3View. More...
 
ConstTensor3View operator() (Index b, const Range &p, const Range &r, const Range &c) const
 Const index operator returning an object of type ConstTensor3View. More...
 
ConstMatrixView operator() (const Range &b, const Range &p, Index r, Index c) const
 Const index operator returning an object of type ConstMatrixView. More...
 
ConstMatrixView operator() (const Range &b, Index p, const Range &r, Index c) const
 Const index operator returning an object of type ConstMatrixView. More...
 
ConstMatrixView operator() (const Range &b, Index p, Index r, const Range &c) const
 Const index operator returning an object of type ConstMatrixView. More...
 
ConstMatrixView operator() (Index b, const Range &p, Index r, const Range &c) const
 Const index operator returning an object of type ConstMatrixView. More...
 
ConstMatrixView operator() (Index b, const Range &p, const Range &r, Index c) const
 Const index operator returning an object of type ConstMatrixView. More...
 
ConstMatrixView operator() (Index b, Index p, const Range &r, const Range &c) const
 Const index operator returning an object of type ConstMatrixView. More...
 
ConstVectorView operator() (const Range &b, Index p, Index r, Index c) const
 Const index operator returning an object of type ConstVectorView. More...
 
ConstVectorView operator() (Index b, const Range &p, Index r, Index c) const
 Const index operator returning an object of type ConstVectorView. More...
 
ConstVectorView operator() (Index b, Index p, const Range &r, Index c) const
 Const index operator returning an object of type ConstVectorView. More...
 
ConstVectorView operator() (Index b, Index p, Index r, const Range &c) const
 Const index operator returning an object of type ConstVectorView. More...
 
Numeric operator() (Index b, Index p, Index r, Index c) const
 Plain const index operator. More...
 
ConstIterator4D begin () const
 Return const iterator to first book. More...
 
ConstIterator4D end () const
 Return const iterator behind last book. More...
 
virtual ~ConstTensor4View ()
 Destructor. More...
 
 ConstTensor4View (const ConstTensor3View &a)
 Special constructor to make a Tensor4 view of a Tensor3. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Tensor4View
 Tensor4View ()
 Default constructor. More...
 
 Tensor4View (Numeric *data, const Range &b, const Range &p, const Range &r, const Range &c)
 Explicit constructor. More...
 
 Tensor4View (Numeric *data, const Range &pb, const Range &pp, const Range &pr, const Range &pc, const Range &nb, const Range &np, const Range &nr, const Range &nc)
 Recursive constructor. More...
 
- Protected Member Functions inherited from ConstTensor4View
 ConstTensor4View ()
 Default constructor. More...
 
 ConstTensor4View (Numeric *data, const Range &b, const Range &p, const Range &r, const Range &c)
 Explicit constructor. More...
 
 ConstTensor4View (Numeric *data, const Range &pb, const Range &pp, const Range &pr, const Range &pc, const Range &nb, const Range &np, const Range &nr, const Range &nc)
 Recursive constructor. More...
 
- Protected Attributes inherited from ConstTensor4View
Range mbr
 The book range of mdata that is actually used. More...
 
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 Tensor4 class.

This is a Tensor4View that also allocates storage automatically, and deallocates it when it is destroyed. We take all the functionality from Tensor4View. Additionally defined here are:

  1. Constructors and destructor.
  2. Assignment operators.
  3. Resize function.

Definition at line 375 of file matpackIV.h.

Constructor & Destructor Documentation

◆ Tensor4() [1/5]

Tensor4::Tensor4 ( )

Default constructor.

Definition at line 1294 of file matpackIV.cc.

◆ Tensor4() [2/5]

Tensor4::Tensor4 ( Index  b,
Index  p,
Index  r,
Index  c 
)

Constructor setting size.

This constructor has to set the strides in the book, page and row ranges correctly!

Definition at line 1305 of file matpackIV.cc.

◆ Tensor4() [3/5]

Tensor4::Tensor4 ( Index  b,
Index  p,
Index  r,
Index  c,
Numeric  fill 
)

Constructor setting size and filling with constant value.

Definition at line 1316 of file matpackIV.cc.

References ConstTensor4View::mdata.

◆ Tensor4() [4/5]

Tensor4::Tensor4 ( const ConstTensor4View m)

Copy constructor from Tensor4View.

This automatically sets the size and copies the data.

Definition at line 1332 of file matpackIV.cc.

References ConstTensor4View::begin(), Tensor4View::begin(), copy(), and ConstTensor4View::end().

◆ Tensor4() [5/5]

Tensor4::Tensor4 ( const Tensor4 m)

Copy constructor from Tensor4.

This automatically sets the size and copies the data.

Definition at line 1344 of file matpackIV.cc.

References Tensor4View::begin(), copy(), and Tensor4View::end().

◆ ~Tensor4()

Tensor4::~Tensor4 ( )
virtual

Destructor for Tensor4.

This is important, since Tensor4 uses new to allocate storage.

Definition at line 1439 of file matpackIV.cc.

References ConstTensor4View::mdata.

Member Function Documentation

◆ operator=() [1/2]

Tensor4 & Tensor4::operator= ( const Tensor4 m)

Assignment operator from another tensor.

While dimensions of views can not be adjusted, dimensions of tensors can be adjusted. Hence, the behavior of the assignment operator is different.

In this case the size of the target is automatically adjusted. This is important, so that structures containing tensors are copied correctly.

This is a deviation from the old ARTS paradigm that sizes must match exactly before copying!

Note: It is sufficient to have only this one version of the assignment (Tensor = Tensor). It implicitly covers the cases Tensor=TensorView, etc, because there is a default constructor for Tensor from TensorView. (See C++ Primer Plus, page 571ff.)

Parameters
mThe other tensor to assign to this one.
Returns
This tensor, by tradition.
Author
Stefan Buehler
Date
2002-12-19

Definition at line 1383 of file matpackIV.cc.

References Tensor4View::begin(), copy(), Tensor4View::end(), ConstTensor4View::mbr, ConstTensor4View::mcr, Range::mextent, ConstTensor4View::mpr, ConstTensor4View::mrr, and resize().

◆ operator=() [2/2]

Tensor4 & Tensor4::operator= ( Numeric  x)

Assignment operator from scalar.

Assignment operators are not inherited.

Definition at line 1395 of file matpackIV.cc.

References Tensor4View::begin(), copy(), and Tensor4View::end().

◆ resize()


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