6 #include "../datastructures/roots.h"
16 static constexpr
bool filter =
false;
51 for (
const auto poly : deriv.delin().nullified()) {
75 }
else if (deriv.delin().nonzero().find(prop.poly) != deriv.delin().nonzero().end()) {
77 }
else if (deriv.delin().nullified().find(prop.poly) != deriv.delin().nullified().end()) {
88 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_pdel(datastructures::SampledDerivation< P > &deriv, const datastructures::IndexedRootOrdering &ordering)
void cell_analytic_submanifold([[maybe_unused]] datastructures::SampledDerivation< P > &deriv, const datastructures::SymbolicInterval &)
void poly_ord_inv_pdel(datastructures::SampledDerivation< P > &deriv, datastructures::PolyRef poly)
void poly_irreducible_null_sgn_inv(datastructures::SampledDerivation< P > &deriv, datastructures::PolyRef poly)
void poly_irreducible_sgn_inv_pdel(datastructures::SampledDerivation< P > &deriv, const datastructures::SymbolicInterval &cell, const datastructures::IndexedRootOrdering &, const boost::container::flat_set< datastructures::PolyRef > &ordering_non_projective_polys, datastructures::PolyRef poly)
void poly_irreducible_sgn_inv_ec(datastructures::SampledDerivation< P > &deriv, const datastructures::SymbolicInterval &cell, datastructures::PolyRef poly)
bool poly_del_pdel(datastructures::SampledDerivation< P > &deriv, 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 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)
bool poly_proj_del(datastructures::SampledDerivation< P > &deriv, datastructures::PolyRef poly)
#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.
boost::container::flat_set< PolyRef > ordering_non_projective_polys
Polys that are considered "non-projectively" in the ordering.
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 bool project_covering_properties(datastructures::CoveringRepresentation< PropertiesSet > &repr)
static void delineate_properties(datastructures::SampledDerivation< PropertiesSet > &deriv)
static bool project_basic_properties(datastructures::SampledDerivation< PropertiesSet > &deriv)
static bool project_cell_properties(datastructures::CellRepresentation< PropertiesSet > &repr)
static constexpr bool filter
datastructures::PolyRef poly