ARTS  2.4.0(git:4fb77825)
Tensor6 Class Reference

The Tensor6 class. More...

#include <matpackVI.h>

Inheritance diagram for Tensor6:
Tensor6View ConstTensor6View

Public Member Functions

 Tensor6 ()=default
 
 Tensor6 (Index v, Index s, Index b, Index p, Index r, Index c)
 Constructor setting size. More...
 
 Tensor6 (Index v, Index s, Index b, Index p, Index r, Index c, Numeric fill)
 Constructor setting size and filling with constant value. More...
 
 Tensor6 (const ConstTensor6View &v)
 Copy constructor from Tensor6View. More...
 
 Tensor6 (const Tensor6 &v)
 Copy constructor from Tensor6. More...
 
 Tensor6 (Tensor6 &&v) noexcept
 
Tensor6operator= (const Tensor6 &x)
 Assignment operator from another tensor. More...
 
Tensor6operator= (Tensor6 &&x) noexcept
 Move assignment operator from another tensor. More...
 
Tensor6operator= (Numeric x)
 Assignment operator from scalar. More...
 
void resize (Index v, Index s, Index b, Index p, Index r, Index c)
 Resize function. More...
 
virtual ~Tensor6 ()
 Destructor for Tensor6. More...
 
- Public Member Functions inherited from Tensor6View
constexpr Tensor6View (const Tensor6View &)=default
 
Tensor6View operator() (const Range &v, const Range &s, const Range &b, const Range &p, const Range &r, const Range &c)
 
Tensor5View operator() (const Range &v, const Range &s, const Range &b, const Range &p, const Range &r, Index c)
 
Tensor5View operator() (const Range &v, const Range &s, const Range &b, const Range &p, Index r, const Range &c)
 
Tensor5View operator() (const Range &v, const Range &s, const Range &b, Index p, const Range &r, const Range &c)
 
Tensor5View operator() (const Range &v, const Range &s, Index b, const Range &p, const Range &r, const Range &c)
 
Tensor5View operator() (const Range &v, Index s, const Range &b, const Range &p, const Range &r, const Range &c)
 
Tensor5View operator() (Index v, const Range &s, const Range &b, const Range &p, const Range &r, const Range &c)
 
Tensor4View operator() (const Range &v, const Range &s, const Range &b, const Range &p, Index r, Index c)
 
Tensor4View operator() (const Range &v, const Range &s, const Range &b, Index p, const Range &r, Index c)
 
Tensor4View operator() (const Range &v, const Range &s, Index b, const Range &p, const Range &r, Index c)
 
Tensor4View operator() (const Range &v, Index s, const Range &b, const Range &p, const Range &r, Index c)
 
Tensor4View operator() (Index v, const Range &s, const Range &b, const Range &p, const Range &r, Index c)
 
Tensor4View operator() (const Range &v, const Range &s, const Range &b, Index p, Index r, const Range &c)
 
Tensor4View operator() (const Range &v, const Range &s, Index b, const Range &p, Index r, const Range &c)
 
Tensor4View operator() (const Range &v, Index s, const Range &b, const Range &p, Index r, const Range &c)
 
Tensor4View operator() (Index v, const Range &s, const Range &b, const Range &p, Index r, const Range &c)
 
Tensor4View operator() (const Range &v, const Range &s, Index b, Index p, const Range &r, const Range &c)
 
Tensor4View operator() (const Range &v, Index s, const Range &b, Index p, const Range &r, const Range &c)
 
Tensor4View operator() (Index v, const Range &s, const Range &b, Index p, const Range &r, const Range &c)
 
Tensor4View operator() (const Range &v, Index s, Index b, const Range &p, const Range &r, const Range &c)
 
Tensor4View operator() (Index v, const Range &s, Index b, const Range &p, const Range &r, const Range &c)
 
Tensor4View operator() (Index v, Index s, const Range &b, const Range &p, const Range &r, const Range &c)
 
Tensor3View operator() (const Range &v, const Range &s, const Range &b, Index p, Index r, Index c)
 
Tensor3View operator() (const Range &v, const Range &s, Index b, const Range &p, Index r, Index c)
 
Tensor3View operator() (const Range &v, Index s, const Range &b, const Range &p, Index r, Index c)
 
Tensor3View operator() (Index v, const Range &s, const Range &b, const Range &p, Index r, Index c)
 
Tensor3View operator() (const Range &v, const Range &s, Index b, Index p, const Range &r, Index c)
 
Tensor3View operator() (const Range &v, Index s, const Range &b, Index p, const Range &r, Index c)
 
Tensor3View operator() (Index v, const Range &s, const Range &b, Index p, const Range &r, Index c)
 
Tensor3View operator() (const Range &v, Index s, Index b, const Range &p, const Range &r, Index c)
 
Tensor3View operator() (Index v, const Range &s, Index b, const Range &p, const Range &r, Index c)
 
Tensor3View operator() (Index v, Index s, const Range &b, const Range &p, const Range &r, Index c)
 
Tensor3View operator() (const Range &v, const Range &s, Index b, Index p, Index r, const Range &c)
 
Tensor3View operator() (const Range &v, Index s, const Range &b, Index p, Index r, const Range &c)
 
Tensor3View operator() (Index v, const Range &s, const Range &b, Index p, Index r, const Range &c)
 
Tensor3View operator() (const Range &v, Index s, Index b, const Range &p, Index r, const Range &c)
 
Tensor3View operator() (Index v, const Range &s, Index b, const Range &p, Index r, const Range &c)
 
Tensor3View operator() (Index v, Index s, const Range &b, const Range &p, Index r, const Range &c)
 
Tensor3View operator() (const Range &v, Index s, Index b, Index p, const Range &r, const Range &c)
 
Tensor3View operator() (Index v, const Range &s, Index b, Index p, const Range &r, const Range &c)
 
Tensor3View operator() (Index v, Index s, const Range &b, Index p, const Range &r, const Range &c)
 
Tensor3View operator() (Index v, Index s, Index b, const Range &p, const Range &r, const Range &c)
 
MatrixView operator() (Index v, Index s, Index b, Index p, const Range &r, const Range &c)
 
MatrixView operator() (Index v, Index s, Index b, const Range &p, Index r, const Range &c)
 
MatrixView operator() (Index v, Index s, const Range &b, Index p, Index r, const Range &c)
 
MatrixView operator() (Index v, const Range &s, Index b, Index p, Index r, const Range &c)
 
MatrixView operator() (const Range &v, Index s, Index b, Index p, Index r, const Range &c)
 
MatrixView operator() (Index v, Index s, Index b, const Range &p, const Range &r, Index c)
 
MatrixView operator() (Index v, Index s, const Range &b, Index p, const Range &r, Index c)
 
MatrixView operator() (Index v, const Range &s, Index b, Index p, const Range &r, Index c)
 
MatrixView operator() (const Range &v, Index s, Index b, Index p, const Range &r, Index c)
 
MatrixView operator() (Index v, Index s, const Range &b, const Range &p, Index r, Index c)
 
MatrixView operator() (Index v, const Range &s, Index b, const Range &p, Index r, Index c)
 
MatrixView operator() (const Range &v, Index s, Index b, const Range &p, Index r, Index c)
 
MatrixView operator() (Index v, const Range &s, const Range &b, Index p, Index r, Index c)
 
MatrixView operator() (const Range &v, Index s, const Range &b, Index p, Index r, Index c)
 
MatrixView operator() (const Range &v, const Range &s, Index b, Index p, Index r, Index c)
 
VectorView operator() (Index v, Index s, Index b, Index p, Index r, const Range &c)
 
VectorView operator() (Index v, Index s, Index b, Index p, const Range &r, Index c)
 
VectorView operator() (Index v, Index s, Index b, const Range &p, Index r, Index c)
 
VectorView operator() (Index v, Index s, const Range &b, Index p, Index r, Index c)
 
VectorView operator() (Index v, const Range &s, Index b, Index p, Index r, Index c)
 
VectorView operator() (const Range &v, Index s, Index b, Index p, Index r, Index c)
 
Numericoperator() (Index v, Index s, Index b, Index p, Index r, Index c)
 
Numericget (Index v, Index s, Index b, Index p, Index r, Index c)
 Get element implementation without assertions. More...
 
const Numericget_c_array () const
 Conversion to plain C-array. More...
 
Numericget_c_array ()
 Conversion to plain C-array. More...
 
Iterator6D begin ()
 Return iterator to first sub-tensor. More...
 
Iterator6D end ()
 Return iterator behind last sub-tensor. More...
 
Tensor6Viewoperator= (const ConstTensor6View &v)
 Assignment operator. More...
 
Tensor6Viewoperator= (const Tensor6View &v)
 Assignment from Tensor6View to Tensor6View. More...
 
Tensor6Viewoperator= (const Tensor6 &v)
 Assignment from a Tensor6. More...
 
Tensor6Viewoperator= (Numeric x)
 Assigning a scalar to a Tensor6View will set all elements to this value. More...
 
Tensor6Viewoperator*= (Numeric x)
 Multiplication by scalar. More...
 
Tensor6Viewoperator/= (Numeric x)
 Division by scalar. More...
 
Tensor6Viewoperator+= (Numeric x)
 Addition of scalar. More...
 
Tensor6Viewoperator-= (Numeric x)
 Subtraction of scalar. More...
 
Tensor6Viewoperator*= (const ConstTensor6View &x)
 Element-vise multiplication by another Tensor6. More...
 
Tensor6Viewoperator/= (const ConstTensor6View &x)
 Element-vise division by another Tensor6. More...
 
Tensor6Viewoperator+= (const ConstTensor6View &x)
 Element-vise addition of another Tensor6. More...
 
Tensor6Viewoperator-= (const ConstTensor6View &x)
 Element-vise subtraction of another Tensor6. More...
 
virtual ~Tensor6View ()=default
 
 Tensor6View (const Tensor5View &a)
 Special constructor to make a Tensor6 view of a Tensor5. More...
 
ConstIterator6D begin () const
 Return const iterator to first sub-tensor. More...
 
ConstIterator6D end () const
 Return const iterator behind last sub-tensor. More...
 
Numeric get (Index v, Index s, Index b, Index p, Index r, Index c) const
 Get element implementation without assertions. More...
 
- Public Member Functions inherited from ConstTensor6View
constexpr ConstTensor6View (const ConstTensor6View &)=default
 
constexpr ConstTensor6View (ConstTensor6View &&)=default
 
ConstTensor6Viewoperator= (const ConstTensor6View &)=default
 
ConstTensor6Viewoperator= (ConstTensor6View &&)=default
 
bool empty () const
 Check if variable is empty. More...
 
Index nvitrines () const
 Returns the number of vitrines. More...
 
Index nshelves () const
 Returns the number of shelves. More...
 
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...
 
ConstTensor6View operator() (const Range &v, const Range &s, const Range &b, const Range &p, const Range &r, const Range &c) const
 
ConstTensor5View operator() (const Range &v, const Range &s, const Range &b, const Range &p, const Range &r, Index c) const
 
ConstTensor5View operator() (const Range &v, const Range &s, const Range &b, const Range &p, Index r, const Range &c) const
 
ConstTensor5View operator() (const Range &v, const Range &s, const Range &b, Index p, const Range &r, const Range &c) const
 
ConstTensor5View operator() (const Range &v, const Range &s, Index b, const Range &p, const Range &r, const Range &c) const
 
ConstTensor5View operator() (const Range &v, Index s, const Range &b, const Range &p, const Range &r, const Range &c) const
 
ConstTensor5View operator() (Index v, const Range &s, const Range &b, const Range &p, const Range &r, const Range &c) const
 
ConstTensor4View operator() (const Range &v, const Range &s, const Range &b, const Range &p, Index r, Index c) const
 
ConstTensor4View operator() (const Range &v, const Range &s, const Range &b, Index p, const Range &r, Index c) const
 
ConstTensor4View operator() (const Range &v, const Range &s, Index b, const Range &p, const Range &r, Index c) const
 
ConstTensor4View operator() (const Range &v, Index s, const Range &b, const Range &p, const Range &r, Index c) const
 
ConstTensor4View operator() (Index v, const Range &s, const Range &b, const Range &p, const Range &r, Index c) const
 
ConstTensor4View operator() (const Range &v, const Range &s, const Range &b, Index p, Index r, const Range &c) const
 
ConstTensor4View operator() (const Range &v, const Range &s, Index b, const Range &p, Index r, const Range &c) const
 
ConstTensor4View operator() (const Range &v, Index s, const Range &b, const Range &p, Index r, const Range &c) const
 
ConstTensor4View operator() (Index v, const Range &s, const Range &b, const Range &p, Index r, const Range &c) const
 
ConstTensor4View operator() (const Range &v, const Range &s, Index b, Index p, const Range &r, const Range &c) const
 
ConstTensor4View operator() (const Range &v, Index s, const Range &b, Index p, const Range &r, const Range &c) const
 
ConstTensor4View operator() (Index v, const Range &s, const Range &b, Index p, const Range &r, const Range &c) const
 
ConstTensor4View operator() (const Range &v, Index s, Index b, const Range &p, const Range &r, const Range &c) const
 
ConstTensor4View operator() (Index v, const Range &s, Index b, const Range &p, const Range &r, const Range &c) const
 
ConstTensor4View operator() (Index v, Index s, const Range &b, const Range &p, const Range &r, const Range &c) const
 
ConstTensor3View operator() (const Range &v, const Range &s, const Range &b, Index p, Index r, Index c) const
 
ConstTensor3View operator() (const Range &v, const Range &s, Index b, const Range &p, Index r, Index c) const
 
ConstTensor3View operator() (const Range &v, Index s, const Range &b, const Range &p, Index r, Index c) const
 
ConstTensor3View operator() (Index v, const Range &s, const Range &b, const Range &p, Index r, Index c) const
 
ConstTensor3View operator() (const Range &v, const Range &s, Index b, Index p, const Range &r, Index c) const
 
ConstTensor3View operator() (const Range &v, Index s, const Range &b, Index p, const Range &r, Index c) const
 
ConstTensor3View operator() (Index v, const Range &s, const Range &b, Index p, const Range &r, Index c) const
 
ConstTensor3View operator() (const Range &v, Index s, Index b, const Range &p, const Range &r, Index c) const
 
ConstTensor3View operator() (Index v, const Range &s, Index b, const Range &p, const Range &r, Index c) const
 
ConstTensor3View operator() (Index v, Index s, const Range &b, const Range &p, const Range &r, Index c) const
 
ConstTensor3View operator() (const Range &v, const Range &s, Index b, Index p, Index r, const Range &c) const
 
ConstTensor3View operator() (const Range &v, Index s, const Range &b, Index p, Index r, const Range &c) const
 
ConstTensor3View operator() (Index v, const Range &s, const Range &b, Index p, Index r, const Range &c) const
 
ConstTensor3View operator() (const Range &v, Index s, Index b, const Range &p, Index r, const Range &c) const
 
ConstTensor3View operator() (Index v, const Range &s, Index b, const Range &p, Index r, const Range &c) const
 
ConstTensor3View operator() (Index v, Index s, const Range &b, const Range &p, Index r, const Range &c) const
 
ConstTensor3View operator() (const Range &v, Index s, Index b, Index p, const Range &r, const Range &c) const
 
ConstTensor3View operator() (Index v, const Range &s, Index b, Index p, const Range &r, const Range &c) const
 
ConstTensor3View operator() (Index v, Index s, const Range &b, Index p, const Range &r, const Range &c) const
 
ConstTensor3View operator() (Index v, Index s, Index b, const Range &p, const Range &r, const Range &c) const
 
ConstMatrixView operator() (Index v, Index s, Index b, Index p, const Range &r, const Range &c) const
 
ConstMatrixView operator() (Index v, Index s, Index b, const Range &p, Index r, const Range &c) const
 
ConstMatrixView operator() (Index v, Index s, const Range &b, Index p, Index r, const Range &c) const
 
ConstMatrixView operator() (Index v, const Range &s, Index b, Index p, Index r, const Range &c) const
 
ConstMatrixView operator() (const Range &v, Index s, Index b, Index p, Index r, const Range &c) const
 
ConstMatrixView operator() (Index v, Index s, Index b, const Range &p, const Range &r, Index c) const
 
ConstMatrixView operator() (Index v, Index s, const Range &b, Index p, const Range &r, Index c) const
 
ConstMatrixView operator() (Index v, const Range &s, Index b, Index p, const Range &r, Index c) const
 
ConstMatrixView operator() (const Range &v, Index s, Index b, Index p, const Range &r, Index c) const
 
ConstMatrixView operator() (Index v, Index s, const Range &b, const Range &p, Index r, Index c) const
 
ConstMatrixView operator() (Index v, const Range &s, Index b, const Range &p, Index r, Index c) const
 
ConstMatrixView operator() (const Range &v, Index s, Index b, const Range &p, Index r, Index c) const
 
ConstMatrixView operator() (Index v, const Range &s, const Range &b, Index p, Index r, Index c) const
 
ConstMatrixView operator() (const Range &v, Index s, const Range &b, Index p, Index r, Index c) const
 
ConstMatrixView operator() (const Range &v, const Range &s, Index b, Index p, Index r, Index c) const
 
ConstVectorView operator() (Index v, Index s, Index b, Index p, Index r, const Range &c) const
 
ConstVectorView operator() (Index v, Index s, Index b, Index p, const Range &r, Index c) const
 
ConstVectorView operator() (Index v, Index s, Index b, const Range &p, Index r, Index c) const
 
ConstVectorView operator() (Index v, Index s, const Range &b, Index p, Index r, Index c) const
 
ConstVectorView operator() (Index v, const Range &s, Index b, Index p, Index r, Index c) const
 
ConstVectorView operator() (const Range &v, Index s, Index b, Index p, Index r, Index c) const
 
Numeric operator() (Index v, Index s, Index b, Index p, Index r, Index c) const
 
Numeric get (Index v, Index s, Index b, Index p, Index r, Index c) const
 Get element implementation without assertions. More...
 
ConstIterator6D begin () const
 Return const iterator to first sub-tensor. More...
 
ConstIterator6D end () const
 Return const iterator behind last sub-tensor. More...
 
virtual ~ConstTensor6View ()=default
 
 ConstTensor6View (const ConstTensor5View &a)
 Special constructor to make a Tensor6 view of a Tensor5. More...
 

Friends

void swap (Tensor6 &t1, Tensor6 &t2)
 Swaps two objects. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Tensor6View
 Tensor6View ()=default
 
 Tensor6View (Numeric *data, const Range &v, const Range &s, const Range &b, const Range &p, const Range &r, const Range &c)
 Explicit constructor. More...
 
 Tensor6View (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. More...
 
- Protected Member Functions inherited from ConstTensor6View
 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. More...
 
 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. More...
 
- Protected Attributes inherited from ConstTensor6View
Range mvr {0, 0, 1}
 The vitrine range of mdata that is actually used. More...
 
Range msr {0, 0, 1}
 The shelf range of mdata that is actually used. More...
 
Range mbr {0, 0, 1}
 The book range of mdata that is actually used. More...
 
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...
 

Detailed Description

The Tensor6 class.

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

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

Definition at line 1088 of file matpackVI.h.

Constructor & Destructor Documentation

◆ Tensor6() [1/6]

Tensor6::Tensor6 ( )
default

◆ Tensor6() [2/6]

Tensor6::Tensor6 ( Index  v,
Index  s,
Index  b,
Index  p,
Index  r,
Index  c 
)

Constructor setting size.

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

Definition at line 2030 of file matpackVI.cc.

◆ Tensor6() [3/6]

Tensor6::Tensor6 ( Index  v,
Index  s,
Index  b,
Index  p,
Index  r,
Index  c,
Numeric  fill 
)

Constructor setting size and filling with constant value.

Definition at line 2042 of file matpackVI.cc.

◆ Tensor6() [4/6]

Tensor6::Tensor6 ( const ConstTensor6View m)

Copy constructor from Tensor6View.

This automatically sets the size and copies the data.

Definition at line 2058 of file matpackVI.cc.

References Tensor6View::begin(), ConstTensor6View::begin(), copy(), and ConstTensor6View::end().

◆ Tensor6() [5/6]

Tensor6::Tensor6 ( const Tensor6 m)

Copy constructor from Tensor6.

This automatically sets the size and copies the data.

Definition at line 2076 of file matpackVI.cc.

References ConstTensor6View::mdata, ConstTensor6View::nbooks(), ConstTensor6View::ncols(), ConstTensor6View::npages(), ConstTensor6View::nrows(), ConstTensor6View::nshelves(), and ConstTensor6View::nvitrines().

◆ Tensor6() [6/6]

Tensor6::Tensor6 ( Tensor6 &&  v)
inlinenoexcept

Definition at line 1096 of file matpackVI.h.

◆ ~Tensor6()

Tensor6::~Tensor6 ( )
virtual

Destructor for Tensor6.

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

Definition at line 2227 of file matpackVI.cc.

References ConstTensor6View::mdata.

Member Function Documentation

◆ operator=() [1/3]

Tensor6 & Tensor6::operator= ( const Tensor6 x)

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 2124 of file matpackVI.cc.

References ConstTensor6View::mdata, ConstTensor6View::nbooks(), ConstTensor6View::ncols(), ConstTensor6View::npages(), ConstTensor6View::nrows(), ConstTensor6View::nshelves(), ConstTensor6View::nvitrines(), resize(), and ARTS::Var::x().

◆ operator=() [2/3]

Tensor6 & Tensor6::operator= ( Numeric  x)

◆ operator=() [3/3]

Tensor6 & Tensor6::operator= ( Tensor6 &&  x)
noexcept

Move assignment operator from another tensor.

Definition at line 2141 of file matpackVI.cc.

References ARTS::Var::x().

◆ resize()

void Tensor6::resize ( Index  v,
Index  s,
Index  b,
Index  p,
Index  r,
Index  c 
)

Resize function.

If the size is already correct this function does nothing. All data is lost after resizing! The new tensor is not initialized, so it will contain random values.

Definition at line 2175 of file matpackVI.cc.

Referenced by operator=(), Reduce(), GriddedField6::resize(), Tensor6Scale(), test_empty(), and xml_read_from_stream().

Friends And Related Function Documentation

◆ swap

void swap ( Tensor6 t1,
Tensor6 t2 
)
friend

Swaps two objects.

Definition at line 2215 of file matpackVI.cc.


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