SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
heuristics.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "../datastructures/representation.h"
4 
5 /**
6  * @brief Heuristics for computing representations.
7  *
8  */
12  };
13  static const char * CellHeuristicStrings[] = { "BIGGEST_CELL", "CHAIN_EQ", "LOWEST_DEGREE_BARRIERS", "LOWEST_DEGREE_BARRIERS_EQ", "BIGGEST_CELL_FILTER", "BIGGEST_CELL_FILTER_ONLY_INDEPENDENT", "LOWEST_DEGREE_BARRIERS_FILTER", "LOWEST_DEGREE_BARRIERS_FILTER_ONLY_INDEPENDENT", "BIGGEST_CELL_PDEL", "LOWEST_DEGREE_BARRIERS_PDEL", "LOWEST_DEGREE_BARRIERS_CACHE_GLOBAL" };
14 
17  };
18  static const char * CoveringHeuristicStrings[] = { "BIGGEST_CELL_COVERING", "CHAIN_COVERING", "BIGGEST_CELL_COVERING_FILTER", "BIGGEST_CELL_COVERING_FILTER_ONLY_INDEPENDENT", "BIGGEST_CELL_COVERING_MIN_TDEG", "BIGGEST_CELL_COVERING_PDEL", "LDB_COVERING", "LDB_COVERING_CACHE", "LDB_COVERING_CACHE_GLOBAL" };
19 
20  /**
21  * Note: If connected(i) holds, then the indexed root ordering must contain an ordering between the interval bounds.
22  */
23  template<CellHeuristic H>
24  struct cell {
25  template<typename T>
27  };
28 
29  template<CoveringHeuristic H>
30  struct covering {
31  template<typename T>
33  };
34 
35  inline std::ostream& operator<<(std::ostream& os, CellHeuristic heuristic){
36  return os << CellHeuristicStrings[heuristic];
37  }
38  inline std::ostream& operator<<(std::ostream& os, CoveringHeuristic heuristic){
39  return os << CoveringHeuristicStrings[heuristic];
40  }
41 }
42 
43 #include "util.h"
44 #include "heuristics_cell.h"
45 #include "heuristics_covering.h"
std::shared_ptr< SampledDerivation< Properties > > SampledDerivationRef
Definition: derivation.h:25
Heuristics for computing representations.
static const char * CoveringHeuristicStrings[]
Definition: heuristics.h:18
std::ostream & operator<<(std::ostream &os, CellHeuristic heuristic)
Definition: heuristics.h:35
static const char * CellHeuristicStrings[]
Definition: heuristics.h:13
Note: If connected(i) holds, then the indexed root ordering must contain an ordering between the inte...
Definition: heuristics.h:24
static datastructures::CellRepresentation< T > compute(datastructures::SampledDerivationRef< T > &der)
static datastructures::CoveringRepresentation< T > compute(const std::vector< datastructures::SampledDerivationRef< T >> &ders)