37 class OctaSym :
public std::vector<int>,
public Action
41 OctaSym(std::initializer_list<int> s);
42 OctaSym(
const std::vector<int>& s);
44 OctaSym invert()
const;
46 OctaSym
operator*(
const OctaSym& s)
const;
48 Matrix permutation_matrix()
const;
50 template<
typename Derived>
51 requires (Derived::ColsAtCompileTime == 1)
52 Mat<typename Derived::Scalar,-1,1>
operator()(
const Eigen::MatrixBase<Derived>& x)
const
54 assert_release(x.size() == (Index)size());
55 Mat<
typename Derived::Scalar,-1,1> x_(x);
56 for(
size_t i = 0 ; i < size() ; i++)
57 x_[i] =
sign((*
this)[i])*x[std::abs((*
this)[i])-1];
62 requires IsCtcBaseOrPtr<C,IntervalVector>
71 std::shared_ptr<SetExpr>
operator()(
const std::shared_ptr<SetExpr>& x1)
const;
75 SampledTraj<T>
operator()(
const SampledTraj<T>& x)
const
78 for(
auto& [ti,yi] : y)
85 requires (std::is_same_v<V,VectorExpr> || std::is_same_v<V,VectorVar>)
86 inline VectorExpr
operator()(
const V& x1)
const
88 if constexpr(std::is_same_v<V,VectorExpr>)
89 assert_release((Index)this->size() == x1->output_shape().first);
91 assert_release((Index)this->size() == x1.output_shape().first);
92 return { std::make_shared<AnalyticOperationExpr<OctaSymOp,VectorType,VectorType>>(*
this, x1) };
95 friend std::ostream&
operator<<(std::ostream& str,
const OctaSym& s)
98 for(
size_t i = 0 ; i < s.size() ; i++)
99 str << (i != 0 ?
" " :
"") << s[i];
100 str <<
")" << std::flush;
Scalar & operator()(Index i, Index j)
Accesses a matrix element (modifiable) by its row and column indices.
Definition codac2_Matrix_addons_Base.h:27
std::ostream & operator<<(std::ostream &os, const BoolInterval &x)
Streams out a BoolInterval.
Definition codac2_BoolInterval.h:64
Eigen::Matrix< double,-1,-1 > Matrix
Alias for a dynamic-size matrix of doubles.
Definition codac2_Matrix.h:26