Nektar++
Public Types | Public Member Functions | Protected Attributes | List of all members
Nektar::Array< TwoD, const DataType > Class Template Reference

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

#include <SharedArray.hpp>

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

Public Types

typedef boost::multi_array_ref< DataType, 2 > 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 (size_type dim1Size, size_type dim2Size)
 Constructs a 2 dimensional array. The elements of the array are not initialized. More...
 
 Array (size_type dim1Size, size_type dim2Size, const DataType &initValue)
 
 Array (size_type dim1Size, size_type dim2Size, const DataType *data)
 
 Array (const Array< TwoD, const DataType > &rhs)
 
Array< TwoD, const DataType > & operator= (const Array< TwoD, 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 size () const
 
size_type num_elements () const
 
size_type GetRows () const
 
size_type GetColumns () const
 

Protected Attributes

std::shared_ptr< ArrayTypem_data
 

Detailed Description

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

2D array with garbage collection and bounds checking.

Definition at line 453 of file SharedArray.hpp.

Member Typedef Documentation

◆ ArrayType

template<typename DataType >
typedef boost::multi_array_ref<DataType, 2> Nektar::Array< TwoD, const DataType >::ArrayType

Definition at line 456 of file SharedArray.hpp.

◆ const_iterator

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

Definition at line 462 of file SharedArray.hpp.

◆ const_reference

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

Definition at line 458 of file SharedArray.hpp.

◆ element

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

Definition at line 465 of file SharedArray.hpp.

◆ index

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

Definition at line 461 of file SharedArray.hpp.

◆ iterator

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

Definition at line 463 of file SharedArray.hpp.

◆ reference

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

Definition at line 459 of file SharedArray.hpp.

◆ size_type

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

Definition at line 466 of file SharedArray.hpp.

Constructor & Destructor Documentation

◆ Array() [1/5]

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

Definition at line 469 of file SharedArray.hpp.

469 : m_data(CreateStorage<DataType>(0, 0))
470 {
471 }
std::shared_ptr< ArrayType > m_data

◆ Array() [2/5]

template<typename DataType >
Nektar::Array< TwoD, const DataType >::Array ( size_type  dim1Size,
size_type  dim2Size 
)
inline

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

Definition at line 475 of file SharedArray.hpp.

476 : m_data(CreateStorage<DataType>(dim1Size, dim2Size))
477 {
478 ArrayInitializationPolicy<DataType>::Initialize(m_data->data(),
479 m_data->num_elements());
480 }

◆ Array() [3/5]

template<typename DataType >
Nektar::Array< TwoD, const DataType >::Array ( size_type  dim1Size,
size_type  dim2Size,
const DataType &  initValue 
)
inline

Definition at line 482 of file SharedArray.hpp.

483 : m_data(CreateStorage<DataType>(dim1Size, dim2Size))
484 {
485 ArrayInitializationPolicy<DataType>::Initialize(
486 m_data->data(), m_data->num_elements(), initValue);
487 }

◆ Array() [4/5]

template<typename DataType >
Nektar::Array< TwoD, const DataType >::Array ( size_type  dim1Size,
size_type  dim2Size,
const DataType *  data 
)
inline

Definition at line 489 of file SharedArray.hpp.

490 : m_data(CreateStorage<DataType>(dim1Size, dim2Size))
491 {
492 ArrayInitializationPolicy<DataType>::Initialize(
493 m_data->data(), m_data->num_elements(), data);
494 }

◆ Array() [5/5]

template<typename DataType >
Nektar::Array< TwoD, const DataType >::Array ( const Array< TwoD, const DataType > &  rhs)
inline

Definition at line 496 of file SharedArray.hpp.

496 : m_data(rhs.m_data)
497 {
498 }

Member Function Documentation

◆ begin()

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

Definition at line 507 of file SharedArray.hpp.

508 {
509 return m_data->begin();
510 }

◆ data()

template<typename DataType >
const element * Nektar::Array< TwoD, const DataType >::data ( ) const
inline

Definition at line 523 of file SharedArray.hpp.

524 {
525 return m_data->data();
526 }

◆ end()

template<typename DataType >
const_iterator Nektar::Array< TwoD, const DataType >::end ( ) const
inline

Definition at line 511 of file SharedArray.hpp.

512 {
513 return m_data->end();
514 }

◆ get()

template<typename DataType >
const element * Nektar::Array< TwoD, const DataType >::get ( ) const
inline

Definition at line 519 of file SharedArray.hpp.

520 {
521 return m_data->data();
522 }

◆ GetColumns()

template<typename DataType >
size_type Nektar::Array< TwoD, const DataType >::GetColumns ( ) const
inline

Definition at line 553 of file SharedArray.hpp.

554 {
555 return m_data->shape()[1];
556 }

◆ GetRows()

template<typename DataType >
size_type Nektar::Array< TwoD, const DataType >::GetRows ( ) const
inline

Definition at line 549 of file SharedArray.hpp.

550 {
551 return m_data->shape()[0];
552 }

◆ num_dimensions()

template<typename DataType >
size_type Nektar::Array< TwoD, const DataType >::num_dimensions ( ) const
inline

Definition at line 527 of file SharedArray.hpp.

528 {
529 return m_data->num_dimensions();
530 }

◆ num_elements()

template<typename DataType >
size_type Nektar::Array< TwoD, const DataType >::num_elements ( ) const
inline

Definition at line 541 of file SharedArray.hpp.

543 {
544 WARNINGL1(false, "member function num_elements() is deprecated, "
545 "use size() instead.");
546 return m_data->num_elements();
547 }
#define WARNINGL1(condition, msg)
Definition: ErrorUtil.hpp:243

References WARNINGL1.

◆ operator=()

template<typename DataType >
Array< TwoD, const DataType > & Nektar::Array< TwoD, const DataType >::operator= ( const Array< TwoD, const DataType > &  rhs)
inline

Definition at line 500 of file SharedArray.hpp.

502 {
503 m_data = rhs.m_data;
504 return *this;
505 }

References m_data.

◆ operator[]()

template<typename DataType >
const_reference Nektar::Array< TwoD, const DataType >::operator[] ( index  i) const
inline

Definition at line 515 of file SharedArray.hpp.

516 {
517 return (*m_data)[i];
518 }

◆ shape()

template<typename DataType >
const size_type * Nektar::Array< TwoD, const DataType >::shape ( ) const
inline

Definition at line 531 of file SharedArray.hpp.

532 {
533 return m_data->shape();
534 }

◆ size()

template<typename DataType >
size_type Nektar::Array< TwoD, const DataType >::size ( ) const
inline

Definition at line 536 of file SharedArray.hpp.

537 {
538 return m_data->num_elements();
539 }

Member Data Documentation

◆ m_data

template<typename DataType >
std::shared_ptr<ArrayType> Nektar::Array< TwoD, const DataType >::m_data
protected

Definition at line 559 of file SharedArray.hpp.

Referenced by operator=().