#include <iomanip>
#include "matpackI.h"
Go to the source code of this file.
Classes | |
class | Iterator3D |
Implementation of Tensors of Rank 3. More... | |
class | ConstIterator3D |
Const version of Iterator3D. More... | |
class | ConstTensor3View |
A constant view of a Tensor3. More... | |
class | Tensor3View |
The Tensor3View class. More... | |
class | Tensor3 |
The Tensor3 class. More... | |
Typedefs | |
typedef Array< Tensor3 > | ArrayOfTensor3 |
An array of Tensor3. | |
Functions | |
void | copy (ConstIterator3D origin, const ConstIterator3D &end, Iterator3D target) |
Copy data between begin and end to target. | |
void | copy (Numeric x, Iterator3D target, const Iterator3D &end) |
Copy a scalar to all elements. | |
std::ostream & | operator<< (std::ostream &os, const ConstTensor3View &v) |
Output operator. | |
Numeric | add (Numeric x, Numeric y) |
void | transform (Tensor3View y, double(&my_func)(double), ConstTensor3View x) |
A generic transform function for tensors, which can be used to implement mathematical functions operating on all elements. | |
Numeric | max (const ConstTensor3View &x) |
Max function, tensor version. | |
Numeric | min (const ConstTensor3View &x) |
Min function, tensor version. |
typedef Array<Tensor3> ArrayOfTensor3 |
Definition at line 926 of file matpackIII.h.
void copy | ( | Numeric | x, | |
Iterator3D | target, | |||
const Iterator3D & | end | |||
) | [inline] |
void copy | ( | ConstIterator3D | origin, | |
const ConstIterator3D & | end, | |||
Iterator3D | target | |||
) | [inline] |
Copy data between begin and end to target.
Target must be a valid area of memory. Note that the strides in the iterators can be different, so that we can copy data between different kinds of subtensors.
Definition at line 1086 of file matpackIII.h.
Numeric max | ( | const ConstTensor3View & | x | ) | [inline] |
Numeric min | ( | const ConstTensor3View & | x | ) | [inline] |
std::ostream& operator<< | ( | std::ostream & | os, | |
const ConstTensor3View & | v | |||
) | [inline] |
Output operator.
This demonstrates how iterators can be used to traverse the tensor. We use the standard output operator for Matrix to print each page in turn.
Definition at line 603 of file matpackIII.h.
void transform | ( | Tensor3View | y, | |
double(&)(double) | my_func, | |||
ConstTensor3View | x | |||
) | [inline] |
A generic transform function for tensors, which can be used to implement mathematical functions operating on all elements.
Because we have this, we don't need explicit functions like sqrt for tensors! The type of the mathematical function is double (&my_func)(double). Numeric would not work here, since mathematical functions for float do not exist!
transform(y,sin,x) computes y = sin(x)
The two views may be the same one, in which case the conversion happens in place.
y | the results of the function acting on each element of x |
my_func | a function (e.g., sqrt) | |
x | a tensor |
Definition at line 1275 of file matpackIII.h.