![]() |
Vcsn
2.3a
Be Rational
|
A functor to check whether one rational expression is (strictly) less than another one. More...
#include <less.hh>
Classes | |
struct | visit_tuple |
struct | visit_tuple< false, Dummy > |
Public Types | |
using | expressionset_t = ExpSet |
using | context_t = context_t_of< expressionset_t > |
using | labelset_t = labelset_t_of< context_t > |
using | weightset_t = weightset_t_of< context_t > |
using | weight_t = weight_t_of< context_t > |
using | expression_t = typename expressionset_t::value_t |
using | super_t = typename expressionset_t::const_visitor |
using | node_t = typename super_t::node_t |
using | inner_t = typename super_t::inner_t |
template<rat::exp::type_t Type> | |
using | unary_t = typename super_t::template unary_t< Type > |
template<rat::exp::type_t Type> | |
using | variadic_t = typename super_t::template variadic_t< Type > |
template<rat::exp::type_t Type> | |
using | weight_node_t = typename super_t::template weight_node_t< Type > |
Public Member Functions | |
bool | operator() (expression_t lhs, expression_t rhs) |
Whether lhs < rhs. More... | |
Private Types | |
using | tuple_t = typename super_t::tuple_t |
Private Member Functions | |
VCSN_RAT_VISIT (add, lhs) | |
VCSN_RAT_VISIT (atom, lhs) | |
VCSN_RAT_VISIT (complement, lhs) | |
VCSN_RAT_VISIT (compose, lhs) | |
VCSN_RAT_VISIT (conjunction, lhs) | |
VCSN_RAT_VISIT (infiltrate, lhs) | |
VCSN_RAT_VISIT (ldivide, lhs) | |
VCSN_RAT_VISIT (lweight, lhs) | |
VCSN_RAT_VISIT (one, lhs) | |
VCSN_RAT_VISIT (mul, lhs) | |
VCSN_RAT_VISIT (rweight, lhs) | |
VCSN_RAT_VISIT (shuffle, lhs) | |
VCSN_RAT_VISIT (star, lhs) | |
VCSN_RAT_VISIT (transposition, lhs) | |
VCSN_RAT_VISIT (zero, lhs) | |
void | visit (const tuple_t &v, std::true_type) override |
bool | less_ (const zero_t &, const zero_t &) |
bool | less_ (const one_t &, const one_t &) |
bool | less_ (const atom_t &lhs, const atom_t &rhs) |
template<rat::exp::type_t Type> | |
bool | less_ (const variadic_t< Type > &lhs, const variadic_t< Type > &rhs) |
template<rat::exp::type_t Type> | |
bool | less_ (const unary_t< Type > &lhs, const unary_t< Type > &rhs) |
template<rat::exp::type_t Type> | |
bool | less_ (const weight_node_t< Type > &lhs, const weight_node_t< Type > &rhs) |
Private Attributes | |
expression_t | rhs_ |
The right-hand side expression with which the current node is compared. More... | |
bool | res_ |
The current result. More... | |
A functor to check whether one rational expression is (strictly) less than another one.
Implements the shortlex order.
using vcsn::rat::less< ExpSet >::context_t = context_t_of<expressionset_t> |
using vcsn::rat::less< ExpSet >::expression_t = typename expressionset_t::value_t |
using vcsn::rat::less< ExpSet >::expressionset_t = ExpSet |
using vcsn::rat::less< ExpSet >::inner_t = typename super_t::inner_t |
using vcsn::rat::less< ExpSet >::labelset_t = labelset_t_of<context_t> |
using vcsn::rat::less< ExpSet >::node_t = typename super_t::node_t |
using vcsn::rat::less< ExpSet >::super_t = typename expressionset_t::const_visitor |
|
private |
using vcsn::rat::less< ExpSet >::unary_t = typename super_t::template unary_t<Type> |
using vcsn::rat::less< ExpSet >::variadic_t = typename super_t::template variadic_t<Type> |
using vcsn::rat::less< ExpSet >::weight_node_t = typename super_t::template weight_node_t<Type> |
using vcsn::rat::less< ExpSet >::weight_t = weight_t_of<context_t> |
using vcsn::rat::less< ExpSet >::weightset_t = weightset_t_of<context_t> |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
Definition at line 159 of file less.hh.
References vcsn::detail::rs.
|
inlineprivate |
|
inlineprivate |
|
inline |
Whether lhs < rhs.
Not just the entry point, it's also called at each recursion level. In particular, that's where size and node types are considered, routines below handle the case of nodes of same sizes and same type.
Definition at line 47 of file less.hh.
References vcsn::rat::less< ExpSet >::res_, and vcsn::rat::less< ExpSet >::rhs_.
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineoverrideprivate |
Definition at line 134 of file less.hh.
References vcsn::rat::less< ExpSet >::res_, and vcsn::v.
|
private |
The current result.
Definition at line 196 of file less.hh.
Referenced by vcsn::rat::less< ExpSet >::operator()(), and vcsn::rat::less< ExpSet >::visit().
|
private |
The right-hand side expression with which the current node is compared.
Updated by the recursion.
Definition at line 194 of file less.hh.
Referenced by vcsn::rat::less< ExpSet >::operator()(), and vcsn::rat::less< ExpSet >::visit_tuple< bool, Dummy >::operator()().