Nektar++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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 398 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 401 of file SharedArray.hpp.

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

Definition at line 406 of file SharedArray.hpp.

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

Definition at line 402 of file SharedArray.hpp.

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

Definition at line 409 of file SharedArray.hpp.

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

Definition at line 405 of file SharedArray.hpp.

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

Definition at line 407 of file SharedArray.hpp.

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

Definition at line 403 of file SharedArray.hpp.

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

Definition at line 410 of file SharedArray.hpp.

Constructor & Destructor Documentation

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

Definition at line 415 of file SharedArray.hpp.

415  :
416  m_data(CreateStorage<DataType>(0, 0, 0))
417  {
418  }
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 421 of file SharedArray.hpp.

421  :
422  m_data(CreateStorage<DataType>(dim1Size, dim2Size, dim3Size))
423  {
424  ArrayInitializationPolicy<DataType>::Initialize(m_data->data(), m_data->num_elements());
425  }
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 427 of file SharedArray.hpp.

427  :
428  m_data(CreateStorage<DataType>(dim1Size, dim2Size, dim3Size))
429  {
430  ArrayInitializationPolicy<DataType>::Initialize(m_data->data(), m_data->num_elements(), initValue);
431  }
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 433 of file SharedArray.hpp.

433  :
434  m_data(rhs.m_data)
435  {
436  }
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 444 of file SharedArray.hpp.

444 { 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 448 of file SharedArray.hpp.

448 { 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 445 of file SharedArray.hpp.

445 { 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 447 of file SharedArray.hpp.

447 { 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 449 of file SharedArray.hpp.

449 { 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 451 of file SharedArray.hpp.

451 { 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 438 of file SharedArray.hpp.

References m_data.

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

Definition at line 446 of file SharedArray.hpp.

446 { 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 450 of file SharedArray.hpp.

450 { 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 454 of file SharedArray.hpp.

Referenced by operator=().