time_series.h Source File
|
CPP API
|
time_series.h
Go to the documentation of this file.
116 assert(table.size() > 0 && "At least one entry is required to determine the number of elements.");
482 return {const_reverse_time_iterator{time_range.end()}, const_reverse_time_iterator{time_range.begin()}};
512 void print_table(std::ostream& out, const std::vector<std::string>& column_labels = {}, size_t width = 16,
515 // Note: input manipulators (like std::setw, std::left) are consumed by the first argument written to the stream
543 void print_table(const std::vector<std::string>& column_labels = {}, size_t width = 16, size_t precision = 5,
564 IOResult<void> export_csv(const std::string& filename, const std::vector<std::string>& column_labels = {},
569 return mio::failure(mio::StatusCode::FileNotFound, "Failed to export TimeSeries as CSV to " + filename);
637 //https://stackoverflow.com/questions/1322510/given-an-integer-how-do-i-find-the-next-largest-power-of-two-using-bit-twiddlin
666 decltype(std::declval<MatrixPtr>()->col(std::declval<Eigen::Index>()).tail(std::declval<Eigen::Index>()));
835 : public details::TimeSeriesIteratorBase<TimeSeriesValueIterator<FP, IsConstIter>, FP, IsConstIter,
867 : public details::TimeSeriesIteratorBase<TimeSeriesTimeIterator<FP, IsConstIter>, FP, IsConstIter,
905 decltype(std::declval<TS>().rend()) find_value_reverse(TS&& ts, FP t_search, FP abs_tol = 0, FP rel_tol = 0)
907 auto iter_t = find_if(ts.get_reverse_times().begin(), ts.get_reverse_times().end(), [=](auto t) {
Iterate over vector values of a time series by time point.
Definition: time_series.h:870
typename Base::value_type value_type
Definition: time_series.h:887
typename Base::iterator_category iterator_category
Definition: time_series.h:884
typename Base::difference_type difference_type
Definition: time_series.h:885
reference get_reference() const
Definition: time_series.h:890
typename Base::reference reference
Definition: time_series.h:886
Iterate over vector values of a time series by time point.
Definition: time_series.h:838
typename Base::iterator_category iterator_category
Definition: time_series.h:852
reference get_reference() const
Definition: time_series.h:858
typename Base::reference reference
Definition: time_series.h:854
typename Base::value_type value_type
Definition: time_series.h:855
typename Base::difference_type difference_type
Definition: time_series.h:853
stores vectors of values at time points (or some other abstract variable) the value at each time poin...
Definition: time_series.h:58
void reserve(Eigen::Index n)
reserve capacity for n time points
Definition: time_series.h:332
std::reverse_iterator< const_iterator > const_reverse_iterator
Definition: time_series.h:74
auto matrix() const
Matrix expression that contains one time point per column.
Definition: time_series.h:375
TimeSeries & operator=(const TimeSeries &other)
copy assignment
Definition: time_series.h:162
Range< const_reverse_time_iterator > get_const_reverse_times() const
Definition: time_series.h:479
Eigen::Ref< Vector > get_value(Eigen::Index i)
Definition: time_series.h:303
Eigen::Index m_num_time_points
number of time points (i.e.
Definition: time_series.h:629
Eigen::Ref< Vector > add_time_point(FP t, Expr &&expr)
add one time point.
Definition: time_series.h:244
Eigen::Ref< const Vector > get_value(Eigen::Index i) const
reference to value vector at time point i
Definition: time_series.h:298
typename iterator::difference_type difference_type
Definition: time_series.h:72
void print_table(const std::vector< std::string > &column_labels={}, size_t width=16, size_t precision=5, char separator=' ', const std::string header_prefix="\n") const
Print out the TimeSeries as a table.
Definition: time_series.h:543
void remove_time_point(Eigen::Index i)
remove time point.
Definition: time_series.h:255
TimeSeries(std::vector< std::vector< FP >> table)
Initialize a TimeSeries with a table.
Definition: time_series.h:111
Range< const_reverse_time_iterator > get_reverse_times() const
Definition: time_series.h:474
static IOResult< TimeSeries > deserialize(IOContext &io)
Definition: time_series.h:593
Eigen::Matrix< FP, Eigen::Dynamic, 1 > Vector
base type of expressions of vector values at a time point
Definition: time_series.h:63
TimeSeries(Eigen::Index num_elements)
initialize empty TimeSeries.
Definition: time_series.h:82
Eigen::Index get_capacity() const
current capacity
Definition: time_series.h:343
TimeSeries(FP t, Expr &&expr)
initialize TimeSeries with one time point.
Definition: time_series.h:97
friend void PrintTo(const TimeSeries &self, std::ostream *os)
print this object (googletest)
Definition: time_series.h:579
Eigen::Ref< const Vector > operator[](Eigen::Index i) const
Definition: time_series.h:308
static TimeSeries zero(Eigen::Index num_time_points, Eigen::Index num_elements)
constructs TimeSeries instance and initializes it with zeros
Definition: time_series.h:152
Eigen::Index get_num_elements() const
number of elements of vector at each time point
Definition: time_series.h:205
Eigen::Matrix< FP, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor > Matrix
type that stores the data
Definition: time_series.h:61
std::reverse_iterator< iterator > reverse_iterator
Definition: time_series.h:73
std::reverse_iterator< time_iterator > reverse_time_iterator
Definition: time_series.h:75
bool is_strictly_monotonic() const
Check if the time is strictly monotonic increasing.
Definition: time_series.h:185
TimeSeries & operator=(TimeSeries &&other)=default
Eigen::Ref< Vector > operator[](Eigen::Index i)
Definition: time_series.h:312
TimeSeries(const TimeSeries &other)
copy ctor
Definition: time_series.h:139
FP & get_last_time()
time of time point at index num_time_points - 1
Definition: time_series.h:286
Range< const_time_iterator > get_const_times() const
Definition: time_series.h:463
void print_table(std::ostream &out, const std::vector< std::string > &column_labels={}, size_t width=16, size_t precision=5, char separator=' ', const std::string header_prefix="\n") const
Print out the TimeSeries as a table.
Definition: time_series.h:512
auto matrix()
Matrix expression that contains one time point per column.
Definition: time_series.h:371
Eigen::Index get_num_time_points() const
number of time points in the series
Definition: time_series.h:197
IOResult< void > export_csv(const std::string &filename, const std::vector< std::string > &column_labels={}, char separator=',', int precision=6) const
Exports a TimeSeries object into a CSV file.
Definition: time_series.h:564
FP & get_time(Eigen::Index i)
time of time point at index i
Definition: time_series.h:272
Eigen::Index get_num_rows() const
number of rows in data storage (includes time)
Definition: time_series.h:213
Eigen::Ref< Vector > add_time_point(FP t)
add one time point.
Definition: time_series.h:231
Eigen::Ref< Vector > add_time_point()
add one uninitialized time point
Definition: time_series.h:221
Range< const_time_iterator > get_times() const
Definition: time_series.h:458
std::reverse_iterator< const_time_iterator > const_reverse_time_iterator
Definition: time_series.h:76
Range< reverse_time_iterator > get_reverse_times()
Definition: time_series.h:468
Eigen::Ref< const Vector > get_last_value() const
reference to value vector at time point (num_timepoints - 1)
Definition: time_series.h:320
auto get_valid_block()
currently occupied block of storage
Definition: time_series.h:617
base class for TimeSeries iterators that iterate by time point (i.e.
Definition: time_series.h:680
bool operator>=(const TimeSeriesIteratorBase &other) const
Definition: time_series.h:824
Derived operator+(difference_type i) const
Definition: time_series.h:736
std::ptrdiff_t difference_type
Definition: time_series.h:697
Derived & operator+=(difference_type i)
Definition: time_series.h:730
Derived operator-(difference_type i) const
Definition: time_series.h:756
bool operator>(const TimeSeriesIteratorBase &other) const
Definition: time_series.h:812
TimeSeriesIteratorBase()=default
bool operator!=(const TimeSeriesIteratorBase &other) const
Definition: time_series.h:800
bool operator<=(const TimeSeriesIteratorBase &other) const
Definition: time_series.h:818
reference operator*() const
Definition: time_series.h:714
pointer operator->() const
Definition: time_series.h:720
typename Traits::MatrixPtr MatrixPtr
Definition: time_series.h:683
reference operator[](difference_type i) const
Definition: time_series.h:725
bool operator==(const TimeSeriesIteratorBase &other) const
Definition: time_series.h:794
std::random_access_iterator_tag iterator_category
Definition: time_series.h:698
Derived operator--(int)
Definition: time_series.h:787
friend Derived operator+(difference_type i, const TimeSeriesIteratorBase &b)
Definition: time_series.h:743
TimeSeriesIteratorBase(MatrixPtr m, Eigen::Index col_idx=0)
Definition: time_series.h:690
Derived & operator-=(difference_type i)
Definition: time_series.h:750
bool operator<(const TimeSeriesIteratorBase &other) const
Definition: time_series.h:806
Derived operator++(int)
Definition: time_series.h:774
difference_type operator-(const TimeSeriesIteratorBase &other) const
Definition: time_series.h:763
Eigen::Index next_pow2(Eigen::Index i)
round an integer to the nearest greater power of 2
Definition: time_series.h:635
int size(Comm comm)
Return the size of the given communicator.
Definition: miompi.cpp:75
A collection of classes to simplify handling of matrix shapes in meta programming.
Definition: models/abm/analyze_result.h:30
auto failure(const IOStatus &s)
Create an object that is implicitly convertible to an error IOResult<T>.
Definition: io.h:380
@ FileNotFound
boost::outcome_v2::in_place_type_t< T > Tag
Type that is used for overload resolution.
Definition: io.h:407
decltype(std::declval< TS >().rend()) find_value_reverse(TS &&ts, FP t_search, FP abs_tol=0, FP rel_tol=0)
find the value in the time series at time t_search starting from the end.
Definition: time_series.h:905
details::ApplyResultT< F, T... > apply(IOContext &io, F f, const IOResult< T > &... rs)
Evaluate a function with zero or more unpacked IOResults as arguments.
Definition: io.h:481
auto success()
Create an object that is implicitly convertible to a succesful IOResult<void>.
Definition: io.h:359
std::ostream & set_ostream_format(std::ostream &out, size_t width, size_t precision, char fill=' ')
Adds manipulators for width, (fixed) precision and fill character to an ostream.
Definition: stl_util.h:49
boost::outcome_v2::unchecked< T, IOStatus > IOResult
Value-or-error type for operations that return a value but can fail.
Definition: io.h:353
type traits for time series iterators
Definition: time_series.h:655
typename decltype(std::declval< MatrixPtr >() ->col(std::declval< Eigen::Index >()) .tail(std::declval< Eigen::Index >()))::PlainObject VectorValue
Definition: time_series.h:664
decltype(std::declval< MatrixPtr >() ->col(std::declval< Eigen::Index >()).tail(std::declval< Eigen::Index >())) VectorReference
Definition: time_series.h:666
typename TimeSeries< FP >::Matrix Matrix
Definition: time_series.h:660
std::conditional_t< IsConst, const Matrix, Matrix > * MatrixPtr
Definition: time_series.h:661
std::conditional_t< IsConst, const FP &, FP & > TimeReference
Definition: time_series.h:668
Dereferencable type with a copy of a reference.
Definition: time_series.h:706
auto operator->()
Definition: time_series.h:708
Generated by