You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The values in this enum can be used as the argument for the method
60
63
:py:meth:`ToddCoxeter.strategy` to specify which strategy should be
61
64
used when performing a coset enumeration.
65
+
66
+
The valid values are :
67
+
68
+
.. py:attribute:: strategy.hlt
69
+
:value: <strategy.hlt: 0>
70
+
71
+
This value indicates that the HLT (Hazelgrove-Leech-Trotter) strategy should be used. This is analogous to ACE's R-style.
72
+
73
+
.. py:attribute:: strategy.felsch
74
+
:value: <strategy.felsch: 1>
75
+
76
+
This value indicates that the Felsch strategy should be used. This is analogous to ACE's C-style.
77
+
78
+
.. py:attribute:: strategy.CR
79
+
:value: <strategy.CR: 2>
80
+
81
+
This strategy is meant to mimic the ACE strategy of the same name. The Felsch is run until at least :any:`f_defs` nodes are defined, then the HLT strategy is run until at least :any:`hlt_defs` divided by :math:`N` nodes have been defined, where :math:`N` is the sum of the lengths of the words in the presentation and generating pairs. These steps are repeated until the enumeration terminates.
82
+
83
+
.. py:attribute:: strategy.R_over_C
84
+
:value: <strategy.R_over_C: 3>
85
+
86
+
This strategy is meant to mimic the ACE strategy R/C. The HLT strategy is run until the first lookahead is triggered (when :the number of nodes active is at least :any:`lookahead_next`). A full lookahead is then performed, and then the CR strategy is used.
87
+
88
+
.. py:attribute:: strategy.Cr
89
+
:value: <strategy.Cr: 4>
90
+
91
+
This strategy is meant to mimic the ACE strategy Cr. The Felsch strategy is run until at least :any:`f_defs` new nodes have been defined, then the HLT strategy is run until at least :any:`hlt_defs` divided by :math:`N` nodes have been defined, where :math:`N` is the sum of the lengths of the words in the presentation and generating pairs. Then the Felsch strategy is run.
92
+
93
+
.. py:attribute:: strategy.Rc
94
+
:value: <strategy.Rc: 5>
95
+
96
+
This strategy is meant to mimic the ACE strategy Rc. The HLT strategy is run until at least :any:`hlt_defs` divided by :math:`N` new nodes have been defined (where :math:`N` is the sum of the lengths of the words in the presentation and generating pairs) the Felsch strategy is then run until at least :any:`f_defs` new nodes are defined, and then the HLT strategy is run.
97
+
98
+
99
+
62
100
)pbdoc");
63
-
strategy
64
-
.value(
65
-
"hlt",
66
-
ToddCoxeterImpl_::options::strategy::hlt,
67
-
R"pbdoc( This value indicates that the HLT (Hazelgrove-Leech-Trotter) strategy should be used. This is analogous to ACE's R-style.)pbdoc")
68
-
.value(
69
-
"felsch",
70
-
ToddCoxeterImpl_::options::strategy::felsch,
71
-
R"pbdoc( This value indicates that the Felsch strategy should be used. This is analogous to ACE's C-style.)pbdoc")
72
-
.value(
73
-
"CR",
74
-
ToddCoxeterImpl_::options::strategy::CR,
75
-
R"pbdoc(This strategy is meant to mimic the ACE strategy of the same name. The Felsch is run until at least :any:`f_defs` nodes are defined, then the HLT strategy is run until at least :any:`hlt_defs` divided by :math:`N` nodes have been defined, where :math:`N` is the sum of the lengths of the words in the presentation and generating pairs. These steps are repeated until the enumeration terminates.)pbdoc")
76
-
.value(
77
-
"R_over_C",
78
-
ToddCoxeterImpl_::options::strategy::R_over_C,
79
-
R"pbdoc(This strategy is meant to mimic the ACE strategy R/C. The HLT strategy is run until the first lookahead is triggered (when :the number of nodes active is at least :any:`lookahead_next`). A full lookahead is then performed, and then the CR strategy is used.)pbdoc")
80
-
.value(
81
-
"Cr",
82
-
ToddCoxeterImpl_::options::strategy::Cr,
83
-
R"pbdoc(This strategy is meant to mimic the ACE strategy Cr. The Felsch strategy is run until at least :any:`f_defs` new nodes have been defined, then the HLT strategy is run until at least :any:`hlt_defs` divided by :math:`N` nodes have been defined, where :math:`N` is the sum of the lengths of the words in the presentation and generating pairs. Then the Felsch strategy is run.)pbdoc")
84
-
.value(
85
-
"Rc",
86
-
ToddCoxeterImpl_::options::strategy::Rc,
87
-
R"pbdoc(This strategy is meant to mimic the ACE strategy Rc. The HLT strategy is run until at least :any:`hlt_defs` divided by :math:`N` new nodes have been defined (where :math:`N` is the sum of the lengths of the words in the presentation and generating pairs) the Felsch strategy is then run until at least :any:`f_defs` new nodes are defined, and then the HLT strategy is run.)pbdoc")
R"pbdoc(Perform a full lookahead from every node in the word graph. Full lookaheads are therefore sometimes slower but may detect more coincidences than a partial lookahead.)pbdoc")
R"pbdoc(Perform a partial lookahead starting from the current node in the word graph. Partial lookaheads are sometimes faster but may not detect as many coincidences as a full lookahead.)pbdoc")
118
+
should be performed.
119
+
120
+
The valid values are :
121
+
122
+
.. py:attribute:: lookahead_extent.full
123
+
:value: <lookahead_extent.full: 0>
124
+
125
+
Perform a full lookahead from every node in the word graph. Full lookaheads are therefore sometimes slower but may detect more coincidences than a partial lookahead.
126
+
127
+
.. py:attribute:: lookahead_extent.partial
128
+
:value: <lookahead_extent.partial: 1>
129
+
130
+
Perform a partial lookahead starting from the current node in the word graph. Partial lookaheads are sometimes faster but may not detect as many coincidences as a full lookahead.
Enum class for specifying the style of any lookahead performed.
116
142
117
143
The values in this enum can be used as the argument for
118
144
:any:`ToddCoxeter.lookahead_style` to specify the style of any lookahead that
119
-
should be performed.)pbdoc")
120
-
.value(
121
-
"hlt",
122
-
// JDM couldn't get the links to work in the following doc string.
123
-
ToddCoxeterImpl_::options::lookahead_style::hlt,
124
-
R"pbdoc(The lookahead will be done in HLT style by following the paths labelled by every relation from every node in the range specified by ``options.lookahead_extent.full`` or ``options.lookahead_extent.partial``.)pbdoc")
R"pbdoc(The lookahead will be done in Felsch style where every edge is considered in every path labelled by a relation in which it occurs.)pbdoc")
145
+
should be performed.
146
+
147
+
The valid values are :
148
+
149
+
.. py:attribute:: lookahead_style.hlt
150
+
:value: <lookahead_style.hlt: 0>
151
+
152
+
The lookahead will be done in HLT style by following the paths labelled by every relation from every node in the range specified by :any:`lookahead_extent.full` or :any:`lookahead_extent.partial`.
153
+
154
+
.. py:attribute:: lookahead_style.felsch
155
+
:value: <lookahead_style.hlt: 0>
156
+
157
+
The lookahead will be done in Felsch style where every edge is considered in every path labelled by a relation in which it occurs.
Enum class containing values for specifying how to handle edge
137
170
definitions.
@@ -152,41 +185,68 @@ edge described by a definition.
152
185
153
186
The values in this enum represent what to do if the number of
154
187
definitions in the stack exceeds the value :any:`ToddCoxeter.def_max`.
188
+
189
+
The valid values are:
190
+
191
+
.. py:attribute:: def_policy.no_stack_if_no_space
192
+
:value: <def_policy.no_stack_if_no_space: 0>
193
+
194
+
Do not put newly generated definitions in the stack if the stack already has size :any:`def_max`.
195
+
196
+
.. py:attribute:: def_policy.purge_from_top
197
+
:value: <def_policy.purge_from_top: 1>
198
+
199
+
If the definition stack has size :any:`def_max` and a new definition is generated, then definitions with dead source node are are popped from the top of the stack (if any).
200
+
201
+
.. py:attribute:: def_policy.purge_all
202
+
:value: <def_policy.purge_all: 2>
203
+
204
+
If the definition stack has size :any:`def_max` and a new definition is generated, then definitions with dead source node are are popped from the entire of the stack (if any).
R"pbdoc(If the definition stack has size :any:`def_max` and a new definition is generated, then definitions with dead source node are are popped from the top of the stack (if any).)pbdoc")
164
-
.value(
165
-
"purge_all",
166
-
ToddCoxeterImpl_::options::def_policy::purge_all,
167
-
R"pbdoc(If the definition stack has size :any:`def_max` and a new definition is generated, then definitions with dead source node are are popped from the entire of the stack (if any).)pbdoc")
0 commit comments