NumericalVector< T > Class Template Reference

#include <NumericalVector.h>

Public Member Functions

 NumericalVector ()
 
 NumericalVector (std::size_t m)
 
 NumericalVector (std::initializer_list< T > l)
 
 NumericalVector (const NumericalVector &other)
 
 NumericalVector (NumericalVector &&other)
 
 NumericalVector (const T array[], std::size_t size)
 
void resize (std::size_t size)
 
NumericalVector< T > & operator= (const NumericalVector< T > &right)
 
NumericalVector< T > & operator= (const std::initializer_list< T > l)
 
NumericalVector< Toperator+ (const NumericalVector< T > &right) const
 
NumericalVector< Toperator- (const NumericalVector< T > &right) const
 
NumericalVector< Toperator* (const T &right) const
 
T operator* (const NumericalVector &right) const
 
NumericalVector< T > & operator/= (const T &right)
 
NumericalVector< Toperator/ (const T &right) const
 
NumericalVector< T > & operator+= (const NumericalVector< T > &right)
 
NumericalVector< T > & operator-= (const NumericalVector< T > &right)
 
NumericalVector< T > & operator*= (const T &right)
 
Toperator[] (std::size_t n)
 
const Toperator[] (std::size_t n) const
 
Toperator() (std::size_t n)
 
const Toperator() (std::size_t n) const
 
std::size_t size () const
 
const Tdata () const
 
Tdata ()
 

Private Attributes

std::vector< Tdata_
 

Constructor & Destructor Documentation

◆ NumericalVector() [1/6]

template<typename T = Mdouble>
NumericalVector< T >::NumericalVector ( )
inline
48  : data_()
49  {
50  }
std::vector< T > data_
Definition: NumericalVector.h:212

◆ NumericalVector() [2/6]

template<typename T = Mdouble>
NumericalVector< T >::NumericalVector ( std::size_t  m)
inlineexplicit
53  : data_(m)
54  {
55  }
int * m
Definition: level2_cplx_impl.h:294

◆ NumericalVector() [3/6]

template<typename T = Mdouble>
NumericalVector< T >::NumericalVector ( std::initializer_list< T l)
inline
58  : data_(l)
59  {
60  }

◆ NumericalVector() [4/6]

template<typename T = Mdouble>
NumericalVector< T >::NumericalVector ( const NumericalVector< T > &  other)
inline
63  : data_(other.data_)
64  {
65  }

◆ NumericalVector() [5/6]

template<typename T = Mdouble>
NumericalVector< T >::NumericalVector ( NumericalVector< T > &&  other)
inline
68  : data_(std::move(other.data_))
69  {
70  }

◆ NumericalVector() [6/6]

template<typename T = Mdouble>
NumericalVector< T >::NumericalVector ( const T  array[],
std::size_t  size 
)
inline
73  : data_(array, array + size)
74  {
75  }
std::size_t size() const
Definition: NumericalVector.h:196
std::array< T, N > array
Definition: EmulateArray.h:231

Member Function Documentation

◆ data() [1/2]

◆ data() [2/2]

◆ operator()() [1/2]

template<typename T = Mdouble>
T& NumericalVector< T >::operator() ( std::size_t  n)
inline
185  {
186  logger.assert_debug(n < data_.size(), "Requested entry %, but there are only % entries", n, data_.size());
187  return data_[n];
188  }
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
Logger< MERCURYDPM_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.

References NumericalVector< T >::data_, logger, and n.

◆ operator()() [2/2]

template<typename T = Mdouble>
const T& NumericalVector< T >::operator() ( std::size_t  n) const
inline
191  {
192  logger.assert_debug(n < data_.size(), "Requested entry %, but there are only % entries", n, data_.size());
193  return data_[n];
194  }

References NumericalVector< T >::data_, logger, and n.

◆ operator*() [1/2]

template<typename T = Mdouble>
T NumericalVector< T >::operator* ( const NumericalVector< T > &  right) const
inline
125  {
126  logger.assert_debug(data_.size() == right.data_.size(), "Vectors don't have equal length.");
127  T sum = 0;
128  for (std::size_t i = 0; i < data_.size(); i++)
129  sum += data_[i] * right.data_[i];
130  return sum;
131  }
int i
Definition: BiCGSTAB_step_by_step.cpp:9

References NumericalVector< T >::data_, i, and logger.

◆ operator*() [2/2]

template<typename T = Mdouble>
NumericalVector<T> NumericalVector< T >::operator* ( const T right) const
inline
116  {
117  NumericalVector<T> result(*this);
118  for (T& d : result.data_)
119  d *= right;
120  return result;
121  }
This is a vector of doubles.

◆ operator*=()

template<typename T = Mdouble>
NumericalVector<T>& NumericalVector< T >::operator*= ( const T right)
inline
166  {
167  for (T& d : data_)
168  d *= right;
169  return *this;
170  }

References NumericalVector< T >::data_.

◆ operator+()

template<typename T = Mdouble>
NumericalVector<T> NumericalVector< T >::operator+ ( const NumericalVector< T > &  right) const
inline
98  {
99  NumericalVector<T> result(*this);
100  logger.assert_debug(data_.size() == right.data_.size(), "Vectors don't have the same size");
101  for (std::size_t i = 0; i < data_.size(); i++)
102  result.data_[i] += right.data_[i];
103  return result;
104  }

References NumericalVector< T >::data_, i, and logger.

◆ operator+=()

template<typename T = Mdouble>
NumericalVector<T>& NumericalVector< T >::operator+= ( const NumericalVector< T > &  right)
inline
149  {
150  logger.assert_debug(data_.size() == right.data_.size(), "Vectors don't have the same size");
151  for (std::size_t i = 0; i < data_.size(); i++)
152  data_[i] += right.data_[i];
153  return *this;
154  }

References NumericalVector< T >::data_, i, and logger.

◆ operator-()

template<typename T = Mdouble>
NumericalVector<T> NumericalVector< T >::operator- ( const NumericalVector< T > &  right) const
inline
107  {
108  NumericalVector<T> result(*this);
109  logger.assert_debug(data_.size() == right.data_.size(), "Vectors don't have the same size");
110  for (std::size_t i = 0; i < data_.size(); i++)
111  result.data_[i] -= right.data_[i];
112  return result;
113  }

References NumericalVector< T >::data_, i, and logger.

◆ operator-=()

template<typename T = Mdouble>
NumericalVector<T>& NumericalVector< T >::operator-= ( const NumericalVector< T > &  right)
inline
158  {
159  logger.assert_debug(data_.size() == right.data_.size(), "Vectors don't have the same size");
160  for (std::size_t i = 0; i < data_.size(); i++)
161  data_[i] -= right.data_[i];
162  return *this;
163  }

References NumericalVector< T >::data_, i, and logger.

◆ operator/()

template<typename T = Mdouble>
NumericalVector<T> NumericalVector< T >::operator/ ( const T right) const
inline
142  {
143  NumericalVector<T> result(*this);
144  return (result /= right);
145 
146  }

◆ operator/=()

template<typename T = Mdouble>
NumericalVector<T>& NumericalVector< T >::operator/= ( const T right)
inline
134  {
135  for (T& d : data_)
136  d /= right;
137 
138  return *this;
139  }

References NumericalVector< T >::data_.

◆ operator=() [1/2]

template<typename T = Mdouble>
NumericalVector<T>& NumericalVector< T >::operator= ( const NumericalVector< T > &  right)
inline
86  {
87  data_ = right.data_;
88  return *this;
89  }

References NumericalVector< T >::data_.

◆ operator=() [2/2]

template<typename T = Mdouble>
NumericalVector<T>& NumericalVector< T >::operator= ( const std::initializer_list< T l)
inline
92  {
93  data_ = l;
94  return *this;
95  }

References NumericalVector< T >::data_.

◆ operator[]() [1/2]

template<typename T = Mdouble>
T& NumericalVector< T >::operator[] ( std::size_t  n)
inline
173  {
174  logger.assert_debug(n < data_.size(), "Requested entry %, but there are only % entries", n, data_.size());
175  return data_[n];
176  }

References NumericalVector< T >::data_, logger, and n.

◆ operator[]() [2/2]

template<typename T = Mdouble>
const T& NumericalVector< T >::operator[] ( std::size_t  n) const
inline
179  {
180  logger.assert_debug(n < data_.size(), "Requested entry %, but there are only % entries", n, data_.size());
181  return data_[n];
182  }

References NumericalVector< T >::data_, logger, and n.

◆ resize()

template<typename T = Mdouble>
void NumericalVector< T >::resize ( std::size_t  size)
inline
78  {
79  if (size != data_.size())
80  {
81  data_.resize(size);
82  }
83  }

References NumericalVector< T >::data_, and NumericalVector< T >::size().

◆ size()

template<typename T = Mdouble>
std::size_t NumericalVector< T >::size ( ) const
inline
197  {
198  return data_.size();
199  }

References NumericalVector< T >::data_.

Referenced by NumericalVector< T >::resize().

Member Data Documentation

◆ data_


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