15 template<
typename op, representation::CellHeuristic cell_heuristic>
17 SMTRAT_LOG_TRACE(
"smtrat.cadcells.algorithms.onecell",
"Constructing cell on level " << cell_deriv->level());
19 SMTRAT_LOG_TRACE(
"smtrat.cadcells.algorithms.onecell",
"Project properties");
20 if (!op::project_basic_properties(*cell_deriv))
return std::nullopt;
21 SMTRAT_LOG_TRACE(
"smtrat.cadcells.algorithms.onecell",
"Delineate properties");
22 op::delineate_properties(*cell_deriv);
23 cell_deriv->delineate_cell();
24 SMTRAT_LOG_TRACE(
"smtrat.cadcells.algorithms.onecell",
"Got interval " << cell_deriv->cell() <<
" wrt " << cell_deriv->delin());
25 SMTRAT_LOG_TRACE(
"smtrat.cadcells.algorithms.onecell",
"Compute cell representation");
27 SMTRAT_LOG_TRACE(
"smtrat.cadcells.algorithms.onecell",
"Got representation " << cell_repr);
28 if (cell_deriv->level() > 1) {
30 if (!op::project_cell_properties(cell_repr))
return std::nullopt;
33 return std::make_pair(cell_deriv->main_var(),cell_repr.description);
Various algorithms as well as helper functions for developing new algorithms.
std::optional< std::pair< carl::Variable, datastructures::SymbolicInterval > > get_interval(datastructures::SampledDerivationRef< typename op::PropertiesSet > &cell_deriv)
Single cell construction algorithm.
std::shared_ptr< SampledDerivation< Properties > > SampledDerivationRef
#define SMTRAT_LOG_TRACE(channel, msg)
static datastructures::CellRepresentation< T > compute(datastructures::SampledDerivationRef< T > &der)