|
mc2lib
|
#include <sets.hpp>
Public Types | |
| typedef Ts::Element | Element |
Public Member Functions | |
| RelationSeq () | |
| RelationSeq (std::vector< Relation< Ts >> v) | |
| RelationSeq & | operator+= (const Relation< Ts > &rhs) |
| RelationSeq & | operator+= (Relation< Ts > &&rhs) |
| RelationSeq & | operator+= (const RelationSeq &rhs) |
| RelationOp< Ts > & | EvalInplace () override |
| Relation< Ts > | Eval () const override |
| bool | R (const Element &e1, const Element &e2, typename Relation< Ts >::Path *path=nullptr, std::size_t seq=0) const |
| bool | Irreflexive (typename Relation< Ts >::Path *cyclic=nullptr) const |
Public Member Functions inherited from mc2lib::sets::RelationOp< Ts > | |
| RelationOp () | |
| RelationOp (std::vector< Relation< Ts >> rels) | |
| void | Clear () |
| Relation< Ts > | EvalClear () |
Additional Inherited Members | |
Protected Member Functions inherited from mc2lib::sets::RelationOp< Ts > | |
| void | Add (const Relation< Ts > &er) |
| void | Add (Relation< Ts > &&er) |
| void | Add (const std::vector< Relation< Ts >> &rels) |
Protected Attributes inherited from mc2lib::sets::RelationOp< Ts > | |
| std::vector< Relation< Ts > > | rels_ |
Operator ";".
| typedef Ts::Element mc2lib::sets::RelationSeq< Ts >::Element |
|
inline |
|
inlineexplicit |
|
inlineoverridevirtual |
Evaluate operator, computing the result of the opertor.
Implements mc2lib::sets::RelationOp< Ts >.
|
inlineoverridevirtual |
Evaluate in-place, where postcondition is rels_.size() <= 1. This avoids some of the copying overhead of Eval(), and can therefore be more efficient.
Implements mc2lib::sets::RelationOp< Ts >.
|
inline |
Check if irreflexive.
| cyclic | Optional parameter, in which the cycle is returned, if result is false. |
|
inline |
|
inline |
|
inline |
|
inline |
Check if (e1, e2) is in the relation. This effectively does a search if there is an edge from e1 to e2.
| e1 | First element. |
| e2 | Second element. |
| path | Optional; return path from e1 to e2. |
1.8.12