8#include <unordered_map>
27using PolyTerms = std::map<Monomial, Rational, MonomialLess>;
45 std::unordered_map<size_t, std::shared_ptr<const SymbolicNode>>
aux_to_node;
52 context.limits().max_ast_nodes,
"groebner.convert") {}
73Poly
reduce(Poly polynomial,
const std::vector<Poly>&
basis);
74Poly
s_poly(
const Poly& f,
const Poly& g);
77 const std::set<std::pair<size_t, size_t>>& processed_pairs);
83 const Poly& polynomial,
const PolyContext&
context);
85 const std::vector<SymbolicExpr>& polynomials,
std::vector< SymbolicExpr > reduced_groebner_basis_impl(const std::vector< SymbolicExpr > &polynomials, const std::vector< std::string > &variables, ComputationContext &context)
Monomial div_mono(const Monomial &numerator, const Monomial &denominator)
Poly mul_poly(const Poly &a, const Poly &b)
bool chain_criterion(const std::vector< Poly > &basis, size_t i, size_t j, const std::set< std::pair< size_t, size_t > > &processed_pairs)
bool coprime_leading_monomials(const Poly &f, const Poly &g)
void extend_variables(Poly &polynomial, size_t count)
Poly s_poly(const Poly &f, const Poly &g)
Poly reduce(Poly polynomial, const std::vector< Poly > &basis)
int compute_spoly_sugar(const Poly &f, const Poly &g)
void reduce_basis(std::vector< Poly > &basis)
Monomial mul_mono(const Monomial &a, const Monomial &b)
SymbolicExpr from_poly_ext(const Poly &polynomial, const PolyContext &context)
void align_variables(Poly &a, Poly &b)
Poly to_poly(const SymbolicExpr &expression, PolyContext &context)
std::map< Monomial, Rational, MonomialLess > PolyTerms
bool divides_mono(const Monomial &a, const Monomial &b)
Monomial lcm_mono(const Monomial &a, const Monomial &b)
Poly sub_poly(const Poly &a, const Poly &b)
Poly mul_poly_term(const Poly &polynomial, const Term &term)
Poly add_poly(const Poly &a, const Poly &b)
std::vector< int > Monomial
void buchberger(std::vector< Poly > &basis, size_t num_vars)
std::vector< int > Monomial
单项式类型,以整数向量表示各变量的指数
const std::vector< Polynomial< BigInt > > const BigInt ComputationContext & context
__attribute__((visibility("default"))) VectorCalculusExprResult curve_integral_scalar_checked(const std __attribute__((visibility("default"))) VectorCalculusExprResult curve_integral_scalar_checked(const std __attribute__((visibility("default"))) std const VectorField const std::string const std::shared_ptr< SymbolicExpr > & a
const std::vector< FGLMPoly > & basis
const ExprPtr & denominator
精确有理数 Rational,基于 BigInt 分子/分母表示,自动约分。
bool operator()(const Monomial &a, const Monomial &b) const
std::unordered_map< size_t, std::shared_ptr< const SymbolicNode > > aux_to_node
std::unordered_map< std::string, size_t > transcendental_map
std::vector< std::string > ext_vars
PolyContext(const std::vector< std::string > &variables, ComputationContext &context)
detail::RewriteBudget budget
Rational lead_coeff() const
void add_term(const Monomial &monomial, const Rational &coefficient)
Monomial lead_monomial() const
bool operator>(const SugarPair &other) const
符号表达式主类 SymbolicExpr 及其工厂方法,运算接口.