6 #include "../datastructures/roots.h"
20 template<
typename Settings>
24 static constexpr
bool filter =
false;
39 if (!Settings::complete) {
71 for (
const auto poly : deriv.delin().nullified()) {
95 }
else if (deriv.delin().nonzero().find(prop.poly) != deriv.delin().nonzero().end()) {
97 }
else if (deriv.delin().nullified().find(prop.poly) != deriv.delin().nullified().end()) {
111 for (
auto& cell_repr : repr.
cells) {
void polys(boost::container::flat_set< PolyRef > &result) const
A SampledDerivation is a DelineatedDerivation with a sample and an DelineationInterval w....
DelineatedDerivationRef< Properties > & delineated()
const PropertiesTSet< P > & properties() const
void polys(boost::container::flat_set< PolyRef > &result) const
void root_ordering_holds(datastructures::SampledDerivation< P > &deriv, const datastructures::IndexedRootOrdering &ordering)
void cell_analytic_submanifold([[maybe_unused]] datastructures::SampledDerivation< P > &deriv, const datastructures::SymbolicInterval &)
void poly_irreducible_null_sgn_inv(datastructures::SampledDerivation< P > &deriv, datastructures::PolyRef poly)
void poly_ord_inv(datastructures::SampledDerivation< P > &deriv, datastructures::PolyRef poly)
void poly_irreducible_sgn_inv_ec(datastructures::SampledDerivation< P > &deriv, const datastructures::SymbolicInterval &cell, datastructures::PolyRef poly)
void poly_irreducible_nonzero_sgn_inv(datastructures::DelineatedDerivation< P > &deriv, datastructures::PolyRef poly)
void cell_connected(datastructures::SampledDerivation< P > &deriv, const datastructures::SymbolicInterval &cell, const datastructures::IndexedRootOrdering &ordering)
void poly_sgn_inv(datastructures::SampledDerivation< P > &deriv, datastructures::PolyRef poly, bool skip_if_ord_inv=true)
void poly_ord_inv_maybe_null(datastructures::SampledDerivation< P > &deriv, datastructures::PolyRef poly)
bool poly_del(datastructures::SampledDerivation< P > &deriv, datastructures::PolyRef poly)
void poly_irreducible_sgn_inv(datastructures::SampledDerivation< P > &, const datastructures::SymbolicInterval &, const datastructures::IndexedRootOrdering &, [[maybe_unused]] datastructures::PolyRef poly)
void cell_represents(datastructures::SampledDerivation< P > &deriv, const datastructures::SymbolicInterval &cell)
void delineate(datastructures::DelineatedDerivation< P > &deriv, const properties::poly_irreducible_sgn_inv &prop)
void covering_holds(datastructures::DelineatedDerivation< P > &, const datastructures::CoveringDescription &covering, const datastructures::IndexedRootOrdering &ordering)
#define SMTRAT_LOG_FUNC(channel, args)
IndexedRootOrdering ordering
An ordering on the roots that protects the cell.
SymbolicInterval description
Description of a cell.
boost::container::flat_set< PolyRef > equational
Polynomials that should be projected using the equational constraints projection.
SampledDerivationRef< P > derivation
Derivation.
Represents a covering over a cell.
IndexedRootOrdering ordering
An ordering on the roots for the cell boundaries mainting the covering.
std::vector< CellRepresentation< P > > cells
Cells of the covering in increasing order and no cell is contained in another cell.
CoveringDescription get_covering() const
Returns a descriptions of the covering.
static constexpr bool complete
static constexpr bool complete
static bool project_covering_properties(datastructures::CoveringRepresentation< PropertiesSet > &repr)
Project covering properties.
static bool project_basic_properties(datastructures::SampledDerivation< PropertiesSet > &deriv)
Project basic cell properties.
static bool project_cell_properties(datastructures::CellRepresentation< PropertiesSet > &repr)
Project cell properties that depend on a delineation.
static void delineate_properties(datastructures::SampledDerivation< PropertiesSet > &deriv)
Delineate properties.
static constexpr bool filter
datastructures::PolyRef poly