31 #ifndef MERCURYDPM_NUMERICALVECTOR_H_
32 #define MERCURYDPM_NUMERICALVECTOR_H_
42 template<
typename T = M
double>
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];
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];
118 for (
T& d : result.data_)
126 logger.assert_debug(
data_.size() == right.
data_.size(),
"Vectors don't have equal length.");
128 for (std::size_t
i = 0;
i <
data_.size();
i++)
144 return (result /= right);
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++)
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++)
174 logger.assert_debug(
n <
data_.size(),
"Requested entry %, but there are only % entries",
n,
data_.size());
180 logger.assert_debug(
n <
data_.size(),
"Requested entry %, but there are only % entries",
n,
data_.size());
186 logger.assert_debug(
n <
data_.size(),
"Requested entry %, but there are only % entries",
n,
data_.size());
192 logger.assert_debug(
n <
data_.size(),
"Requested entry %, but there are only % entries",
n,
data_.size());
217 template<
typename T = M
double>
220 template<
typename T = M
double>
223 template<
typename T = M
double>
int i
Definition: BiCGSTAB_step_by_step.cpp:9
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.
NumericalVector< T > operator-(const NumericalVector< T > &right)
Matrix< SCALARA, Dynamic, Dynamic, opt_A > A
Definition: bench_gemm.cpp:47
std::ostream & operator<<(std::ostream &s, const DenseBase< Derived > &m)
Definition: IO.h:222
This is a vector of doubles.
Definition: NumericalVector.h:44
NumericalVector()
Definition: NumericalVector.h:47
NumericalVector< T > & operator/=(const T &right)
Definition: NumericalVector.h:133
NumericalVector< T > & operator=(const NumericalVector< T > &right)
Definition: NumericalVector.h:85
NumericalVector< T > & operator=(const std::initializer_list< T > l)
Definition: NumericalVector.h:91
NumericalVector(std::size_t m)
Definition: NumericalVector.h:52
void resize(std::size_t size)
Definition: NumericalVector.h:77
const T & operator()(std::size_t n) const
Definition: NumericalVector.h:190
T & operator()(std::size_t n)
Definition: NumericalVector.h:184
T operator*(const NumericalVector &right) const
Definition: NumericalVector.h:124
NumericalVector< T > & operator-=(const NumericalVector< T > &right)
Definition: NumericalVector.h:157
NumericalVector< T > operator-(const NumericalVector< T > &right) const
Definition: NumericalVector.h:106
NumericalVector(const NumericalVector &other)
Definition: NumericalVector.h:62
std::size_t size() const
Definition: NumericalVector.h:196
T * data()
Definition: NumericalVector.h:206
NumericalVector< T > & operator+=(const NumericalVector< T > &right)
Definition: NumericalVector.h:148
NumericalVector(NumericalVector &&other)
Definition: NumericalVector.h:67
NumericalVector< T > operator/(const T &right) const
Definition: NumericalVector.h:141
const T * data() const
Definition: NumericalVector.h:201
NumericalVector(const T array[], std::size_t size)
Definition: NumericalVector.h:72
std::vector< T > data_
Definition: NumericalVector.h:212
NumericalVector< T > operator+(const NumericalVector< T > &right) const
Definition: NumericalVector.h:97
T & operator[](std::size_t n)
Definition: NumericalVector.h:172
NumericalVector< T > operator*(const T &right) const
Definition: NumericalVector.h:115
const T & operator[](std::size_t n) const
Definition: NumericalVector.h:178
NumericalVector< T > & operator*=(const T &right)
Definition: NumericalVector.h:165
NumericalVector(std::initializer_list< T > l)
Definition: NumericalVector.h:57
int * m
Definition: level2_cplx_impl.h:294
std::array< T, N > array
Definition: EmulateArray.h:231