Rename Symbolic namespace to symbolic to be consistent with numext namespace

This commit is contained in:
Gael Guennebaud 2018-09-15 14:16:20 +02:00
parent 400512bfad
commit 82772e8d9d
5 changed files with 56 additions and 56 deletions

View File

@ -29,17 +29,17 @@ template<int N> struct aseq_negate<FixedInt<N> > {
template<> struct aseq_negate<FixedInt<DynamicIndex> > {}; template<> struct aseq_negate<FixedInt<DynamicIndex> > {};
template<typename FirstType,typename SizeType,typename IncrType, template<typename FirstType,typename SizeType,typename IncrType,
bool FirstIsSymbolic=Symbolic::is_symbolic<FirstType>::value, bool FirstIsSymbolic=symbolic::is_symbolic<FirstType>::value,
bool SizeIsSymbolic =Symbolic::is_symbolic<SizeType>::value> bool SizeIsSymbolic =symbolic::is_symbolic<SizeType>::value>
struct aseq_reverse_first_type { struct aseq_reverse_first_type {
typedef Index type; typedef Index type;
}; };
template<typename FirstType,typename SizeType,typename IncrType> template<typename FirstType,typename SizeType,typename IncrType>
struct aseq_reverse_first_type<FirstType,SizeType,IncrType,true,true> { struct aseq_reverse_first_type<FirstType,SizeType,IncrType,true,true> {
typedef Symbolic::AddExpr<FirstType, typedef symbolic::AddExpr<FirstType,
Symbolic::ProductExpr<Symbolic::AddExpr<SizeType,Symbolic::ValueExpr<FixedInt<-1> > >, symbolic::ProductExpr<symbolic::AddExpr<SizeType,symbolic::ValueExpr<FixedInt<-1> > >,
Symbolic::ValueExpr<IncrType> > symbolic::ValueExpr<IncrType> >
> type; > type;
}; };
@ -56,14 +56,14 @@ struct aseq_reverse_first_type_aux<SizeType,IncrType,typename internal::enable_i
template<typename FirstType,typename SizeType,typename IncrType> template<typename FirstType,typename SizeType,typename IncrType>
struct aseq_reverse_first_type<FirstType,SizeType,IncrType,true,false> { struct aseq_reverse_first_type<FirstType,SizeType,IncrType,true,false> {
typedef typename aseq_reverse_first_type_aux<SizeType,IncrType>::type Aux; typedef typename aseq_reverse_first_type_aux<SizeType,IncrType>::type Aux;
typedef Symbolic::AddExpr<FirstType,Symbolic::ValueExpr<Aux> > type; typedef symbolic::AddExpr<FirstType,symbolic::ValueExpr<Aux> > type;
}; };
template<typename FirstType,typename SizeType,typename IncrType> template<typename FirstType,typename SizeType,typename IncrType>
struct aseq_reverse_first_type<FirstType,SizeType,IncrType,false,true> { struct aseq_reverse_first_type<FirstType,SizeType,IncrType,false,true> {
typedef Symbolic::AddExpr<Symbolic::ProductExpr<Symbolic::AddExpr<SizeType,Symbolic::ValueExpr<FixedInt<-1> > >, typedef symbolic::AddExpr<symbolic::ProductExpr<symbolic::AddExpr<SizeType,symbolic::ValueExpr<FixedInt<-1> > >,
Symbolic::ValueExpr<IncrType> >, symbolic::ValueExpr<IncrType> >,
Symbolic::ValueExpr<> > type; symbolic::ValueExpr<> > type;
}; };
#endif #endif
@ -229,7 +229,7 @@ auto seq(FirstType f, LastType l, IncrType incr)
#else // EIGEN_HAS_CXX11 #else // EIGEN_HAS_CXX11
template<typename FirstType,typename LastType> template<typename FirstType,typename LastType>
typename internal::enable_if<!(Symbolic::is_symbolic<FirstType>::value || Symbolic::is_symbolic<LastType>::value), typename internal::enable_if<!(symbolic::is_symbolic<FirstType>::value || symbolic::is_symbolic<LastType>::value),
ArithmeticSequence<typename internal::cleanup_index_type<FirstType>::type,Index> >::type ArithmeticSequence<typename internal::cleanup_index_type<FirstType>::type,Index> >::type
seq(FirstType f, LastType l) seq(FirstType f, LastType l)
{ {
@ -238,35 +238,35 @@ seq(FirstType f, LastType l)
} }
template<typename FirstTypeDerived,typename LastType> template<typename FirstTypeDerived,typename LastType>
typename internal::enable_if<!Symbolic::is_symbolic<LastType>::value, typename internal::enable_if<!symbolic::is_symbolic<LastType>::value,
ArithmeticSequence<FirstTypeDerived, Symbolic::AddExpr<Symbolic::AddExpr<Symbolic::NegateExpr<FirstTypeDerived>,Symbolic::ValueExpr<> >, ArithmeticSequence<FirstTypeDerived, symbolic::AddExpr<symbolic::AddExpr<symbolic::NegateExpr<FirstTypeDerived>,symbolic::ValueExpr<> >,
Symbolic::ValueExpr<internal::FixedInt<1> > > > >::type symbolic::ValueExpr<internal::FixedInt<1> > > > >::type
seq(const Symbolic::BaseExpr<FirstTypeDerived> &f, LastType l) seq(const symbolic::BaseExpr<FirstTypeDerived> &f, LastType l)
{ {
return seqN(f.derived(),(typename internal::cleanup_index_type<LastType>::type(l)-f.derived()+fix<1>())); return seqN(f.derived(),(typename internal::cleanup_index_type<LastType>::type(l)-f.derived()+fix<1>()));
} }
template<typename FirstType,typename LastTypeDerived> template<typename FirstType,typename LastTypeDerived>
typename internal::enable_if<!Symbolic::is_symbolic<FirstType>::value, typename internal::enable_if<!symbolic::is_symbolic<FirstType>::value,
ArithmeticSequence<typename internal::cleanup_index_type<FirstType>::type, ArithmeticSequence<typename internal::cleanup_index_type<FirstType>::type,
Symbolic::AddExpr<Symbolic::AddExpr<LastTypeDerived,Symbolic::ValueExpr<> >, symbolic::AddExpr<symbolic::AddExpr<LastTypeDerived,symbolic::ValueExpr<> >,
Symbolic::ValueExpr<internal::FixedInt<1> > > > >::type symbolic::ValueExpr<internal::FixedInt<1> > > > >::type
seq(FirstType f, const Symbolic::BaseExpr<LastTypeDerived> &l) seq(FirstType f, const symbolic::BaseExpr<LastTypeDerived> &l)
{ {
return seqN(typename internal::cleanup_index_type<FirstType>::type(f),(l.derived()-typename internal::cleanup_index_type<FirstType>::type(f)+fix<1>())); return seqN(typename internal::cleanup_index_type<FirstType>::type(f),(l.derived()-typename internal::cleanup_index_type<FirstType>::type(f)+fix<1>()));
} }
template<typename FirstTypeDerived,typename LastTypeDerived> template<typename FirstTypeDerived,typename LastTypeDerived>
ArithmeticSequence<FirstTypeDerived, ArithmeticSequence<FirstTypeDerived,
Symbolic::AddExpr<Symbolic::AddExpr<LastTypeDerived,Symbolic::NegateExpr<FirstTypeDerived> >,Symbolic::ValueExpr<internal::FixedInt<1> > > > symbolic::AddExpr<symbolic::AddExpr<LastTypeDerived,symbolic::NegateExpr<FirstTypeDerived> >,symbolic::ValueExpr<internal::FixedInt<1> > > >
seq(const Symbolic::BaseExpr<FirstTypeDerived> &f, const Symbolic::BaseExpr<LastTypeDerived> &l) seq(const symbolic::BaseExpr<FirstTypeDerived> &f, const symbolic::BaseExpr<LastTypeDerived> &l)
{ {
return seqN(f.derived(),(l.derived()-f.derived()+fix<1>())); return seqN(f.derived(),(l.derived()-f.derived()+fix<1>()));
} }
template<typename FirstType,typename LastType, typename IncrType> template<typename FirstType,typename LastType, typename IncrType>
typename internal::enable_if<!(Symbolic::is_symbolic<FirstType>::value || Symbolic::is_symbolic<LastType>::value), typename internal::enable_if<!(symbolic::is_symbolic<FirstType>::value || symbolic::is_symbolic<LastType>::value),
ArithmeticSequence<typename internal::cleanup_index_type<FirstType>::type,Index,typename internal::cleanup_seq_incr<IncrType>::type> >::type ArithmeticSequence<typename internal::cleanup_index_type<FirstType>::type,Index,typename internal::cleanup_seq_incr<IncrType>::type> >::type
seq(FirstType f, LastType l, IncrType incr) seq(FirstType f, LastType l, IncrType incr)
{ {
@ -276,27 +276,27 @@ seq(FirstType f, LastType l, IncrType incr)
} }
template<typename FirstTypeDerived,typename LastType, typename IncrType> template<typename FirstTypeDerived,typename LastType, typename IncrType>
typename internal::enable_if<!Symbolic::is_symbolic<LastType>::value, typename internal::enable_if<!symbolic::is_symbolic<LastType>::value,
ArithmeticSequence<FirstTypeDerived, ArithmeticSequence<FirstTypeDerived,
Symbolic::QuotientExpr<Symbolic::AddExpr<Symbolic::AddExpr<Symbolic::NegateExpr<FirstTypeDerived>, symbolic::QuotientExpr<symbolic::AddExpr<symbolic::AddExpr<symbolic::NegateExpr<FirstTypeDerived>,
Symbolic::ValueExpr<> >, symbolic::ValueExpr<> >,
Symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >, symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >,
Symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >, symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >,
typename internal::cleanup_seq_incr<IncrType>::type> >::type typename internal::cleanup_seq_incr<IncrType>::type> >::type
seq(const Symbolic::BaseExpr<FirstTypeDerived> &f, LastType l, IncrType incr) seq(const symbolic::BaseExpr<FirstTypeDerived> &f, LastType l, IncrType incr)
{ {
typedef typename internal::cleanup_seq_incr<IncrType>::type CleanedIncrType; typedef typename internal::cleanup_seq_incr<IncrType>::type CleanedIncrType;
return seqN(f.derived(),(typename internal::cleanup_index_type<LastType>::type(l)-f.derived()+CleanedIncrType(incr))/CleanedIncrType(incr), incr); return seqN(f.derived(),(typename internal::cleanup_index_type<LastType>::type(l)-f.derived()+CleanedIncrType(incr))/CleanedIncrType(incr), incr);
} }
template<typename FirstType,typename LastTypeDerived, typename IncrType> template<typename FirstType,typename LastTypeDerived, typename IncrType>
typename internal::enable_if<!Symbolic::is_symbolic<FirstType>::value, typename internal::enable_if<!symbolic::is_symbolic<FirstType>::value,
ArithmeticSequence<typename internal::cleanup_index_type<FirstType>::type, ArithmeticSequence<typename internal::cleanup_index_type<FirstType>::type,
Symbolic::QuotientExpr<Symbolic::AddExpr<Symbolic::AddExpr<LastTypeDerived,Symbolic::ValueExpr<> >, symbolic::QuotientExpr<symbolic::AddExpr<symbolic::AddExpr<LastTypeDerived,symbolic::ValueExpr<> >,
Symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >, symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >,
Symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >, symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >,
typename internal::cleanup_seq_incr<IncrType>::type> >::type typename internal::cleanup_seq_incr<IncrType>::type> >::type
seq(FirstType f, const Symbolic::BaseExpr<LastTypeDerived> &l, IncrType incr) seq(FirstType f, const symbolic::BaseExpr<LastTypeDerived> &l, IncrType incr)
{ {
typedef typename internal::cleanup_seq_incr<IncrType>::type CleanedIncrType; typedef typename internal::cleanup_seq_incr<IncrType>::type CleanedIncrType;
return seqN(typename internal::cleanup_index_type<FirstType>::type(f), return seqN(typename internal::cleanup_index_type<FirstType>::type(f),
@ -305,12 +305,12 @@ seq(FirstType f, const Symbolic::BaseExpr<LastTypeDerived> &l, IncrType incr)
template<typename FirstTypeDerived,typename LastTypeDerived, typename IncrType> template<typename FirstTypeDerived,typename LastTypeDerived, typename IncrType>
ArithmeticSequence<FirstTypeDerived, ArithmeticSequence<FirstTypeDerived,
Symbolic::QuotientExpr<Symbolic::AddExpr<Symbolic::AddExpr<LastTypeDerived, symbolic::QuotientExpr<symbolic::AddExpr<symbolic::AddExpr<LastTypeDerived,
Symbolic::NegateExpr<FirstTypeDerived> >, symbolic::NegateExpr<FirstTypeDerived> >,
Symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >, symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >,
Symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >, symbolic::ValueExpr<typename internal::cleanup_seq_incr<IncrType>::type> >,
typename internal::cleanup_seq_incr<IncrType>::type> typename internal::cleanup_seq_incr<IncrType>::type>
seq(const Symbolic::BaseExpr<FirstTypeDerived> &f, const Symbolic::BaseExpr<LastTypeDerived> &l, IncrType incr) seq(const symbolic::BaseExpr<FirstTypeDerived> &f, const symbolic::BaseExpr<LastTypeDerived> &l, IncrType incr)
{ {
typedef typename internal::cleanup_seq_incr<IncrType>::type CleanedIncrType; typedef typename internal::cleanup_seq_incr<IncrType>::type CleanedIncrType;
return seqN(f.derived(),(l.derived()-f.derived()+CleanedIncrType(incr))/CleanedIncrType(incr), incr); return seqN(f.derived(),(l.derived()-f.derived()+CleanedIncrType(incr))/CleanedIncrType(incr), incr);
@ -353,7 +353,7 @@ namespace internal {
// Convert a symbolic span into a usable one (i.e., remove last/end "keywords") // Convert a symbolic span into a usable one (i.e., remove last/end "keywords")
template<typename T> template<typename T>
struct make_size_type { struct make_size_type {
typedef typename internal::conditional<Symbolic::is_symbolic<T>::value, Index, T>::type type; typedef typename internal::conditional<symbolic::is_symbolic<T>::value, Index, T>::type type;
}; };
template<typename FirstType,typename SizeType,typename IncrType,int XprSize> template<typename FirstType,typename SizeType,typename IncrType,int XprSize>

View File

@ -42,7 +42,7 @@ struct symbolic_last_tag {};
* *
* \sa end * \sa end
*/ */
static const Symbolic::SymbolExpr<internal::symbolic_last_tag> last; static const symbolic::SymbolExpr<internal::symbolic_last_tag> last;
/** \var end /** \var end
* \ingroup Core_Module * \ingroup Core_Module
@ -60,7 +60,7 @@ static const auto end = last+1;
#else #else
// Using a FixedExpr<1> expression is important here to make sure the compiler // Using a FixedExpr<1> expression is important here to make sure the compiler
// can fully optimize the computation starting indices with zero overhead. // can fully optimize the computation starting indices with zero overhead.
static const Symbolic::AddExpr<Symbolic::SymbolExpr<internal::symbolic_last_tag>,Symbolic::ValueExpr<Eigen::internal::FixedInt<1> > > end(last+fix<1>()); static const symbolic::AddExpr<symbolic::SymbolExpr<internal::symbolic_last_tag>,symbolic::ValueExpr<Eigen::internal::FixedInt<1> > > end(last+fix<1>());
#endif #endif
} // end namespace placeholders } // end namespace placeholders
@ -74,7 +74,7 @@ template<int N>
FixedInt<N> eval_expr_given_size(FixedInt<N> x, Index /*size*/) { return x; } FixedInt<N> eval_expr_given_size(FixedInt<N> x, Index /*size*/) { return x; }
template<typename Derived> template<typename Derived>
Index eval_expr_given_size(const Symbolic::BaseExpr<Derived> &x, Index size) Index eval_expr_given_size(const symbolic::BaseExpr<Derived> &x, Index size)
{ {
return x.derived().eval(placeholders::last=size-1); return x.derived().eval(placeholders::last=size-1);
} }
@ -127,13 +127,13 @@ struct IndexedViewCompatibleType<T,XprSize,typename internal::enable_if<internal
}; };
template<typename T, int XprSize> template<typename T, int XprSize>
struct IndexedViewCompatibleType<T, XprSize, typename enable_if<Symbolic::is_symbolic<T>::value>::type> { struct IndexedViewCompatibleType<T, XprSize, typename enable_if<symbolic::is_symbolic<T>::value>::type> {
typedef SingleRange type; typedef SingleRange type;
}; };
template<typename T> template<typename T>
typename enable_if<Symbolic::is_symbolic<T>::value,SingleRange>::type typename enable_if<symbolic::is_symbolic<T>::value,SingleRange>::type
makeIndexedViewCompatible(const T& id, Index size, SpecializedType) { makeIndexedViewCompatible(const T& id, Index size, SpecializedType) {
return eval_expr_given_size(id,size); return eval_expr_given_size(id,size);
} }

View File

@ -12,7 +12,7 @@
namespace Eigen { namespace Eigen {
/** \namespace Eigen::Symbolic /** \namespace Eigen::symbolic
* \ingroup Core_Module * \ingroup Core_Module
* *
* This namespace defines a set of classes and functions to build and evaluate symbolic expressions of scalar type Index. * This namespace defines a set of classes and functions to build and evaluate symbolic expressions of scalar type Index.
@ -20,9 +20,9 @@ namespace Eigen {
* *
* \code * \code
* // First step, defines symbols: * // First step, defines symbols:
* struct x_tag {}; static const Symbolic::SymbolExpr<x_tag> x; * struct x_tag {}; static const symbolic::SymbolExpr<x_tag> x;
* struct y_tag {}; static const Symbolic::SymbolExpr<y_tag> y; * struct y_tag {}; static const symbolic::SymbolExpr<y_tag> y;
* struct z_tag {}; static const Symbolic::SymbolExpr<z_tag> z; * struct z_tag {}; static const symbolic::SymbolExpr<z_tag> z;
* *
* // Defines an expression: * // Defines an expression:
* auto expr = (x+3)/y+z; * auto expr = (x+3)/y+z;
@ -38,7 +38,7 @@ namespace Eigen {
* It is currently only used internally to define and manipulate the placeholders::last and placeholders::end symbols in Eigen::seq and Eigen::seqN. * It is currently only used internally to define and manipulate the placeholders::last and placeholders::end symbols in Eigen::seq and Eigen::seqN.
* *
*/ */
namespace Symbolic { namespace symbolic {
template<typename Tag> class Symbol; template<typename Tag> class Symbol;
template<typename Arg0> class NegateExpr; template<typename Arg0> class NegateExpr;
@ -286,7 +286,7 @@ protected:
Arg1 m_arg1; Arg1 m_arg1;
}; };
} // end namespace Symbolic } // end namespace symbolic
} // end namespace Eigen } // end namespace Eigen

View File

@ -161,7 +161,7 @@ operator()(const Indices& indices) EIGEN_INDEXED_VIEW_METHOD_CONST
template<typename Indices> template<typename Indices>
typename internal::enable_if< typename internal::enable_if<
(internal::get_compile_time_incr<typename IvcType<Indices>::type>::value==1) && (!internal::is_valid_index_type<Indices>::value) && (!Symbolic::is_symbolic<Indices>::value), (internal::get_compile_time_incr<typename IvcType<Indices>::type>::value==1) && (!internal::is_valid_index_type<Indices>::value) && (!symbolic::is_symbolic<Indices>::value),
VectorBlock<EIGEN_INDEXED_VIEW_METHOD_CONST Derived,internal::array_size<Indices>::value> >::type VectorBlock<EIGEN_INDEXED_VIEW_METHOD_CONST Derived,internal::array_size<Indices>::value> >::type
operator()(const Indices& indices) EIGEN_INDEXED_VIEW_METHOD_CONST operator()(const Indices& indices) EIGEN_INDEXED_VIEW_METHOD_CONST
{ {
@ -172,7 +172,7 @@ operator()(const Indices& indices) EIGEN_INDEXED_VIEW_METHOD_CONST
} }
template<typename IndexType> template<typename IndexType>
typename internal::enable_if<Symbolic::is_symbolic<IndexType>::value, CoeffReturnType >::type typename internal::enable_if<symbolic::is_symbolic<IndexType>::value, CoeffReturnType >::type
operator()(const IndexType& id) EIGEN_INDEXED_VIEW_METHOD_CONST operator()(const IndexType& id) EIGEN_INDEXED_VIEW_METHOD_CONST
{ {
return Base::operator()(internal::eval_expr_given_size(id,size())); return Base::operator()(internal::eval_expr_given_size(id,size()));

View File

@ -60,12 +60,12 @@ bool is_same_symb(const T1& a, const T2& b, Index size)
template<typename T> template<typename T>
void check_is_symbolic(const T&) { void check_is_symbolic(const T&) {
STATIC_CHECK(( Symbolic::is_symbolic<T>::value )) STATIC_CHECK(( symbolic::is_symbolic<T>::value ))
} }
template<typename T> template<typename T>
void check_isnot_symbolic(const T&) { void check_isnot_symbolic(const T&) {
STATIC_CHECK(( !Symbolic::is_symbolic<T>::value )) STATIC_CHECK(( !symbolic::is_symbolic<T>::value ))
} }
#define VERIFY_EQ_INT(A,B) VERIFY_IS_APPROX(int(A),int(B)) #define VERIFY_EQ_INT(A,B) VERIFY_IS_APPROX(int(A),int(B))
@ -104,9 +104,9 @@ void check_symbolic_index()
#if EIGEN_HAS_CXX14 #if EIGEN_HAS_CXX14
{ {
struct x_tag {}; static const Symbolic::SymbolExpr<x_tag> x; struct x_tag {}; static const symbolic::SymbolExpr<x_tag> x;
struct y_tag {}; static const Symbolic::SymbolExpr<y_tag> y; struct y_tag {}; static const symbolic::SymbolExpr<y_tag> y;
struct z_tag {}; static const Symbolic::SymbolExpr<z_tag> z; struct z_tag {}; static const symbolic::SymbolExpr<z_tag> z;
VERIFY_IS_APPROX( int(((x+3)/y+z).eval(x=6,y=3,z=-13)), (6+3)/3+(-13) ); VERIFY_IS_APPROX( int(((x+3)/y+z).eval(x=6,y=3,z=-13)), (6+3)/3+(-13) );
} }