227 { mx += mstride;
return *
this; }
234 {
if (mx != other.
mx)
return true;
else return false; }
262 { mx += mstride;
return *
this; }
269 {
if (mx != other.
mx)
return true;
else return false; }
306 assert( n<mrange.mextent );
396 assert( n<mrange.mextent );
438 const Numeric *get_c_array()
const;
484 {
if ( msv.mdata + msv.mrange.mstart !=
516 : msv(x), mstride(stride)
525 {
if ( msv.mdata + msv.mrange.mstart !=
565 Vector(
const std::vector<Numeric>&);
573 void resize(
Index n);
611 assert( r<mrr.mextent );
612 assert( c<mcr.mextent );
703 assert( r<mrr.mextent );
704 assert( c<mcr.mextent );
754 const Numeric *get_c_array()
const;
854 double (&my_func)(
double),
858 double (&my_func)(
double),
INDEX Index
The type to use for all integer numbers and indices.
Index get_start() const
Returns the start index of the range.
Numeric & operator*() const
Dereferencing.
const Numeric * mx
Current position.
Iterator1D & operator++()
Prefix increment operator.
void swap(Vector &v1, Vector &v2)
Swaps two objects.
bool operator!=(const Iterator1D &other) const
Not equal operator, needed for algorithms like copy.
The outermost iterator class for rank 6 tensors.
Const version of Iterator4D.
Iterator2D()
Default constructor.
A constant view of a Tensor7.
virtual ~MatrixView()
Destructor.
VectorView * operator->()
The -> operator is needed, so that we can write i->begin() to get the 1D iterators.
Index mstart
The start index.
Numeric * mdata
Pointer to the plain C array that holds the data.
ConstIterator1D()
Default constructor.
Implementation of Tensors of Rank 4.
A constant view of a Tensor6.
ConstMatrixView transpose(ConstMatrixView m)
Const version of transpose.
Numeric operator()(Index r, Index c) const
Plain const index operator.
virtual ~ConstVectorView()
Destructor.
VectorView msv
Current position.
Numeric & operator[](Index n)
Plain Index operator.
Const version of Iterator6D.
std::ostream & operator<<(std::ostream &os, const ConstVectorView &v)
Output operator.
Numeric get(Index r, Index c) const
Get element implementation without assertions.
void transform(VectorView y, double(&my_func)(double), ConstVectorView x)
A generic transform function for vectors, which can be used to implement mathematical functions opera...
ConstVectorView msv
Current position.
The row iterator class for sub matrices.
virtual ~VectorView()
Destructor.
bool operator!=(const ConstIterator2D &other) const
Not equal operator, needed for algorithms like copy.
const ConstVectorView * operator->() const
The -> operator is needed, so that we can write i->begin() to get the 1D iterators.
A constant view of a Tensor4.
Numeric operator[](Index n) const
Plain const index operator.
Iterator1D()
Default constructor.
This file contains the definition of Array.
Iterator1D(Numeric *x, Index stride)
Explicit constructor.
The const row iterator class for sub matrices.
Range mrr
The row range of mdata that is actually used.
const Numeric & operator*() const
Dereferencing.
Iterator2D(const VectorView &x, Index stride)
Explicit constructor.
Numeric debug_matrixview_get_elem(MatrixView &mv, Index r, Index c)
Helper function to access matrix elements.
Numeric get(Index n) const
Get element implementation without assertions.
bool operator!=(const Iterator2D &other) const
Not equal operator, needed for algorithms like copy.
void cross3(VectorView c, const ConstVectorView &a, const ConstVectorView &b)
cross3
Numeric operator[](Index n) const
Plain const index operator.
Numeric operator()(Index r, Index c) const
Plain const index operator.
ConstIterator2D()
Default constructor.
A constant view of a Tensor5.
NUMERIC Numeric
The type to use for all floating point numbers.
Implementation of Tensors of Rank 7.
Index get_stride() const
Returns the stride of the range.
Range mcr
The column range of mdata that is actually used.
ConstIterator2D(const ConstVectorView &x, Index stride)
Explicit constructor.
Index mextent
The number of elements.
Const version of Iterator5D.
Numeric mean(const ConstVectorView &x)
Mean function, vector version.
Iterator2D & operator++()
Prefix increment operator.
ConstIterator1D & operator++()
Prefix increment operator.
Implementation of Tensors of Rank 5.
VectorView & operator*()
Dereferencing.
Numeric operator*(const ConstVectorView &a, const ConstVectorView &b)
Scalar product.
ConstIterator2D const_iterator
Const version of Iterator7D.
A constant view of a Tensor3.
A constant view of a Vector.
const ConstVectorView & operator*() const
Dereferencing.
Binary output file stream class.
Numeric * mdata
Pointer to the plain C array that holds the data.
A constant view of a Matrix.
Implementation of Tensors of Rank 3.
ConstIterator1D(Numeric *x, Index stride)
Explicit constructor.
Numeric max(const ConstVectorView &x)
Max function, vector version.
Numeric * mx
Current position.
Range mrange
The range of mdata that is actually used.
The constant iterator class for sub vectors.
void mult(VectorView y, const ConstMatrixView &M, const ConstVectorView &x)
Matrix Vector multiplication.
Numeric min(const ConstVectorView &x)
Min function, vector version.
Index get_extent() const
Returns the extent of the range.
Numeric vector_angle(ConstVectorView a, ConstVectorView b)
bool operator!=(const ConstIterator1D &other) const
Not equal operator, needed for algorithms like copy.
The iterator class for sub vectors.
int poly_root_solve(Matrix &roots, Vector &coeffs)
void copy(ConstIterator1D origin, const ConstIterator1D &end, Iterator1D target)
Copy data between begin and end to target.
Numeric & operator()(Index r, Index c)
Plain index operator.
virtual ~ConstMatrixView()
Destructor.
Const version of Iterator3D.
ConstIterator1D const_iterator
void proj(Vector &c, ConstVectorView a, ConstVectorView b)
ConstIterator2D & operator++()
Prefix increment operator.