Marray
Public Types | Public Member Functions | List of all members
andres::ViewExpression< E, T > Class Template Reference

Expression template for efficient arithmetic operations. More...

#include <marray.hxx>

Public Types

typedef E expression_type
typedef T value_type

Public Member Functions

const std::size_t dimension () const
const std::size_t size () const
const std::size_t shape (const std::size_t j) const
const std::size_t * shapeBegin () const
const std::size_t * shapeEnd () const
template<class Tv , bool isConst, class A >
bool overlaps (const View< Tv, isConst, A > &v) const
const CoordinateOrdercoordinateOrder () const
const bool isSimple () const
template<class Accessor >
const T & operator() (Accessor it) const
const T & operator() (const std::size_t c0, const std::size_t c1) const
const T & operator() (const std::size_t c0, const std::size_t c1, const std::size_t c2) const
const T & operator() (const std::size_t c0, const std::size_t c1, const std::size_t c2, const std::size_t c3) const
const T & operator() (const std::size_t c0, const std::size_t c1, const std::size_t c2, const std::size_t c3, const std::size_t c4) const
const T & operator[] (const std::size_t offset) const
 operator E & ()
 operator E const & () const

Detailed Description

template<class E, class T>
class andres::ViewExpression< E, T >

Expression template for efficient arithmetic operations.

Definition at line 4500 of file marray.hxx.

Member Typedef Documentation

template<class E, class T>
typedef E andres::ViewExpression< E, T >::expression_type

Definition at line 4502 of file marray.hxx.

template<class E, class T>
typedef T andres::ViewExpression< E, T >::value_type

Definition at line 4503 of file marray.hxx.

Member Function Documentation

template<class E, class T>
const CoordinateOrder& andres::ViewExpression< E, T >::coordinateOrder ( ) const
inline

Reimplemented in andres::View< T, isConst, A >, and andres::View< T, false, A >.

Definition at line 4518 of file marray.hxx.

template<class E, class T>
const std::size_t andres::ViewExpression< E, T >::dimension ( ) const
inline

Reimplemented in andres::View< T, isConst, A >, and andres::View< T, false, A >.

Definition at line 4505 of file marray.hxx.

template<class E, class T>
const bool andres::ViewExpression< E, T >::isSimple ( ) const
inline

Reimplemented in andres::View< T, isConst, A >, and andres::View< T, false, A >.

Definition at line 4520 of file marray.hxx.

template<class E, class T>
andres::ViewExpression< E, T >::operator E & ( )
inline

Definition at line 4535 of file marray.hxx.

template<class E, class T>
andres::ViewExpression< E, T >::operator E const & ( ) const
inline

Definition at line 4537 of file marray.hxx.

template<class E, class T>
template<class Accessor >
const T& andres::ViewExpression< E, T >::operator() ( Accessor  it) const
inline

Definition at line 4523 of file marray.hxx.

template<class E, class T>
const T& andres::ViewExpression< E, T >::operator() ( const std::size_t  c0,
const std::size_t  c1 
) const
inline

Reimplemented in andres::View< T, isConst, A >, and andres::View< T, false, A >.

Definition at line 4525 of file marray.hxx.

template<class E, class T>
const T& andres::ViewExpression< E, T >::operator() ( const std::size_t  c0,
const std::size_t  c1,
const std::size_t  c2 
) const
inline

Reimplemented in andres::View< T, isConst, A >, and andres::View< T, false, A >.

Definition at line 4527 of file marray.hxx.

template<class E, class T>
const T& andres::ViewExpression< E, T >::operator() ( const std::size_t  c0,
const std::size_t  c1,
const std::size_t  c2,
const std::size_t  c3 
) const
inline

Reimplemented in andres::View< T, isConst, A >, and andres::View< T, false, A >.

Definition at line 4529 of file marray.hxx.

template<class E, class T>
const T& andres::ViewExpression< E, T >::operator() ( const std::size_t  c0,
const std::size_t  c1,
const std::size_t  c2,
const std::size_t  c3,
const std::size_t  c4 
) const
inline

Reimplemented in andres::View< T, isConst, A >, and andres::View< T, false, A >.

Definition at line 4531 of file marray.hxx.

template<class E, class T>
const T& andres::ViewExpression< E, T >::operator[] ( const std::size_t  offset) const
inline

Definition at line 4533 of file marray.hxx.

template<class E, class T>
template<class Tv , bool isConst, class A >
bool andres::ViewExpression< E, T >::overlaps ( const View< Tv, isConst, A > &  v) const
inline

Definition at line 4516 of file marray.hxx.

template<class E, class T>
const std::size_t andres::ViewExpression< E, T >::shape ( const std::size_t  j) const
inline

Reimplemented in andres::View< T, isConst, A >, and andres::View< T, false, A >.

Definition at line 4509 of file marray.hxx.

template<class E, class T>
const std::size_t* andres::ViewExpression< E, T >::shapeBegin ( ) const
inline

Reimplemented in andres::View< T, isConst, A >, and andres::View< T, false, A >.

Definition at line 4511 of file marray.hxx.

template<class E, class T>
const std::size_t* andres::ViewExpression< E, T >::shapeEnd ( ) const
inline

Reimplemented in andres::View< T, isConst, A >, and andres::View< T, false, A >.

Definition at line 4513 of file marray.hxx.

template<class E, class T>
const std::size_t andres::ViewExpression< E, T >::size ( ) const
inline

Reimplemented in andres::View< T, isConst, A >, and andres::View< T, false, A >.

Definition at line 4507 of file marray.hxx.