ARTS 2.5.10 (git: 2f1c442c)
|
The Tensor4View class. More...
#include <matpackIV.h>
Public Member Functions | |
constexpr | Tensor4View (const Tensor4View &)=default |
Tensor4View | operator() (const Range &b, const Range &p, const Range &r, const Range &c) |
Index operator for subrange. | |
Tensor3View | operator() (const Range &b, const Range &p, const Range &r, Index c) |
Index operator returning an object of type Tensor3View. | |
Tensor3View | operator() (const Range &b, const Range &p, Index r, const Range &c) |
Index operator returning an object of type Tensor3View. | |
Tensor3View | operator() (const Range &b, Index p, const Range &r, const Range &c) |
Index operator returning an object of type Tensor3View. | |
Tensor3View | operator() (Index b, const Range &p, const Range &r, const Range &c) |
Index operator returning an object of type Tensor3View. | |
MatrixView | operator() (const Range &b, const Range &p, Index r, Index c) |
Index operator returning an object of type MatrixView. | |
MatrixView | operator() (const Range &b, Index p, const Range &r, Index c) |
Index operator returning an object of type MatrixView. | |
MatrixView | operator() (const Range &b, Index p, Index r, const Range &c) |
Index operator returning an object of type MatrixView. | |
MatrixView | operator() (Index b, const Range &p, Index r, const Range &c) |
Index operator returning an object of type MatrixView. | |
MatrixView | operator() (Index b, const Range &p, const Range &r, Index c) |
Index operator returning an object of type MatrixView. | |
MatrixView | operator() (Index b, Index p, const Range &r, const Range &c) |
Index operator returning an object of type MatrixView. | |
VectorView | operator() (const Range &b, Index p, Index r, Index c) |
Index operator returning an object of type VectorView. | |
VectorView | operator() (Index b, const Range &p, Index r, Index c) |
Index operator returning an object of type VectorView. | |
VectorView | operator() (Index b, Index p, const Range &r, Index c) |
Index operator returning an object of type VectorView. | |
VectorView | operator() (Index b, Index p, Index r, const Range &c) |
Index operator returning an object of type VectorView. | |
Numeric & | operator() (Index b, Index p, Index r, Index c) |
Plain non-const index operator. | |
Numeric & | get (Index b, Index p, Index r, Index c) |
Get element implementation without assertions. | |
const Numeric * | get_c_array () const ARTS_NOEXCEPT |
Conversion to plain C-array. | |
Numeric * | get_c_array () ARTS_NOEXCEPT |
Conversion to plain C-array. | |
Iterator4D | begin () |
Return iterator to first book. | |
Iterator4D | end () |
Return iterator behind last book. | |
Tensor4View & | operator= (const ConstTensor4View &v) |
Assignment operator. | |
Tensor4View & | operator= (const Tensor4View &v) |
Assignment from Tensor4View to Tensor4View. | |
Tensor4View & | operator= (const Tensor4 &v) |
Assignment from a Tensor4. | |
Tensor4View & | operator= (Numeric x) |
Assigning a scalar to a Tensor4View will set all elements to this value. | |
Tensor4View & | operator*= (Numeric x) |
Multiplication by scalar. | |
Tensor4View & | operator/= (Numeric x) |
Division by scalar. | |
Tensor4View & | operator+= (Numeric x) |
Addition of scalar. | |
Tensor4View & | operator-= (Numeric x) |
Subtraction of scalar. | |
Tensor4View & | operator*= (const ConstTensor4View &x) |
Element-vise multiplication by another Tensor4. | |
Tensor4View & | operator/= (const ConstTensor4View &x) |
Element-vise division by another Tensor4. | |
Tensor4View & | operator+= (const ConstTensor4View &x) |
Element-vise addition of another Tensor4. | |
Tensor4View & | operator-= (const ConstTensor4View &x) |
Element-vise subtraction of another Tensor4. | |
~Tensor4View () override=default | |
Destructor. | |
Tensor4View (const Tensor3View &a) | |
Special constructor to make a Tensor4 view of a Tensor3. | |
ConstIterator4D | begin () const |
Return const iterator to first book. | |
ConstIterator4D | end () const |
Return const iterator behind last book. | |
Numeric | get (Index b, Index p, Index r, Index c) const |
Get element implementation without assertions. | |
![]() | |
constexpr | ConstTensor4View (const ConstTensor4View &)=default |
constexpr | ConstTensor4View (ConstTensor4View &&)=default |
ConstTensor4View & | operator= (const ConstTensor4View &)=default |
ConstTensor4View & | operator= (ConstTensor4View &&)=default |
Index | nbooks () const noexcept |
Index | npages () const noexcept |
Index | nrows () const noexcept |
Index | ncols () const noexcept |
Index | size () const noexcept |
bool | empty () const noexcept |
Shape< 4 > | shape () const |
ConstTensor4View | operator() (const Range &b, const Range &p, const Range &r, const Range &c) const |
Const index operator for subrange. | |
ConstTensor3View | operator() (const Range &b, const Range &p, const Range &r, Index c) const |
Const index operator returning an object of type ConstTensor3View. | |
ConstTensor3View | operator() (const Range &b, const Range &p, Index r, const Range &c) const |
Const index operator returning an object of type ConstTensor3View. | |
ConstTensor3View | operator() (const Range &b, Index p, const Range &r, const Range &c) const |
Const index operator returning an object of type ConstTensor3View. | |
ConstTensor3View | operator() (Index b, const Range &p, const Range &r, const Range &c) const |
Const index operator returning an object of type ConstTensor3View. | |
ConstMatrixView | operator() (const Range &b, const Range &p, Index r, Index c) const |
Const index operator returning an object of type ConstMatrixView. | |
ConstMatrixView | operator() (const Range &b, Index p, const Range &r, Index c) const |
Const index operator returning an object of type ConstMatrixView. | |
ConstMatrixView | operator() (const Range &b, Index p, Index r, const Range &c) const |
Const index operator returning an object of type ConstMatrixView. | |
ConstMatrixView | operator() (Index b, const Range &p, Index r, const Range &c) const |
Const index operator returning an object of type ConstMatrixView. | |
ConstMatrixView | operator() (Index b, const Range &p, const Range &r, Index c) const |
Const index operator returning an object of type ConstMatrixView. | |
ConstMatrixView | operator() (Index b, Index p, const Range &r, const Range &c) const |
Const index operator returning an object of type ConstMatrixView. | |
ConstVectorView | operator() (const Range &b, Index p, Index r, Index c) const |
Const index operator returning an object of type ConstVectorView. | |
ConstVectorView | operator() (Index b, const Range &p, Index r, Index c) const |
Const index operator returning an object of type ConstVectorView. | |
ConstVectorView | operator() (Index b, Index p, const Range &r, Index c) const |
Const index operator returning an object of type ConstVectorView. | |
ConstVectorView | operator() (Index b, Index p, Index r, const Range &c) const |
Const index operator returning an object of type ConstVectorView. | |
Numeric | operator() (Index b, Index p, Index r, Index c) const |
Plain const index operator. | |
Numeric | get (Index b, Index p, Index r, Index c) const |
Get element implementation without assertions. | |
ConstIterator4D | begin () const |
Return const iterator to first book. | |
ConstIterator4D | end () const |
Return const iterator behind last book. | |
virtual | ~ConstTensor4View ()=default |
Destructor. | |
ConstTensor4View (const ConstTensor3View &a) | |
Special constructor to make a Tensor4 view of a Tensor3. | |
Protected Member Functions | |
Tensor4View ()=default | |
Tensor4View (Numeric *data, const Range &b, const Range &p, const Range &r, const Range &c) | |
Explicit constructor. | |
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. | |
![]() | |
ConstTensor4View ()=default | |
ConstTensor4View (Numeric *data, const Range &b, const Range &p, const Range &r, const Range &c) | |
Explicit constructor. | |
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. | |
Friends | |
class | Iterator5D |
class | Tensor5View |
class | Tensor6View |
class | Tensor7View |
Additional Inherited Members | |
![]() | |
static constexpr bool | matpack_type {true} |
![]() | |
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. | |
The Tensor4View class.
This contains the main implementation of a Tensor4. It defines the concepts of Tensor4View. Plus additionally the recursive subrange operator, which makes it possible to create a Tensor4View from a subrange of a Tensor4View.
The class Tensor4 is just a special case of a Tensor4View which also allocates storage.
Definition at line 296 of file matpackIV.h.
|
constexprdefault |
|
overridedefault |
Destructor.
Tensor4View::Tensor4View | ( | const Tensor3View & | a | ) |
Special constructor to make a Tensor4 view of a Tensor3.
Definition at line 861 of file matpackIV.cc.
|
protecteddefault |
Referenced by operator()().
|
protected |
Explicit constructor.
This one is used by Tensor4 to initialize its own Tensor4View part. The row range rr must have a stride to account for the length of one row.
Definition at line 874 of file matpackIV.cc.
|
protected |
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.
*data | The actual data. |
pb | Previous range. |
pp | Previous range. |
pr | Previous range. |
pc | Previous range. |
nb | New Range. |
np | New Range. |
nr | New Range. |
nc | New Range. |
Definition at line 901 of file matpackIV.cc.
Iterator4D Tensor4View::begin | ( | ) |
Return iterator to first book.
Definition at line 696 of file matpackIV.cc.
References ConstTensor4View::mbr, ConstTensor4View::mcr, ConstTensor4View::mdata, ConstTensor4View::mpr, ConstTensor4View::mrr, Range::mstart, and Range::mstride.
Referenced by copy(), operator*=(), operator+=(), operator-=(), operator/=(), operator=(), Tensor4::Tensor4(), and transform().
ConstIterator4D ConstTensor4View::begin | ( | ) | const |
Return const iterator to first book.
Definition at line 237 of file matpackIV.cc.
Iterator4D Tensor4View::end | ( | ) |
Return iterator behind last book.
Definition at line 702 of file matpackIV.cc.
References ConstTensor4View::mbr, ConstTensor4View::mcr, ConstTensor4View::mdata, Range::mextent, ConstTensor4View::mpr, ConstTensor4View::mrr, Range::mstart, and Range::mstride.
Referenced by copy(), operator*=(), operator+=(), operator-=(), operator/=(), and operator=().
ConstIterator4D ConstTensor4View::end | ( | ) | const |
Return const iterator behind last book.
Definition at line 238 of file matpackIV.cc.
Get element implementation without assertions.
Definition at line 363 of file matpackIV.h.
Referenced by interpweights().
Get element implementation without assertions.
Definition at line 230 of file matpackIV.h.
Numeric * Tensor4View::get_c_array | ( | ) |
Conversion to plain C-array.
This function returns a pointer to the raw data. It fails if the Tensor4View is not pointing to the beginning of a Tensor4 or the stride is not 1 because the caller expects to get a C array with continuous data.
Definition at line 318 of file matpackIV.cc.
References ARTS_ASSERT, ConstTensor4View::mbr, ConstTensor4View::mcr, ConstTensor4View::mdata, Range::mextent, ConstTensor4View::mpr, ConstTensor4View::mrr, Range::mstart, Range::mstride, and ConstTensor4View::size().
const Numeric * Tensor4View::get_c_array | ( | ) | const |
Conversion to plain C-array.
This function returns a pointer to the raw data. It fails if the Tensor4View is not pointing to the beginning of a Tensor4 or the stride is not 1 because the caller expects to get a C array with continuous data.
Definition at line 342 of file matpackIV.cc.
References ARTS_ASSERT, ConstTensor4View::mbr, ConstTensor4View::mcr, ConstTensor4View::mdata, Range::mextent, ConstTensor4View::mpr, ConstTensor4View::mrr, Range::mstart, Range::mstride, and ConstTensor4View::size().
Referenced by nca_get_data(), nca_put_var(), nca_read_from_file(), nca_write_to_file(), Reduce(), WriteMolTau(), and xml_read_from_stream().
Tensor4View Tensor4View::operator() | ( | const Range & | b, |
const Range & | p, | ||
const Range & | r, | ||
const Range & | c | ||
) |
Index operator for subrange.
We have to also account for the case, that *this is already a subrange of a Tensor4. This allows correct recursive behavior.
Definition at line 444 of file matpackIV.cc.
References b, c, ConstTensor4View::mbr, ConstTensor4View::mcr, ConstTensor4View::mdata, ConstTensor4View::mpr, ConstTensor4View::mrr, and Tensor4View().
Tensor3View Tensor4View::operator() | ( | const Range & | b, |
const Range & | p, | ||
const Range & | r, | ||
Index | c | ||
) |
Index operator returning an object of type Tensor3View.
(Reducing the dimension by one.)
Definition at line 453 of file matpackIV.cc.
References ARTS_ASSERT, b, c, ConstTensor4View::mbr, ConstTensor4View::mcr, ConstTensor4View::mdata, Range::mextent, ConstTensor4View::mpr, ConstTensor4View::mrr, Range::mstart, and Range::mstride.
Tensor3View Tensor4View::operator() | ( | const Range & | b, |
const Range & | p, | ||
Index | r, | ||
const Range & | c | ||
) |
Index operator returning an object of type Tensor3View.
(Reducing the dimension by one.)
Definition at line 467 of file matpackIV.cc.
References ARTS_ASSERT, b, c, ConstTensor4View::mbr, ConstTensor4View::mcr, ConstTensor4View::mdata, Range::mextent, ConstTensor4View::mpr, ConstTensor4View::mrr, Range::mstart, and Range::mstride.
MatrixView Tensor4View::operator() | ( | const Range & | b, |
const Range & | p, | ||
Index | r, | ||
Index | c | ||
) |
Index operator returning an object of type MatrixView.
(Reducing the dimension by two.)
Definition at line 509 of file matpackIV.cc.
References ARTS_ASSERT, b, c, ConstTensor4View::mbr, ConstTensor4View::mcr, ConstTensor4View::mdata, Range::mextent, ConstTensor4View::mpr, ConstTensor4View::mrr, Range::mstart, and Range::mstride.
Tensor3View Tensor4View::operator() | ( | const Range & | b, |
Index | p, | ||
const Range & | r, | ||
const Range & | c | ||
) |
Index operator returning an object of type Tensor3View.
(Reducing the dimension by one.)
Definition at line 481 of file matpackIV.cc.
References ARTS_ASSERT, b, c, ConstTensor4View::mbr, ConstTensor4View::mcr, ConstTensor4View::mdata, Range::mextent, ConstTensor4View::mpr, ConstTensor4View::mrr, Range::mstart, and Range::mstride.
MatrixView Tensor4View::operator() | ( | const Range & | b, |
Index | p, | ||
const Range & | r, | ||
Index | c | ||
) |
Index operator returning an object of type MatrixView.
(Reducing the dimension by two.)
Definition at line 529 of file matpackIV.cc.
References ARTS_ASSERT, b, c, ConstTensor4View::mbr, ConstTensor4View::mcr, ConstTensor4View::mdata, Range::mextent, ConstTensor4View::mpr, ConstTensor4View::mrr, Range::mstart, and Range::mstride.
MatrixView Tensor4View::operator() | ( | const Range & | b, |
Index | p, | ||
Index | r, | ||
const Range & | c | ||
) |
Index operator returning an object of type MatrixView.
(Reducing the dimension by two.)
Definition at line 549 of file matpackIV.cc.
References ARTS_ASSERT, b, c, ConstTensor4View::mbr, ConstTensor4View::mcr, ConstTensor4View::mdata, Range::mextent, ConstTensor4View::mpr, ConstTensor4View::mrr, Range::mstart, and Range::mstride.
VectorView Tensor4View::operator() | ( | const Range & | b, |
Index | p, | ||
Index | r, | ||
Index | c | ||
) |
Index operator returning an object of type VectorView.
(Reducing the dimension by three.)
Definition at line 629 of file matpackIV.cc.
References ARTS_ASSERT, b, c, ConstTensor4View::mbr, ConstTensor4View::mcr, ConstTensor4View::mdata, Range::mextent, ConstTensor4View::mpr, ConstTensor4View::mrr, Range::mstart, and Range::mstride.
Tensor3View Tensor4View::operator() | ( | Index | b, |
const Range & | p, | ||
const Range & | r, | ||
const Range & | c | ||
) |
Index operator returning an object of type Tensor3View.
(Reducing the dimension by one.)
Definition at line 495 of file matpackIV.cc.
References ARTS_ASSERT, b, c, ConstTensor4View::mbr, ConstTensor4View::mcr, ConstTensor4View::mdata, Range::mextent, ConstTensor4View::mpr, ConstTensor4View::mrr, Range::mstart, and Range::mstride.
MatrixView Tensor4View::operator() | ( | Index | b, |
const Range & | p, | ||
const Range & | r, | ||
Index | c | ||
) |
Index operator returning an object of type MatrixView.
(Reducing the dimension by two.)
Definition at line 589 of file matpackIV.cc.
References ARTS_ASSERT, b, c, ConstTensor4View::mbr, ConstTensor4View::mcr, ConstTensor4View::mdata, Range::mextent, ConstTensor4View::mpr, ConstTensor4View::mrr, Range::mstart, and Range::mstride.
MatrixView Tensor4View::operator() | ( | Index | b, |
const Range & | p, | ||
Index | r, | ||
const Range & | c | ||
) |
Index operator returning an object of type MatrixView.
(Reducing the dimension by two.)
Definition at line 569 of file matpackIV.cc.
References ARTS_ASSERT, b, c, ConstTensor4View::mbr, ConstTensor4View::mcr, ConstTensor4View::mdata, Range::mextent, ConstTensor4View::mpr, ConstTensor4View::mrr, Range::mstart, and Range::mstride.
VectorView Tensor4View::operator() | ( | Index | b, |
const Range & | p, | ||
Index | r, | ||
Index | c | ||
) |
Index operator returning an object of type VectorView.
(Reducing the dimension by three.)
Definition at line 646 of file matpackIV.cc.
References ARTS_ASSERT, b, c, ConstTensor4View::mbr, ConstTensor4View::mcr, ConstTensor4View::mdata, Range::mextent, ConstTensor4View::mpr, ConstTensor4View::mrr, Range::mstart, and Range::mstride.
MatrixView Tensor4View::operator() | ( | Index | b, |
Index | p, | ||
const Range & | r, | ||
const Range & | c | ||
) |
Index operator returning an object of type MatrixView.
(Reducing the dimension by two.)
Definition at line 609 of file matpackIV.cc.
References ARTS_ASSERT, b, c, ConstTensor4View::mbr, ConstTensor4View::mcr, ConstTensor4View::mdata, Range::mextent, ConstTensor4View::mpr, ConstTensor4View::mrr, Range::mstart, and Range::mstride.
VectorView Tensor4View::operator() | ( | Index | b, |
Index | p, | ||
const Range & | r, | ||
Index | c | ||
) |
Index operator returning an object of type VectorView.
(Reducing the dimension by three.)
Definition at line 663 of file matpackIV.cc.
References ARTS_ASSERT, b, c, ConstTensor4View::mbr, ConstTensor4View::mcr, ConstTensor4View::mdata, Range::mextent, ConstTensor4View::mpr, ConstTensor4View::mrr, Range::mstart, and Range::mstride.
VectorView Tensor4View::operator() | ( | Index | b, |
Index | p, | ||
Index | r, | ||
const Range & | c | ||
) |
Index operator returning an object of type VectorView.
Reducing the dimension by three.)
Definition at line 680 of file matpackIV.cc.
References ARTS_ASSERT, b, c, ConstTensor4View::mbr, ConstTensor4View::mcr, ConstTensor4View::mdata, Range::mextent, ConstTensor4View::mpr, ConstTensor4View::mrr, Range::mstart, and Range::mstride.
Plain non-const index operator.
Definition at line 346 of file matpackIV.h.
References ARTS_ASSERT, b, c, GETFUN, ConstTensor4View::mbr, ConstTensor4View::mcr, Range::mextent, ConstTensor4View::mpr, and ConstTensor4View::mrr.
Tensor4View & Tensor4View::operator*= | ( | const ConstTensor4View & | x | ) |
Element-vise multiplication by another Tensor4.
Definition at line 801 of file matpackIV.cc.
References ARTS_ASSERT, b, begin(), ConstTensor4View::begin(), end(), ConstTensor4View::nbooks(), ConstTensor4View::ncols(), ConstTensor4View::npages(), and ConstTensor4View::nrows().
Tensor4View & Tensor4View::operator*= | ( | Numeric | x | ) |
Multiplication by scalar.
Definition at line 765 of file matpackIV.cc.
Tensor4View & Tensor4View::operator+= | ( | const ConstTensor4View & | x | ) |
Element-vise addition of another Tensor4.
Definition at line 831 of file matpackIV.cc.
References ARTS_ASSERT, b, begin(), ConstTensor4View::begin(), end(), ConstTensor4View::nbooks(), ConstTensor4View::ncols(), ConstTensor4View::npages(), and ConstTensor4View::nrows().
Tensor4View & Tensor4View::operator+= | ( | Numeric | x | ) |
Tensor4View & Tensor4View::operator-= | ( | const ConstTensor4View & | x | ) |
Element-vise subtraction of another Tensor4.
Definition at line 846 of file matpackIV.cc.
References ARTS_ASSERT, b, begin(), ConstTensor4View::begin(), end(), ConstTensor4View::nbooks(), ConstTensor4View::ncols(), ConstTensor4View::npages(), and ConstTensor4View::nrows().
Tensor4View & Tensor4View::operator-= | ( | Numeric | x | ) |
Subtraction of scalar.
Definition at line 792 of file matpackIV.cc.
Tensor4View & Tensor4View::operator/= | ( | const ConstTensor4View & | x | ) |
Element-vise division by another Tensor4.
Definition at line 816 of file matpackIV.cc.
References ARTS_ASSERT, b, begin(), ConstTensor4View::begin(), end(), ConstTensor4View::nbooks(), ConstTensor4View::ncols(), ConstTensor4View::npages(), and ConstTensor4View::nrows().
Tensor4View & Tensor4View::operator/= | ( | Numeric | x | ) |
Tensor4View & Tensor4View::operator= | ( | const ConstTensor4View & | m | ) |
Assignment operator.
This copies the data from another Tensor4View to this Tensor4View. Dimensions must agree! Resizing would destroy the selection that we might have done in this Tensor4View by setting its range.
Definition at line 713 of file matpackIV.cc.
References ARTS_ASSERT, begin(), ConstTensor4View::begin(), copy(), ConstTensor4View::end(), ConstTensor4View::mbr, ConstTensor4View::mcr, Range::mextent, ConstTensor4View::mpr, and ConstTensor4View::mrr.
Tensor4View & Tensor4View::operator= | ( | const Tensor4 & | m | ) |
Assignment from a Tensor4.
This must exist to overide the automatically generated assignment operators, which don't copy the contents!
Definition at line 743 of file matpackIV.cc.
References ARTS_ASSERT, begin(), copy(), end(), ConstTensor4View::mbr, ConstTensor4View::mcr, Range::mextent, ConstTensor4View::mpr, and ConstTensor4View::mrr.
Tensor4View & Tensor4View::operator= | ( | const Tensor4View & | m | ) |
Assignment from Tensor4View to Tensor4View.
This is a tricky one. The problem is that since Tensor4View is derived from ConstTensor4View, 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 729 of file matpackIV.cc.
References ARTS_ASSERT, begin(), copy(), end(), ConstTensor4View::mbr, ConstTensor4View::mcr, Range::mextent, ConstTensor4View::mpr, and ConstTensor4View::mrr.
Tensor4View & Tensor4View::operator= | ( | Numeric | x | ) |
Assigning a scalar to a Tensor4View will set all elements to this value.
Definition at line 756 of file matpackIV.cc.
|
friend |
Definition at line 400 of file matpackIV.h.
|
friend |
Definition at line 401 of file matpackIV.h.
|
friend |
Definition at line 402 of file matpackIV.h.
|
friend |
Definition at line 403 of file matpackIV.h.