Nektar++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Protected Attributes | List of all members
Nektar::Array< ThreeD, const DataType > Class Template Reference

3D array with garbage collection and bounds checking. More...

#include <SharedArray.hpp>

Inheritance diagram for Nektar::Array< ThreeD, const DataType >:
Inheritance graph
[legend]

Public Types

typedef boost::multi_array_ref
< DataType, 3 > 
ArrayType
typedef ArrayType::const_reference const_reference
typedef ArrayType::reference reference
typedef ArrayType::index index
typedef ArrayType::const_iterator const_iterator
typedef ArrayType::iterator iterator
typedef ArrayType::element element
typedef ArrayType::size_type size_type

Public Member Functions

 Array ()
 Array (unsigned int dim1Size, unsigned int dim2Size, unsigned int dim3Size)
 Constructs a 3 dimensional array. The elements of the array are not initialized.
 Array (unsigned int dim1Size, unsigned int dim2Size, unsigned int dim3Size, const DataType &initValue)
 Array (const Array< ThreeD, const DataType > &rhs)
Array< ThreeD, const DataType > & operator= (const Array< ThreeD, const DataType > &rhs)
const_iterator begin () const
const_iterator end () const
const_reference operator[] (index i) const
const elementget () const
const elementdata () const
size_type num_dimensions () const
const size_typeshape () const
size_type num_elements () const

Protected Attributes

boost::shared_ptr< ArrayTypem_data

Detailed Description

template<typename DataType>
class Nektar::Array< ThreeD, const DataType >

3D array with garbage collection and bounds checking.

Definition at line 397 of file SharedArray.hpp.

Member Typedef Documentation

template<typename DataType >
typedef boost::multi_array_ref<DataType, 3> Nektar::Array< ThreeD, const DataType >::ArrayType

Definition at line 400 of file SharedArray.hpp.

template<typename DataType >
typedef ArrayType::const_iterator Nektar::Array< ThreeD, const DataType >::const_iterator

Definition at line 405 of file SharedArray.hpp.

template<typename DataType >
typedef ArrayType::const_reference Nektar::Array< ThreeD, const DataType >::const_reference

Definition at line 401 of file SharedArray.hpp.

template<typename DataType >
typedef ArrayType::element Nektar::Array< ThreeD, const DataType >::element

Definition at line 408 of file SharedArray.hpp.

template<typename DataType >
typedef ArrayType::index Nektar::Array< ThreeD, const DataType >::index

Definition at line 404 of file SharedArray.hpp.

template<typename DataType >
typedef ArrayType::iterator Nektar::Array< ThreeD, const DataType >::iterator

Definition at line 406 of file SharedArray.hpp.

template<typename DataType >
typedef ArrayType::reference Nektar::Array< ThreeD, const DataType >::reference

Definition at line 402 of file SharedArray.hpp.

template<typename DataType >
typedef ArrayType::size_type Nektar::Array< ThreeD, const DataType >::size_type

Definition at line 409 of file SharedArray.hpp.

Constructor & Destructor Documentation

template<typename DataType >
Nektar::Array< ThreeD, const DataType >::Array ( )
inline

Reimplemented in Nektar::Array< ThreeD, DataType >.

Definition at line 414 of file SharedArray.hpp.

:
m_data(CreateStorage<DataType>(0, 0, 0))
{
}
template<typename DataType >
Nektar::Array< ThreeD, const DataType >::Array ( unsigned int  dim1Size,
unsigned int  dim2Size,
unsigned int  dim3Size 
)
inline

Constructs a 3 dimensional array. The elements of the array are not initialized.

Reimplemented in Nektar::Array< ThreeD, DataType >.

Definition at line 420 of file SharedArray.hpp.

:
m_data(CreateStorage<DataType>(dim1Size, dim2Size, dim3Size))
{
ArrayInitializationPolicy<DataType>::Initialize(m_data->data(), m_data->num_elements());
}
template<typename DataType >
Nektar::Array< ThreeD, const DataType >::Array ( unsigned int  dim1Size,
unsigned int  dim2Size,
unsigned int  dim3Size,
const DataType &  initValue 
)
inline

Reimplemented in Nektar::Array< ThreeD, DataType >.

Definition at line 426 of file SharedArray.hpp.

:
m_data(CreateStorage<DataType>(dim1Size, dim2Size, dim3Size))
{
ArrayInitializationPolicy<DataType>::Initialize(m_data->data(), m_data->num_elements(), initValue);
}
template<typename DataType >
Nektar::Array< ThreeD, const DataType >::Array ( const Array< ThreeD, const DataType > &  rhs)
inline

Definition at line 432 of file SharedArray.hpp.

:
m_data(rhs.m_data)
{
}

Member Function Documentation

template<typename DataType >
const_iterator Nektar::Array< ThreeD, const DataType >::begin ( ) const
inline

Definition at line 443 of file SharedArray.hpp.

{ return m_data->begin(); }
template<typename DataType >
const element* Nektar::Array< ThreeD, const DataType >::data ( ) const
inline

Definition at line 447 of file SharedArray.hpp.

{ return m_data->data(); }
template<typename DataType >
const_iterator Nektar::Array< ThreeD, const DataType >::end ( ) const
inline

Definition at line 444 of file SharedArray.hpp.

{ return m_data->end(); }
template<typename DataType >
const element* Nektar::Array< ThreeD, const DataType >::get ( ) const
inline

Definition at line 446 of file SharedArray.hpp.

{ return m_data->data(); }
template<typename DataType >
size_type Nektar::Array< ThreeD, const DataType >::num_dimensions ( ) const
inline

Definition at line 448 of file SharedArray.hpp.

{ return m_data->num_dimensions(); }
template<typename DataType >
size_type Nektar::Array< ThreeD, const DataType >::num_elements ( ) const
inline

Definition at line 450 of file SharedArray.hpp.

{ return m_data->num_elements(); }
template<typename DataType >
Array<ThreeD, const DataType>& Nektar::Array< ThreeD, const DataType >::operator= ( const Array< ThreeD, const DataType > &  rhs)
inline

Definition at line 437 of file SharedArray.hpp.

References m_data.

{
m_data = rhs.m_data;
return *this;
}
template<typename DataType >
const_reference Nektar::Array< ThreeD, const DataType >::operator[] ( index  i) const
inline

Definition at line 445 of file SharedArray.hpp.

{ return (*m_data)[i]; }
template<typename DataType >
const size_type* Nektar::Array< ThreeD, const DataType >::shape ( ) const
inline

Definition at line 449 of file SharedArray.hpp.

{ return m_data->shape(); }

Member Data Documentation

template<typename DataType >
boost::shared_ptr<ArrayType> Nektar::Array< ThreeD, const DataType >::m_data
protected

Definition at line 453 of file SharedArray.hpp.

Referenced by operator=().