27 #ifndef ANTIOCH_METAPROGRAMMING_DECL_H
28 #define ANTIOCH_METAPROGRAMMING_DECL_H
33 #define ANTIOCH_COMMA ,
38 #ifdef ANTIOCH_HAVE_AUTO_THIS
39 #define ANTIOCH_AUTO(Type) auto
40 #define ANTIOCH_RETURNEXPR(Type, Expr) \
41 -> typename Antioch::if_else_type<Antioch::return_auto<Type>::value, \
44 #define ANTIOCH_AUTOFUNC(Type, Expr) \
45 -> typename Antioch::if_else_type<Antioch::return_auto<Type>::value, \
50 #define ANTIOCH_AUTO(Type) Type
51 #define ANTIOCH_RETURNEXPR(Type, Expr)
52 #define ANTIOCH_AUTOFUNC(Type, Expr) { return Expr; }
56 template <
bool B,
class T =
void>
64 template <
bool B,
class T1,
class T2>
69 template <
class T1,
class T2>
79 template <
typename T,
typename Enable=
void>
84 template <
typename T,
typename Enable=
void>
89 template <
typename T,
typename Enable=
void>
94 template <
typename T,
typename Enable=
void>
99 template <
typename T,
typename Enable=
void>
105 template <
typename T,
typename Enable=
void>
110 template <
typename Vector,
typename NewScalar,
typename Enable=
void>
125 template <
typename T,
typename Enable=
void>
131 template <
typename T>
137 template <
typename T>
143 template <
typename T1,
typename T2>
149 template <
typename T>
158 template <
typename T>
164 template <
typename T1,
typename T2>
166 void zero_clone(T1& output,
const T2& example);
170 template <
typename T,
typename Scalar>
176 template <
typename T,
typename VectorScalar>
178 T
custom_clone(
const T& example,
const VectorScalar& values,
unsigned int indexes);
182 template <
typename T,
typename VectorScalar>
188 template <
typename T,
typename Scalar>
194 template <
typename T>
199 template <
typename T>
206 template <
typename Vector,
typename Scalar>
218 template <
typename T>
232 template <
typename VectorT>
235 eval_index(
const VectorT& vec,
unsigned int index);
238 template <
typename T>
243 template <
typename T>
248 template <
typename T>
253 template <
typename T>
259 #endif //ANTIOCH_METAPROGRAMMING_DECL_H
bool conjunction_root(const T &vec, eigen_library_tag)
bool conjunction(const bool &vec)
T custom_clone(const T &, const VectorScalar &values, unsigned int indexes)
const raw_value_type< T >::type type
bool disjunction_root(const T &vec, eigen_library_tag)
void init_clone(T &output, const T &example)
const value_type< T >::type type
enable_if_c< is_eigen< typename value_type< VectorT >::type >::value, typename value_type< VectorT >::type >::type eval_index(const VectorT &vec, const _Matrix< _UIntT, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &index)
_Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > constant_clone(const _Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &ex, const Scalar &value)
enable_if_c< is_eigen< T1 >::value &&is_eigen< T2 >::value, typename state_type< T1 >::type >::type if_else(const Condition &condition, const T1 &if_true, const T2 &if_false)
void set_zero(_Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &a)
void constant_fill(_Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &output, const Scalar &value)
void init_constant(Vector &output, const Scalar &example)
The parameters are reduced parameters.
_Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > zero_clone(const _Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &ex)
const numeric_library_tag type
bool disjunction(const bool &vec)