ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
NDArray< DataType > Struct Template Reference

#include <ERF_NCWpsFile.H>

Collaboration diagram for NDArray< DataType >:

Public Types

using DType = typename std::remove_const< DataType >::type
 

Public Member Functions

 NDArray (const std::string vname, const std::vector< size_t > &vshape)
 
 NDArray ()
 
decltype(auto) get_data ()
 
std::string get_vname ()
 
std::vector< size_t > get_vshape ()
 
size_t ndim ()
 
void set_vshape (std::vector< size_t > vshape)
 

Private Attributes

std::string name
 
std::vector< size_t > shape
 
std::shared_ptr< DType[]> data
 

Member Typedef Documentation

◆ DType

template<typename DataType >
using NDArray< DataType >::DType = typename std::remove_const<DataType>::type

Constructor & Destructor Documentation

◆ NDArray() [1/2]

template<typename DataType >
NDArray< DataType >::NDArray ( const std::string  vname,
const std::vector< size_t > &  vshape 
)
inlineexplicit
57  : name{vname}, shape{vshape},
58  data{std::shared_ptr<DType[]>(new DType[this->ndim()],
59  std::default_delete<DType[]>())} {}
std::string name
Definition: ERF_NCWpsFile.H:93
std::shared_ptr< DType[]> data
Definition: ERF_NCWpsFile.H:95
size_t ndim()
Definition: ERF_NCWpsFile.H:80
typename std::remove_const< DataType >::type DType
Definition: ERF_NCWpsFile.H:53
std::vector< size_t > shape
Definition: ERF_NCWpsFile.H:94

◆ NDArray() [2/2]

template<typename DataType >
NDArray< DataType >::NDArray ( )
inline
62 : name{"null"}, data{nullptr} {}

Member Function Documentation

◆ get_data()

template<typename DataType >
decltype(auto) NDArray< DataType >::get_data ( )
inline
65  {
66  return data.get();
67  }

◆ get_vname()

template<typename DataType >
std::string NDArray< DataType >::get_vname ( )
inline
70  {
71  return name;
72  }

◆ get_vshape()

template<typename DataType >
std::vector<size_t> NDArray< DataType >::get_vshape ( )
inline
75  {
76  return shape;
77  }

◆ ndim()

template<typename DataType >
size_t NDArray< DataType >::ndim ( )
inline
80  {
81  size_t num = 1;
82  int isize = static_cast<int>(shape.size());
83  for (auto i=0; i<isize; ++i) num *= shape[i];
84  return num;
85  }
@ num
Definition: ERF_DataStruct.H:24

◆ set_vshape()

template<typename DataType >
void NDArray< DataType >::set_vshape ( std::vector< size_t >  vshape)
inline
88  {
89  shape = vshape;
90  }

Member Data Documentation

◆ data

template<typename DataType >
std::shared_ptr<DType[]> NDArray< DataType >::data
private

◆ name

template<typename DataType >
std::string NDArray< DataType >::name
private

◆ shape

template<typename DataType >
std::vector<size_t> NDArray< DataType >::shape
private

The documentation for this struct was generated from the following file: