15 const Polynomial<Rational>& polynomial,
20 const Polynomial<Rational>& polynomial,
25 const SymbolicExpr& expression, ComputationContext&
context);
31std::vector<std::pair<std::shared_ptr<SymbolicExpr>,
int>>
36 const std::shared_ptr<SymbolicExpr>&
rhs, ComputationContext&
context);
37bool roots_equal(
const std::shared_ptr<SymbolicExpr>& lhs,
38 const std::shared_ptr<SymbolicExpr>&
rhs, ComputationContext&
context);
41 const std::vector<std::string>& parameters);
44 const Polynomial<SymbolicPolyCoeff>& polynomial,
48 const std::shared_ptr<SymbolicExpr>& root,
51 const std::vector<std::shared_ptr<SymbolicExpr>>&
roots,
52 const std::vector<int>& multiplicities,
int leading_sign,
InequalityType type, ComputationContext&
context);
不等式求解器 InequalitySolver,支持多项式,有理式,参数化不等式.
Result< IntervalUnion > solve_exact_polynomial_inequality(const Polynomial< Rational > &polynomial, InequalityType type, ComputationContext &context)
std::vector< std::pair< std::shared_ptr< SymbolicExpr >, int > > find_roots_with_multiplicity(const std::shared_ptr< SymbolicExpr > &expr, const std::string &variable, ComputationContext &context)
bool root_less_than(const std::shared_ptr< SymbolicExpr > &a, const std::shared_ptr< SymbolicExpr > &b, ComputationContext &context)
bool roots_equal(const std::shared_ptr< SymbolicExpr > &a, const std::shared_ptr< SymbolicExpr > &b, ComputationContext &context)
std::vector< std::shared_ptr< SymbolicExpr > > solve_symbolic_poly(const Polynomial< SymbolicPolyCoeff > &poly, const std::string &variable, ComputationContext &context)
int exact_numeric_sign(const std::shared_ptr< SymbolicExpr > &expr, ComputationContext &context)
void include_numeric_root(std::vector< Interval > &intervals, const std::shared_ptr< SymbolicExpr > &root, ComputationContext &context)
std::optional< double > try_checked_numeric_constant(const SymbolicExpr &expr, ComputationContext &context)
Result< IntervalUnion > solve_exact_affine_inequality(const Polynomial< Rational > &polynomial, InequalityType type, ComputationContext &context)
bool depends_on_any_param(const std::shared_ptr< SymbolicExpr > &expr, const std::vector< std::string > ¶meters)
int determine_leading_sign(const Polynomial< SymbolicPolyCoeff > &poly, ComputationContext &context)
IntervalUnion build_parametric_intervals(const std::vector< std::shared_ptr< SymbolicExpr > > &symbolic_roots, const std::vector< int > &multiplicities, int leading_sign, InequalityType type, ComputationContext &context)
const std::string & variable
std::size_t std::size_t ComputationContext & context
ExprSetResult roots(const ExprPtr &expression, const std::string &variable, ComputationContext &context, const SolveOptions &options)