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. More...
 
 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

Definition at line 414 of file SharedArray.hpp.

414  :
415  m_data(CreateStorage<DataType>(0, 0, 0))
416  {
417  }
boost::shared_ptr< ArrayType > m_data
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.

Definition at line 420 of file SharedArray.hpp.

420  :
421  m_data(CreateStorage<DataType>(dim1Size, dim2Size, dim3Size))
422  {
423  ArrayInitializationPolicy<DataType>::Initialize(m_data->data(), m_data->num_elements());
424  }
boost::shared_ptr< ArrayType > m_data
template<typename DataType >
Nektar::Array< ThreeD, const DataType >::Array ( unsigned int  dim1Size,
unsigned int  dim2Size,
unsigned int  dim3Size,
const DataType &  initValue 
)
inline

Definition at line 426 of file SharedArray.hpp.

426  :
427  m_data(CreateStorage<DataType>(dim1Size, dim2Size, dim3Size))
428  {
429  ArrayInitializationPolicy<DataType>::Initialize(m_data->data(), m_data->num_elements(), initValue);
430  }
boost::shared_ptr< ArrayType > m_data
template<typename DataType >
Nektar::Array< ThreeD, const DataType >::Array ( const Array< ThreeD, const DataType > &  rhs)
inline

Definition at line 432 of file SharedArray.hpp.

432  :
433  m_data(rhs.m_data)
434  {
435  }
boost::shared_ptr< ArrayType > 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.

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

Definition at line 447 of file SharedArray.hpp.

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

Definition at line 444 of file SharedArray.hpp.

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

Definition at line 446 of file SharedArray.hpp.

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

Definition at line 448 of file SharedArray.hpp.

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

Definition at line 450 of file SharedArray.hpp.

450 { return m_data->num_elements(); }
boost::shared_ptr< ArrayType > m_data
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.

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

Definition at line 445 of file SharedArray.hpp.

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

Definition at line 449 of file SharedArray.hpp.

449 { return m_data->shape(); }
boost::shared_ptr< ArrayType > m_data

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=().