14 template<
typename op, representation::CoveringHeuristic covering_heuristic>
16 SMTRAT_LOG_FUNC(
"smtrat.cadcells.algorithms.onecell", constraints <<
", " << sample);
17 std::vector<datastructures::SampledDerivationRef<typename op::PropertiesSet>> unsat_cells;
18 for (
const auto& c : constraints) {
19 auto intervals = get_unsat_intervals<op>(c, proj, sample);
20 unsat_cells.insert(unsat_cells.end(), intervals.begin(), intervals.end());
23 SMTRAT_LOG_TRACE(
"smtrat.cadcells.algorithms.onecell",
"Computing covering representation");
25 SMTRAT_LOG_TRACE(
"smtrat.cadcells.algorithms.onecell",
"Got representation " << covering_repr);
27 SMTRAT_LOG_TRACE(
"smtrat.cadcells.algorithms.onecell",
"Compute covering projection");
28 auto cell_derivs = covering_repr.sampled_derivations();
30 if (!op::project_covering_properties(covering_repr))
return std::nullopt;
32 return covering_repr.cells.front().derivation->underlying().sampled_ref();
Encapsulates all computations on polynomials.
Various algorithms as well as helper functions for developing new algorithms.
std::optional< datastructures::SampledDerivationRef< typename op::PropertiesSet > > get_level_covering(datastructures::Projections &proj, const std::vector< Atom > &constraints, const Assignment &sample)
Computes an unsat covering w.r.t.
void merge_underlying(std::vector< SampledDerivationRef< Properties >> &derivations)
Merges the underlying derivations of a set of sampled derivations.
carl::Assignment< RAN > Assignment
#define SMTRAT_LOG_TRACE(channel, msg)
#define SMTRAT_LOG_FUNC(channel, args)
static datastructures::CoveringRepresentation< T > compute(const std::vector< datastructures::SampledDerivationRef< T >> &ders)