CortidQCT  1.2.2.52
DiscreteRangeDecorators.h
Go to the documentation of this file.
1 
13 #include "DiscreteRange.h"
14 
15 #include <Eigen/Core>
16 #include <gsl/gsl>
17 
18 namespace CortidQCT {
19 namespace Internal {
20 
26 template <class T>
27 Eigen::Matrix<T, Eigen::Dynamic, 1>
29  using Vector = Eigen::Matrix<T, Eigen::Dynamic, 1>;
30 
31  Vector t(gsl::narrow<Eigen::Index>(range.numElements()));
32 
33  for (auto i = 0; i < t.rows(); ++i) {
34  t(i) = range.min + static_cast<T>(i) * range.stride;
35  }
36 
37  return t;
38 }
39 
40 } // namespace Internal
41 } // namespace CortidQCT
Name namespace for CortidQCT library.
Definition: CortidQCT.h:23
Type representing a discrete closed, stridable range.
Definition: DiscreteRange.h:26
value_type stride
stride, i.e. distance between two consecutive elements
Definition: DiscreteRange.h:35
Eigen::Matrix< T, Eigen::Dynamic, 1 > discreteRangeElementVector(DiscreteRange< T > const &range)
Returns all element of the given discrete range as a vector.
Definition: DiscreteRangeDecorators.h:28
constexpr std::size_t numElements() const noexcept
Returns the number of elements in the range.
Definition: DiscreteRange.h:52
This header contains the definition of the DiscreteRange template.
value_type min
minimum element
Definition: DiscreteRange.h:31