SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
NewCADSettings.h
Go to the documentation of this file.
1 /**
2  * @file NewCADSettings.h
3  * @author YOUR NAME <YOUR EMAIL ADDRESS>
4  *
5  * @version 2016-02-23
6  * Created on 2016-02-23.
7  */
8 
9 #pragma once
10 
11 #include <smtrat-cad/Settings.h>
12 
13 namespace smtrat {
14 namespace cad {
15  /// Mixin that provides settings for incrementality and backtracking.
16  template<Incrementality I, Backtracking B>
18  static constexpr Incrementality incrementality = I;
19  static constexpr Backtracking backtracking = B;
20  };
29 
30  /// Mixin that provides settings for the projection operator.
31  template<ProjectionType P>
32  struct ProjectionMixin {
33  static constexpr ProjectionType projectionOperator = P;
34  };
41 
42  /// Mixin that provides settings for the sample comparison.
43  template<SampleCompareStrategy SCS, FullSampleCompareStrategy FSCS>
47  };
50 
61 
62  /// Mixin that provides settings for the projection order.
63  template<ProjectionCompareStrategy PCS>
66  };
67 
74 
75  /// Mixin that provides settings for MIS generation
76  template<MISHeuristic MIS>
78  static constexpr cad::MISHeuristic misHeuristic = MIS;
79  };
82 }
83 
86  static constexpr std::size_t trivialSampleRadius = 1;
87  static constexpr bool simplifyProjectionByBounds = false;
88  static constexpr bool restrictProjectionByEC = false;
89  static constexpr bool debugProjection = false;
90  static constexpr bool debugStepsToTikz = false;
91  static constexpr bool force_nonincremental = false;
92  static constexpr bool split_for_integers = true;
93 
94  static constexpr bool semiRestrictedProjection = false;
95  static constexpr bool restrictedIfPossible = true;
96 
97  static constexpr bool pp_disable_variable_elimination = true;
98  static constexpr bool pp_disable_resultants = true;
99 
100  };
101 
103  static constexpr auto moduleName = "NewCADModule<Naive>";
104  static constexpr bool force_nonincremental = true;
105  };
106 
108  static constexpr auto moduleName = "NewCADModule<NewCADNO>";
109  };
110 
112  static constexpr auto moduleName = "NewCADModule<NewCADNU>";
113  };
114 
116  static constexpr auto moduleName = "NewCADModule<NewCADSO>";
117  };
119  static constexpr auto moduleName = "NewCADModule<NewCADSU>";
120  };
121 
123  static constexpr auto moduleName = "NewCADModule<NewCADFU>";
124  };
125 
126  //
127  // Settings to test different projection operators
128  //
129 
132  static constexpr auto moduleName = "NewCADModule<NewCADCollins>";
133  };
135  static constexpr auto moduleName = "NewCADModule<NewCADHong>";
136  };
138  static constexpr auto moduleName = "NewCADModule<NewCADMcCallum>";
139  };
141  static constexpr auto moduleName = "NewCADModule<NewCADMcCallumPartial>";
142  };
144  static constexpr auto moduleName = "NewCADModule<NewCADLazard>";
145  };
147  static constexpr auto moduleName = "NewCADModule<NewCADBrown>";
148  };
149 
152  static constexpr auto moduleName = "NewCADModule<NewCADPPVERR>";
153  static constexpr bool pp_disable_variable_elimination = true;
154  static constexpr bool pp_disable_resultants = true;
155  };
157  static constexpr auto moduleName = "NewCADModule<NewCADPPVERR>";
158  static constexpr bool pp_disable_resultants = true;
159  };
161  static constexpr auto moduleName = "NewCADModule<NewCADPPVERR>";
162  static constexpr bool pp_disable_variable_elimination = true;
163  };
165  static constexpr auto moduleName = "NewCADModule<NewCADPPVERR>";
166  };
167 
168  //
169  // Settings to test different lifting order heuristics
170  //
172 
174  static constexpr auto moduleName = "NewCADModule<NewCAD_LOType>";
175  };
177  static constexpr auto moduleName = "NewCADModule<NewCAD_LOT>";
178  };
180  static constexpr auto moduleName = "NewCADModule<NewCAD_LOTLSA>";
181  };
183  static constexpr auto moduleName = "NewCADModule<NewCAD_LOTSA>";
184  };
186  static constexpr auto moduleName = "NewCADModule<NewCAD_LOTS>";
187  };
189  static constexpr auto moduleName = "NewCADModule<NewCAD_LOLT>";
190  };
192  static constexpr auto moduleName = "NewCADModule<NewCADLOLTA>";
193  };
195  static constexpr auto moduleName = "NewCADModule<NewCAD_LOLTS>";
196  };
198  static constexpr auto moduleName = "NewCADModule<NewCAD_LOLTSA>";
199  };
201  static constexpr auto moduleName = "NewCADModule<NewCADLOLS>";
202  };
204  static constexpr auto moduleName = "NewCADModule<NewCAD_LOS>";
205  };
206  // end of lifting order heuristics
207 
208  //
209  // Settings to test different projection order heuristics
210  //
212 
214  static constexpr auto moduleName = "NewCADModule<NewCAD_POD>";
215  };
217  static constexpr auto moduleName = "NewCADModule<NewCAD_POPD>";
218  };
220  static constexpr auto moduleName = "NewCADModule<NewCAD_POSD>";
221  };
223  static constexpr auto moduleName = "NewCADModule<NewCAD_POlD>";
224  };
226  static constexpr auto moduleName = "NewCADModule<NewCAD_POLD>";
227  };
228  // end of projection order heuristics
229 
231  static constexpr auto moduleName = "NewCADModule<NewCADF>";
232  static constexpr std::size_t trivialSampleRadius = 1;
233  };
235  static constexpr auto moduleName = "NewCADModule<NewCADFO>";
236  static constexpr std::size_t trivialSampleRadius = 1;
237  };
239  static constexpr auto moduleName = "NewCADModule<NewCADFO>";
240  static constexpr std::size_t trivialSampleRadius = 1;
241  static constexpr bool simplifyProjectionByBounds = false;
242  };
243 
244 
246  static constexpr auto moduleName = "NewCADModule<NewCADInterleave>";
248  };
249 
251  static constexpr auto moduleName = "NewCADModule<NewCADEQ_B>";
252  static constexpr std::size_t trivialSampleRadius = 1;
253  static constexpr bool simplifyProjectionByBounds = true;
254  static constexpr bool restrictProjectionByEC = false;
255  static constexpr bool deletePolynomials = false;
256  static constexpr bool interruptions = false;
257  static constexpr bool semiRestrictedProjection = false;
258  };
260  static constexpr auto moduleName = "NewCADModule<NewCADEQ_BD>";
261  static constexpr std::size_t trivialSampleRadius = 1;
262  static constexpr bool simplifyProjectionByBounds = true;
263  static constexpr bool restrictProjectionByEC = false;
264  static constexpr bool deletePolynomials = true;
265  static constexpr bool interruptions = false;
266  static constexpr bool semiRestrictedProjection = false;
267  };
269  static constexpr auto moduleName = "NewCADModule<NewCADEQ_R>";
270  static constexpr std::size_t trivialSampleRadius = 1;
271  static constexpr bool simplifyProjectionByBounds = false;
272  static constexpr bool restrictProjectionByEC = true;
273  static constexpr bool deletePolynomials = false;
274  static constexpr bool interruptions = false;
275  static constexpr bool semiRestrictedProjection = false;
276  };
278  static constexpr auto moduleName = "NewCADModule<NewCADEQ_RD>";
279  static constexpr std::size_t trivialSampleRadius = 1;
280  static constexpr bool simplifyProjectionByBounds = false;
281  static constexpr bool restrictProjectionByEC = true;
282  static constexpr bool deletePolynomials = true;
283  static constexpr bool interruptions = false;
284  static constexpr bool semiRestrictedProjection = false;
285  };
287  static constexpr auto moduleName = "NewCADModule<NewCADEQ_RI>";
288  static constexpr std::size_t trivialSampleRadius = 1;
289  static constexpr bool simplifyProjectionByBounds = false;
290  static constexpr bool restrictProjectionByEC = true;
291  static constexpr bool deletePolynomials = false;
292  static constexpr bool interruptions = true;
293  static constexpr bool semiRestrictedProjection = false;
294  };
296  static constexpr auto moduleName = "NewCADModule<NewCADEQ_RID>";
297  static constexpr std::size_t trivialSampleRadius = 1;
298  static constexpr bool simplifyProjectionByBounds = false;
299  static constexpr bool restrictProjectionByEC = true;
300  static constexpr bool deletePolynomials = true;
301  static constexpr bool interruptions = true;
302  static constexpr bool semiRestrictedProjection = false;
303  };
305  static constexpr auto moduleName = "NewCADModule<NewCADEQ_S>";
306  static constexpr std::size_t trivialSampleRadius = 1;
307  static constexpr bool simplifyProjectionByBounds = false;
308  static constexpr bool restrictProjectionByEC = true;
309  static constexpr bool deletePolynomials = false;
310  static constexpr bool interruptions = false;
311  static constexpr bool semiRestrictedProjection = true;
312  };
314  static constexpr auto moduleName = "NewCADModule<NewCADEQ_SD>";
315  static constexpr std::size_t trivialSampleRadius = 1;
316  static constexpr bool simplifyProjectionByBounds = false;
317  static constexpr bool restrictProjectionByEC = true;
318  static constexpr bool deletePolynomials = true;
319  static constexpr bool interruptions = false;
320  static constexpr bool semiRestrictedProjection = true;
321  };
323  static constexpr auto moduleName = "NewCADModule<NewCADEQ_BR>";
324  static constexpr std::size_t trivialSampleRadius = 1;
325  static constexpr bool simplifyProjectionByBounds = true;
326  static constexpr bool restrictProjectionByEC = true;
327  static constexpr bool deletePolynomials = false;
328  static constexpr bool interruptions = false;
329  static constexpr bool semiRestrictedProjection = false;
330  };
332  static constexpr auto moduleName = "NewCADModule<NewCADEQ_BRD>";
333  static constexpr std::size_t trivialSampleRadius = 1;
334  static constexpr bool simplifyProjectionByBounds = true;
335  static constexpr bool restrictProjectionByEC = true;
336  static constexpr bool deletePolynomials = true;
337  static constexpr bool interruptions = false;
338  static constexpr bool semiRestrictedProjection = false;
339  };
341  static constexpr auto moduleName = "NewCADModule<NewCADEQ_BRI>";
342  static constexpr std::size_t trivialSampleRadius = 1;
343  static constexpr bool simplifyProjectionByBounds = true;
344  static constexpr bool restrictProjectionByEC = true;
345  static constexpr bool deletePolynomials = false;
346  static constexpr bool interruptions = true;
347  static constexpr bool semiRestrictedProjection = false;
348  };
350  static constexpr auto moduleName = "NewCADModule<NewCADEQ_BRID>";
351  static constexpr std::size_t trivialSampleRadius = 1;
352  static constexpr bool simplifyProjectionByBounds = true;
353  static constexpr bool restrictProjectionByEC = true;
354  static constexpr bool deletePolynomials = true;
355  static constexpr bool interruptions = true;
356  static constexpr bool semiRestrictedProjection = false;
357  };
359  static constexpr auto moduleName = "NewCADModule<NewCADEQ_BS>";
360  static constexpr std::size_t trivialSampleRadius = 1;
361  static constexpr bool simplifyProjectionByBounds = true;
362  static constexpr bool restrictProjectionByEC = true;
363  static constexpr bool deletePolynomials = false;
364  static constexpr bool interruptions = false;
365  static constexpr bool semiRestrictedProjection = true;
366  };
368  static constexpr auto moduleName = "NewCADModule<NewCADEQ_BSD>";
369  static constexpr std::size_t trivialSampleRadius = 1;
370  static constexpr bool simplifyProjectionByBounds = true;
371  static constexpr bool restrictProjectionByEC = true;
372  static constexpr bool deletePolynomials = true;
373  static constexpr bool interruptions = false;
374  static constexpr bool semiRestrictedProjection = true;
375  };
377  static constexpr auto moduleName = "NewCADModule<NewCADEQ_SI>";
378  static constexpr std::size_t trivialSampleRadius = 1;
379  static constexpr bool simplifyProjectionByBounds = false;
380  static constexpr bool restrictProjectionByEC = true;
381  static constexpr bool deletePolynomials = false;
382  static constexpr bool interruptions = true;
383  static constexpr bool semiRestrictedProjection = true;
384  };
386  static constexpr auto moduleName = "NewCADModule<NewCADEQ_SID>";
387  static constexpr std::size_t trivialSampleRadius = 1;
388  static constexpr bool simplifyProjectionByBounds = false;
389  static constexpr bool restrictProjectionByEC = true;
390  static constexpr bool deletePolynomials = true;
391  static constexpr bool interruptions = true;
392  static constexpr bool semiRestrictedProjection = true;
393  };
395  static constexpr auto moduleName = "NewCADModule<NewCADEQ_BSI>";
396  static constexpr std::size_t trivialSampleRadius = 1;
397  static constexpr bool simplifyProjectionByBounds = true;
398  static constexpr bool restrictProjectionByEC = true;
399  static constexpr bool deletePolynomials = false;
400  static constexpr bool interruptions = true;
401  static constexpr bool semiRestrictedProjection = true;
402  };
404  static constexpr auto moduleName = "NewCADModule<NewCADEQ_BSID>";
405  static constexpr std::size_t trivialSampleRadius = 1;
406  static constexpr bool simplifyProjectionByBounds = true;
407  static constexpr bool restrictProjectionByEC = true;
408  static constexpr bool deletePolynomials = true;
409  static constexpr bool interruptions = true;
410  static constexpr bool semiRestrictedProjection = true;
411  };
412 
414  static constexpr auto moduleName = "NewCADModule<NewCADFV>";
415  };
417  static constexpr auto moduleName = "NewCADModule<NewCADFOV>";
418  };
419 
421  static constexpr auto moduleName = "NewCADModule<MISBase>";
422  };
423 
425  static constexpr auto moduleName = "NewCADModule<MISTrivial>";
427  };
429  static constexpr auto moduleName = "NewCADModule<MISGreedy>";
431  };
433  static constexpr auto moduleName = "NewCADModule<MISGreedyPre>";
435  };
437  static constexpr auto moduleName = "NewCADModule<MISGreedyWeighted>";
439  };
441  static constexpr auto moduleName = "NewCADModule<MISExact>";
443  };
445  static constexpr auto moduleName = "NewCADModule<MISHybrid>";
447  };
448 
450  static constexpr auto moduleName = "NewCADModule<NewCADEnumAll>";
452  };
453 }
Incrementality
Definition: Settings.h:7
SampleCompareStrategy
Definition: Settings.h:14
ProjectionCompareStrategy
Definition: Settings.h:10
FullSampleCompareStrategy
Definition: Settings.h:28
ProjectionType
Definition: Settings.h:9
Class to create the formulas for axioms.
static constexpr bool pp_disable_resultants
static constexpr cad::CoreHeuristic coreHeuristic
static constexpr bool pp_disable_variable_elimination
static constexpr std::size_t trivialSampleRadius
static constexpr bool debugProjection
static constexpr bool simplifyProjectionByBounds
static constexpr bool semiRestrictedProjection
static constexpr bool force_nonincremental
static constexpr bool restrictProjectionByEC
static constexpr bool restrictedIfPossible
static constexpr bool debugStepsToTikz
static constexpr bool split_for_integers
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr bool simplifyProjectionByBounds
static constexpr bool deletePolynomials
static constexpr bool semiRestrictedProjection
static constexpr bool restrictProjectionByEC
static constexpr auto moduleName
static constexpr std::size_t trivialSampleRadius
static constexpr bool interruptions
static constexpr bool simplifyProjectionByBounds
static constexpr bool deletePolynomials
static constexpr bool semiRestrictedProjection
static constexpr auto moduleName
static constexpr std::size_t trivialSampleRadius
static constexpr bool restrictProjectionByEC
static constexpr bool interruptions
static constexpr bool deletePolynomials
static constexpr bool interruptions
static constexpr bool restrictProjectionByEC
static constexpr bool simplifyProjectionByBounds
static constexpr std::size_t trivialSampleRadius
static constexpr bool semiRestrictedProjection
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr bool simplifyProjectionByBounds
static constexpr bool restrictProjectionByEC
static constexpr bool deletePolynomials
static constexpr bool interruptions
static constexpr bool semiRestrictedProjection
static constexpr std::size_t trivialSampleRadius
static constexpr std::size_t trivialSampleRadius
static constexpr bool interruptions
static constexpr bool simplifyProjectionByBounds
static constexpr auto moduleName
static constexpr bool deletePolynomials
static constexpr bool restrictProjectionByEC
static constexpr bool semiRestrictedProjection
static constexpr bool deletePolynomials
static constexpr bool simplifyProjectionByBounds
static constexpr std::size_t trivialSampleRadius
static constexpr bool semiRestrictedProjection
static constexpr auto moduleName
static constexpr bool restrictProjectionByEC
static constexpr bool interruptions
static constexpr bool restrictProjectionByEC
static constexpr std::size_t trivialSampleRadius
static constexpr bool interruptions
static constexpr bool simplifyProjectionByBounds
static constexpr auto moduleName
static constexpr bool semiRestrictedProjection
static constexpr bool deletePolynomials
static constexpr std::size_t trivialSampleRadius
static constexpr bool deletePolynomials
static constexpr bool semiRestrictedProjection
static constexpr bool interruptions
static constexpr auto moduleName
static constexpr bool restrictProjectionByEC
static constexpr bool simplifyProjectionByBounds
static constexpr bool simplifyProjectionByBounds
static constexpr auto moduleName
static constexpr std::size_t trivialSampleRadius
static constexpr bool deletePolynomials
static constexpr bool restrictProjectionByEC
static constexpr bool interruptions
static constexpr bool semiRestrictedProjection
static constexpr auto moduleName
static constexpr bool interruptions
static constexpr bool deletePolynomials
static constexpr std::size_t trivialSampleRadius
static constexpr bool simplifyProjectionByBounds
static constexpr bool semiRestrictedProjection
static constexpr bool restrictProjectionByEC
static constexpr bool simplifyProjectionByBounds
static constexpr std::size_t trivialSampleRadius
static constexpr auto moduleName
static constexpr bool semiRestrictedProjection
static constexpr bool interruptions
static constexpr bool deletePolynomials
static constexpr bool restrictProjectionByEC
static constexpr bool deletePolynomials
static constexpr auto moduleName
static constexpr bool simplifyProjectionByBounds
static constexpr bool semiRestrictedProjection
static constexpr bool interruptions
static constexpr bool restrictProjectionByEC
static constexpr std::size_t trivialSampleRadius
static constexpr std::size_t trivialSampleRadius
static constexpr bool semiRestrictedProjection
static constexpr bool restrictProjectionByEC
static constexpr bool deletePolynomials
static constexpr bool simplifyProjectionByBounds
static constexpr auto moduleName
static constexpr bool interruptions
static constexpr bool simplifyProjectionByBounds
static constexpr bool semiRestrictedProjection
static constexpr bool deletePolynomials
static constexpr std::size_t trivialSampleRadius
static constexpr bool interruptions
static constexpr bool restrictProjectionByEC
static constexpr auto moduleName
static constexpr bool simplifyProjectionByBounds
static constexpr bool restrictProjectionByEC
static constexpr bool interruptions
static constexpr bool semiRestrictedProjection
static constexpr auto moduleName
static constexpr std::size_t trivialSampleRadius
static constexpr bool deletePolynomials
static constexpr auto moduleName
static constexpr bool semiRestrictedProjection
static constexpr bool simplifyProjectionByBounds
static constexpr bool restrictProjectionByEC
static constexpr bool interruptions
static constexpr bool deletePolynomials
static constexpr std::size_t trivialSampleRadius
static constexpr bool restrictProjectionByEC
static constexpr auto moduleName
static constexpr bool interruptions
static constexpr bool semiRestrictedProjection
static constexpr bool simplifyProjectionByBounds
static constexpr std::size_t trivialSampleRadius
static constexpr bool deletePolynomials
static constexpr bool interruptions
static constexpr bool deletePolynomials
static constexpr std::size_t trivialSampleRadius
static constexpr bool simplifyProjectionByBounds
static constexpr bool restrictProjectionByEC
static constexpr auto moduleName
static constexpr bool semiRestrictedProjection
static constexpr cad::CoreHeuristic coreHeuristic
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr std::size_t trivialSampleRadius
static constexpr std::size_t trivialSampleRadius
static constexpr auto moduleName
static constexpr bool simplifyProjectionByBounds
static constexpr std::size_t trivialSampleRadius
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr cad::CoreHeuristic coreHeuristic
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr cad::MISHeuristic misHeuristic
static constexpr auto moduleName
static constexpr cad::MISHeuristic misHeuristic
static constexpr auto moduleName
static constexpr cad::MISHeuristic misHeuristic
static constexpr cad::MISHeuristic misHeuristic
static constexpr auto moduleName
static constexpr cad::MISHeuristic misHeuristic
static constexpr auto moduleName
static constexpr cad::MISHeuristic misHeuristic
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr bool force_nonincremental
static constexpr auto moduleName
static constexpr bool pp_disable_variable_elimination
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr bool pp_disable_resultants
static constexpr auto moduleName
static constexpr bool pp_disable_variable_elimination
static constexpr bool pp_disable_resultants
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
static constexpr auto moduleName
Mixin that provides settings for incrementality and backtracking.
static constexpr Incrementality incrementality
static constexpr Backtracking backtracking
Mixin that provides settings for MIS generation.
static constexpr cad::MISHeuristic misHeuristic
Mixin that provides settings for the projection operator.
static constexpr ProjectionType projectionOperator
Mixin that provides settings for the projection order.
static constexpr cad::ProjectionCompareStrategy projectionComparator
Mixin that provides settings for the sample comparison.
static constexpr cad::FullSampleCompareStrategy fullSampleComparator
static constexpr cad::SampleCompareStrategy sampleComparator