codac 2.0.0
Loading...
Searching...
No Matches
codac2_TrajBase.h
Go to the documentation of this file.
1
9
10#pragma once
11
12#include "codac2_Interval.h"
13#include "codac2_Wrapper.h"
15#include "codac2_ExprType.h"
16
17namespace codac2
18{
19 template<typename T>
20 class SampledTraj;
21
22 template<typename T>
23 class TrajBase
24 {
25 public:
26
27 TrajBase()
28 { }
29
30 virtual Index size() const = 0;
31 virtual std::pair<Index,Index> shape() const = 0;
32 virtual bool is_empty() const = 0;
33 virtual Interval tdomain() const = 0;
34 virtual void truncate_tdomain(const Interval& new_tdomain) = 0;
35 virtual typename Wrapper<T>::Domain codomain() const = 0;
36 virtual T operator()(double t) const = 0;
37 virtual typename Wrapper<T>::Domain operator()(const Interval& t) const = 0;
38
39 // Implementation in codac2_TrajBase_impl.h
40 auto nan_value() const;
41 virtual SampledTraj<T> sampled(double dt) const;
42 template<typename Q>
43 SampledTraj<T> sampled_as(const SampledTraj<Q>& x) const;
44 SampledTraj<T> primitive(double dt) const;
45 };
46}
bool is_empty() const
Checks whether the interval matrix is empty.
Definition codac2_MatrixBase_addons_IntervalMatrixBase.h:56
Definition codac2_OctaSym.h:21