|
LMCAS
Lamina Computer Algebra System
|
命名空间 | |
| namespace | anonymous_namespace{inequality_solver_ordering.cpp} |
类型定义 | |
| using | RootMultiplicityList = std::vector<std::pair<std::shared_ptr<SymbolicExpr>, int>> |
函数 | |
| static void | append_affine_root (RootMultiplicityList &result, const Polynomial< Rational > &factor, int mult, ComputationContext &context) |
| static void | append_factor_roots (RootMultiplicityList &result, const Polynomial< Rational > &factor, int mult, const std::string &variable, ComputationContext &context) |
| static void | append_quadratic_roots (RootMultiplicityList &result, const Polynomial< Rational > &factor, int mult, ComputationContext &context) |
| static void | append_verified_roots (RootMultiplicityList &result, const Polynomial< Rational > &polynomial, const std::vector< std::shared_ptr< SymbolicExpr > > &roots, int multiplicity, 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) |
| static bool | close_symbolic_endpoint (Endpoint &endpoint, const std::shared_ptr< SymbolicExpr > &root, 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) |
| int | exact_numeric_sign (const std::shared_ptr< SymbolicExpr > &expr, 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) |
| void | include_numeric_root (std::vector< Interval > &intervals, const std::shared_ptr< SymbolicExpr > &root, ComputationContext &context) |
| static void | include_symbolic_root (std::vector< Interval > &intervals, const std::shared_ptr< SymbolicExpr > &root, 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) |
| static std::vector< Interval > | select_open_intervals (const std::vector< std::shared_ptr< SymbolicExpr > > &roots, const std::vector< int > &signs, int target_sign) |
| static std::shared_ptr< SymbolicExpr > | snap_verified_integer_root (const Polynomial< Rational > &poly, const std::shared_ptr< SymbolicExpr > &root, ComputationContext &context) |
| Result< IntervalUnion > | solve_exact_affine_inequality (const Polynomial< Rational > &polynomial, InequalityType type, ComputationContext &context) |
| Result< IntervalUnion > | solve_exact_polynomial_inequality (const Polynomial< Rational > &polynomial, InequalityType type, ComputationContext &context) |
| std::vector< std::shared_ptr< SymbolicExpr > > | solve_symbolic_poly (const Polynomial< SymbolicPolyCoeff > &poly, const std::string &variable, ComputationContext &context) |
| std::optional< double > | try_checked_numeric_constant (const SymbolicExpr &expr, ComputationContext &context) |
| using LMCAS::detail::inequality_support::RootMultiplicityList = std::vector<std::pair<std::shared_ptr<SymbolicExpr>, int>> |
在文件 inequality_solver_numeric.cpp 第 112 行定义.
|
static |
在文件 inequality_solver_numeric.cpp 第 130 行定义.
引用了 LMCAS::a, append_affine_root(), LMCAS::b, LMCAS::Polynomial< CoeffType >::coeffs, LMCAS::detail::context , 以及 try_checked_numeric_constant().
被这些函数引用 append_affine_root() , 以及 find_roots_with_multiplicity().
|
static |
在文件 inequality_solver_numeric.cpp 第 183 行定义.
引用了 LMCAS::SymbolicPolyCoeff::SymbolicPolyCoeff(), append_factor_roots(), append_verified_roots(), LMCAS::Polynomial< CoeffType >::coeffs, LMCAS::detail::context, LMCAS::Polynomial< CoeffType >::degree(), LMCAS::polynomial_solver_detail::solve_by_factoring_impl() , 以及 LMCAS::detail::variable.
被这些函数引用 append_factor_roots() , 以及 find_roots_with_multiplicity().
|
static |
在文件 inequality_solver_numeric.cpp 第 144 行定义.
引用了 LMCAS::a, append_quadratic_roots(), LMCAS::b, LMCAS::c, LMCAS::Polynomial< CoeffType >::coeffs, LMCAS::detail::context , 以及 snap_verified_integer_root().
被这些函数引用 append_quadratic_roots() , 以及 find_roots_with_multiplicity().
|
static |
在文件 inequality_solver_numeric.cpp 第 114 行定义.
引用了 append_verified_roots(), LMCAS::detail::context, LMCAS::detail::multiplicity, LMCAS::roots(), snap_verified_integer_root() , 以及 try_checked_numeric_constant().
被这些函数引用 append_factor_roots(), append_verified_roots() , 以及 find_roots_with_multiplicity().
| IntervalUnion LMCAS::detail::inequality_support::build_parametric_intervals | ( | const std::vector< std::shared_ptr< SymbolicExpr > > & | symbolic_roots, |
| const std::vector< int > & | multiplicities, | ||
| int | leading_sign, | ||
| InequalityType | type, | ||
| ComputationContext & | context ) |
在文件 inequality_solver_chart.cpp 第 86 行定义.
引用了 build_parametric_intervals(), LMCAS::detail::context, LMCAS::GreaterEqual, LMCAS::GreaterThan, include_symbolic_root(), LMCAS::LessThan , 以及 select_open_intervals().
被这些函数引用 build_parametric_intervals() , 以及 LMCAS::anonymous_namespace{inequality_solver_parametric.cpp}::quadratic_solution().
|
static |
在文件 inequality_solver_chart.cpp 第 32 行定义.
引用了 close_symbolic_endpoint(), LMCAS::detail::context, LMCAS::detail::make_expression_ptr(), LMCAS::detail::node() , 以及 LMCAS::detail::normalize_node().
被这些函数引用 close_symbolic_endpoint() , 以及 include_symbolic_root().
| bool LMCAS::detail::inequality_support::depends_on_any_param | ( | const std::shared_ptr< SymbolicExpr > & | expr, |
| const std::vector< std::string > & | parameters ) |
在文件 inequality_solver_numeric.cpp 第 237 行定义.
引用了 depends_on_any_param(), LMCAS::expression_depends_on_variable() , 以及 LMCAS::detail::node().
被这些函数引用 depends_on_any_param().
| int LMCAS::detail::inequality_support::determine_leading_sign | ( | const Polynomial< SymbolicPolyCoeff > & | poly, |
| ComputationContext & | context ) |
在文件 inequality_solver_numeric.cpp 第 55 行定义.
引用了 LMCAS::detail::context, determine_leading_sign(), LMCAS::Polynomial< CoeffType >::is_zero(), LMCAS::Polynomial< CoeffType >::lead_coeff(), LMCAS::detail::make_expression_ptr(), LMCAS::detail::node(), LMCAS::detail::normalize_node(), LMCAS::polynomial_solver_detail::num() , 以及 try_checked_numeric_constant().
被这些函数引用 determine_leading_sign().
| int LMCAS::detail::inequality_support::exact_numeric_sign | ( | const std::shared_ptr< SymbolicExpr > & | expr, |
| ComputationContext & | context ) |
在文件 inequality_solver_numeric.cpp 第 26 行定义.
引用了 LMCAS::detail::context, exact_numeric_sign(), LMCAS::detail::make_expression_ptr(), LMCAS::detail::node(), LMCAS::detail::normalize_node(), LMCAS::polynomial_solver_detail::num() , 以及 LMCAS::value.
被这些函数引用 exact_numeric_sign() , 以及 LMCAS::solve_constant_inequality().
| std::vector< std::pair< std::shared_ptr< SymbolicExpr >, int > > LMCAS::detail::inequality_support::find_roots_with_multiplicity | ( | const std::shared_ptr< SymbolicExpr > & | expr, |
| const std::string & | variable, | ||
| ComputationContext & | context ) |
在文件 inequality_solver_numeric.cpp 第 197 行定义.
引用了 append_affine_root(), append_factor_roots(), append_quadratic_roots(), append_verified_roots(), LMCAS::detail::context, find_roots_with_multiplicity(), LMCAS::roots(), LMCAS::polynomial_solver_detail::solve_by_factoring_impl(), LMCAS::square_free_factorization() , 以及 LMCAS::detail::variable.
被这些函数引用 find_roots_with_multiplicity(), LMCAS::anonymous_namespace{inequality_solver_rational.cpp}::rational_critical_points() , 以及 LMCAS::anonymous_namespace{inequality_solver_rational.cpp}::zero_numerator_domain().
| void LMCAS::detail::inequality_support::include_numeric_root | ( | std::vector< Interval > & | intervals, |
| const std::shared_ptr< SymbolicExpr > & | root, | ||
| ComputationContext & | context ) |
在文件 inequality_solver_chart.cpp 第 11 行定义.
引用了 LMCAS::detail::context, include_numeric_root(), LMCAS::interval(), roots_equal() , 以及 LMCAS::Result< T >::value().
被这些函数引用 include_numeric_root() , 以及 LMCAS::anonymous_namespace{inequality_solver_rational.cpp}::include_rational_zeros().
|
static |
在文件 inequality_solver_chart.cpp 第 50 行定义.
引用了 close_symbolic_endpoint(), LMCAS::detail::context, include_symbolic_root(), LMCAS::interval() , 以及 LMCAS::Result< T >::value().
被这些函数引用 build_parametric_intervals() , 以及 include_symbolic_root().
| bool LMCAS::detail::inequality_support::root_less_than | ( | const std::shared_ptr< SymbolicExpr > & | a, |
| const std::shared_ptr< SymbolicExpr > & | b, | ||
| ComputationContext & | context ) |
在文件 inequality_solver_ordering.cpp 第 99 行定义.
引用了 LMCAS::a, LMCAS::b, LMCAS::detail::context, LMCAS::detail::make_expression_ptr(), LMCAS::detail::node(), LMCAS::detail::normalize_node(), root_less_than() , 以及 try_checked_numeric_constant().
被这些函数引用 root_less_than().
| bool LMCAS::detail::inequality_support::roots_equal | ( | const std::shared_ptr< SymbolicExpr > & | a, |
| const std::shared_ptr< SymbolicExpr > & | b, | ||
| ComputationContext & | context ) |
在文件 inequality_solver_ordering.cpp 第 118 行定义.
引用了 LMCAS::a, LMCAS::b, LMCAS::detail::context, LMCAS::detail::make_expression_ptr(), LMCAS::detail::node(), LMCAS::detail::normalize_node(), roots_equal() , 以及 try_checked_numeric_constant().
被这些函数引用 include_numeric_root(), LMCAS::anonymous_namespace{inequality_solver_rational.cpp}::rational_critical_points() , 以及 roots_equal().
|
static |
在文件 inequality_solver_chart.cpp 第 70 行定义.
引用了 LMCAS::interval(), LMCAS::roots() , 以及 select_open_intervals().
被这些函数引用 build_parametric_intervals() , 以及 select_open_intervals().
|
static |
在文件 inequality_solver_numeric.cpp 第 91 行定义.
引用了 LMCAS::detail::context, LMCAS::Polynomial< CoeffType >::eval(), LMCAS::Polynomial< CoeffType >::is_zero(), snap_verified_integer_root() , 以及 try_checked_numeric_constant().
被这些函数引用 append_quadratic_roots(), append_verified_roots() , 以及 snap_verified_integer_root().
| Result< IntervalUnion > LMCAS::detail::inequality_support::solve_exact_affine_inequality | ( | const Polynomial< Rational > & | polynomial, |
| InequalityType | type, | ||
| ComputationContext & | context ) |
在文件 inequality_solver_polynomial.cpp 第 463 行定义.
引用了 LMCAS::detail::context , 以及 solve_exact_affine_inequality().
被这些函数引用 solve_exact_affine_inequality().
| Result< IntervalUnion > LMCAS::detail::inequality_support::solve_exact_polynomial_inequality | ( | const Polynomial< Rational > & | polynomial, |
| InequalityType | type, | ||
| ComputationContext & | context ) |
在文件 inequality_solver_polynomial.cpp 第 470 行定义.
引用了 LMCAS::detail::context , 以及 solve_exact_polynomial_inequality().
被这些函数引用 solve_exact_polynomial_inequality().
| std::vector< std::shared_ptr< SymbolicExpr > > LMCAS::detail::inequality_support::solve_symbolic_poly | ( | const Polynomial< SymbolicPolyCoeff > & | poly, |
| const std::string & | variable, | ||
| ComputationContext & | context ) |
在文件 inequality_solver_numeric.cpp 第 250 行定义.
引用了 LMCAS::a, LMCAS::b, LMCAS::Polynomial< CoeffType >::coeffs, LMCAS::detail::context, LMCAS::Polynomial< CoeffType >::degree(), LMCAS::get_coeff(), LMCAS::Polynomial< CoeffType >::is_zero(), LMCAS::detail::make_expression_ptr(), LMCAS::detail::node(), LMCAS::detail::normalize_node(), LMCAS::polynomial_solver_detail::solve_by_factoring_impl(), solve_symbolic_poly() , 以及 LMCAS::detail::variable.
被这些函数引用 solve_symbolic_poly().
| std::optional< double > LMCAS::detail::inequality_support::try_checked_numeric_constant | ( | const SymbolicExpr & | expr, |
| ComputationContext & | context ) |
在文件 inequality_solver_numeric.cpp 第 21 行定义.
引用了 LMCAS::detail::context, try_checked_numeric_constant() , 以及 LMCAS::detail::try_finite_numeric().
被这些函数引用 append_affine_root(), append_verified_roots(), determine_leading_sign(), root_less_than(), LMCAS::detail::inequality_support::anonymous_namespace{inequality_solver_ordering.cpp}::root_power_sign(), roots_equal(), snap_verified_integer_root() , 以及 try_checked_numeric_constant().