![]() |
Vcsn
2.8
Be Rational
|
An expressionset can implement several different sets of identities on expressions. More...
#include <identities.hh>
Public Types | |
enum | ids_t { none, trivial, associative, linear, distributive, agressive, deflt = linear } |
using | self_t = identities |
Public Member Functions | |
identities (ids_t id=deflt) | |
identities (const std::string &i) | |
Build from a string. More... | |
identities (const char *cp) | |
Build from a literal string. More... | |
ids_t | ids () const |
bool | is_agressive () const |
Whether agressive optimizations are on. More... | |
bool | is_associative () const |
Whether associative identities are on. More... | |
bool | is_distributive () const |
Whether distributive identities are on. More... | |
bool | is_linear () const |
Whether linear identities are on. More... | |
bool | is_trivial () const |
Whether trivial identities are on. More... | |
operator bool () const | |
Whether not none. More... | |
bool | operator< (self_t that) const |
bool | operator== (self_t that) const |
bool | operator!= (self_t that) const |
Private Attributes | |
ids_t | ids_ |
An expressionset can implement several different sets of identities on expressions.
This type represents one of those sets.
Could have been a simple enum class, but having a constructor is helping to select the default identities other than the first one.
Definition at line 20 of file identities.hh.
Definition at line 23 of file identities.hh.
Definition at line 25 of file identities.hh.
Definition at line 50 of file identities.hh.
Referenced by vcsn::dyn::detail::identities_of().
vcsn::rat::identities::identities | ( | const std::string & | i | ) |
Build from a string.
Definition at line 13 of file identities.cc.
References agressive, associative, deflt, distributive, ids_, linear, none, and trivial.
vcsn::rat::identities::identities | ( | const char * | cp | ) |
Build from a literal string.
Definition at line 34 of file identities.cc.
|
inline |
|
inline |
Whether agressive optimizations are on.
Definition at line 66 of file identities.hh.
References agressive, and ids_.
Referenced by vcsn::rat::expressionset_impl< Context >::star(), and vcsn::rat::expressionset_impl< Context >::transposition().
|
inline |
Whether associative identities are on.
Definition at line 72 of file identities.hh.
References associative, and ids_.
Referenced by vcsn::rat::expressionset_impl< Context >::power().
|
inline |
Whether distributive identities are on.
Definition at line 78 of file identities.hh.
References distributive, and ids_.
Referenced by vcsn::rat::expressionset_impl< Context >::expressionset_impl(), vcsn::rat::expressionset_impl< Context >::lweight(), vcsn::rat::expressionset_impl< Context >::power(), vcsn::rat::expressionset_impl< Context >::print_set(), and vcsn::rat::expressionset_impl< Context >::star().
|
inline |
Whether linear identities are on.
Definition at line 84 of file identities.hh.
Referenced by vcsn::rat::expressionset_impl< Context >::compose(), vcsn::rat::expressionset_impl< Context >::power(), and vcsn::rat::expressionset_impl< Context >::rweight().
|
inline |
Whether trivial identities are on.
Definition at line 90 of file identities.hh.
Referenced by vcsn::rat::expressionset_impl< Context >::complement(), vcsn::rat::expressionset_impl< Context >::compose(), vcsn::rat::expressionset_impl< Context >::conjunction(), vcsn::rat::expressionset_impl< Context >::infiltrate(), vcsn::rat::expressionset_impl< Context >::ldivide(), vcsn::rat::expressionset_impl< Context >::lweight(), vcsn::rat::expressionset_impl< Context >::power(), vcsn::rat::expressionset_impl< Context >::rweight(), vcsn::rat::expressionset_impl< Context >::shuffle(), vcsn::rat::expressionset_impl< Context >::star(), vcsn::rat::expressionset_impl< Context >::transposition(), and vcsn::rat::expressionset_impl< Context >::tuple().
|
inline |
|
inline |
Definition at line 111 of file identities.hh.
References operator==().
|
inline |
Definition at line 101 of file identities.hh.
References ids_.
|
inline |
|
private |
Definition at line 117 of file identities.hh.
Referenced by vcsn::rat::expressionset_impl< Context >::conv(), identities(), ids(), is_agressive(), is_associative(), is_distributive(), is_linear(), is_trivial(), operator bool(), operator<(), and operator==().