19 class AnalyticTraj :
public TrajBase<typename T::Scalar>,
public AnalyticFunction<T>
25 AnalyticTraj(
const AnalyticFunction<T>& f,
const Interval& tdomain)
26 : TrajBase<typename T::Scalar>(), AnalyticFunction<T>(f), _tdomain(tdomain)
28 assert_release(f.args().total_size() == 1 &&
"domain of f must be 1d");
31 virtual Index size()
const
33 return AnalyticFunction<T>::output_size();
36 virtual std::pair<Index,Index> shape()
const
38 return AnalyticFunction<T>::output_shape();
41 virtual bool is_empty()
const
43 return _tdomain.is_empty();
46 virtual Interval tdomain()
const
51 virtual void truncate_tdomain(
const Interval& new_tdomain)
53 assert_release(this->tdomain().
is_superset(new_tdomain));
54 _tdomain &= new_tdomain;
57 virtual typename T::Domain codomain()
const
59 return AnalyticFunction<T>::eval(this->_tdomain);
62 virtual typename T::Scalar operator()(
double t)
const
65 return this->nan_value();
66 return AnalyticFunction<T>::real_eval(t);
69 virtual typename T::Domain operator()(
const Interval& t)
const
72 return typename T::Domain((*
this)(tdomain().
lb()))
73 .init(Interval(-oo,oo));
74 return AnalyticFunction<T>::eval(t);
77 AnalyticFunction<T> as_function()
const
81 AnalyticExprWrapper<T>(
82 std::make_shared<AnalyticOperationExpr<
83 TrajectoryOp<AnalyticTraj<T>>,T,ScalarType>>(*
this,t))
auto lb() const
Returns a matrix containing the lower bounds of each interval element.
Definition codac2_MatrixBase_addons_IntervalMatrixBase.h:91
bool is_superset(const Matrix< codac2::Interval, RowsAtCompileTime, ColsAtCompileTime > &x) const
Checks whether this matrix is a superset of another interval matrix.
Definition codac2_MatrixBase_addons_IntervalMatrixBase.h:648
bool contains(const Matrix< double, RowsAtCompileTime, ColsAtCompileTime > &x) const
Checks if this interval matrix contains the specified matrix x.
Definition codac2_MatrixBase_addons_IntervalMatrixBase.h:198