|
LMCAS
Lamina Computer Algebra System
|
统一规范化数值幂。 精确操作数保留整数和有理数运算;近似求根要求指数精确等于 1/2。 有限浮点幂直接折叠,省去倒数中间值;非有限结果保留幂表达式。 更多...
#include </home/runner/work/docs/docs/LMCAS/src/internal/visitors/normalization_visitor.hpp>
Public 成员函数 | |
| NormalizationVisitor (detail::RewriteBudget &, FactsQuery &&, Domain)=delete | |
| NormalizationVisitor (detail::RewriteBudget &budget, const FactsQuery &facts, Domain domain) | |
| std::shared_ptr< const SymbolicNode > | expand_product (const std::shared_ptr< const SymbolicNode > &lhs, const std::shared_ptr< const SymbolicNode > &rhs) |
| std::shared_ptr< const SymbolicNode > | get_result () const |
| void | visit (const AddNode &node) override |
| void | visit (const ComplexNode &node) override |
| void | visit (const FiniteSetNode &node) override |
| void | visit (const FunctionNode &node) override |
| void | visit (const IntegralNode &node) override |
| void | visit (const IntervalNode &node) override |
| void | visit (const LimitNode &node) override |
| void | visit (const LogicalNode &node) override |
| void | visit (const MatrixNode &node) override |
| void | visit (const MembershipNode &node) override |
| void | visit (const MultiplyNode &node) override |
| void | visit (const NumberNode &node) override |
| void | visit (const PiecewiseNode &node) override |
| void | visit (const PowerNode &node) override |
| void | visit (const ProductNode &node) override |
| void | visit (const QuantifierNode &node) override |
| void | visit (const QuantityNode &node) override |
| void | visit (const RelationalNode &node) override |
| void | visit (const RootOfNode &node) override |
| void | visit (const SetBuilderNode &node) override |
| void | visit (const SummationNode &node) override |
| void | visit (const TransformNode &node) override |
| void | visit (const UninterpretedFunctionNode &node) override |
| void | visit (const VariableNode &node) override |
Protected 成员函数 | |
| RewriteBudget * | rewrite_budget () const noexcept |
Protected 属性 | |
| int | current_depth = 0 |
静态 Protected 属性 | |
| static constexpr int | MAX_DEPTH = 200 |
Private 成员函数 | |
| bool | can_combine_nested_power (const PowerNode &inner, const std::shared_ptr< const NumberNode > &outer_exponent) const |
| std::shared_ptr< const SymbolicNode > | collect_expanded_product (const std::shared_ptr< const SymbolicNode > &lhs, const std::shared_ptr< const SymbolicNode > &rhs) |
| std::shared_ptr< const SymbolicNode > | collect_product (const std::vector< std::shared_ptr< const SymbolicNode > > &operands) |
| std::shared_ptr< const SymbolicNode > | collect_sum (const std::vector< std::shared_ptr< const SymbolicNode > > &operands) |
| void | distribute_power (const MultiplyNode &base, const std::shared_ptr< const SymbolicNode > &exponent) |
| std::shared_ptr< const SymbolicNode > | distribute_product (const std::shared_ptr< const SymbolicNode > &lhs, const std::shared_ptr< const SymbolicNode > &rhs) |
| std::shared_ptr< const SymbolicNode > | expand_complex_product (const std::shared_ptr< const SymbolicNode > &lhs, const std::shared_ptr< const SymbolicNode > &rhs) |
| std::shared_ptr< const NumberNode > | extract_term_coefficient (std::shared_ptr< const SymbolicNode > &term) |
| bool | finish_squared_norm (const SymbolicNode &node, std::shared_ptr< const SymbolicNode > &argument, bool normalize_argument) |
| std::shared_ptr< const SymbolicNode > | fuse_matrix_product (const std::shared_ptr< const SymbolicNode > &left, const std::shared_ptr< const SymbolicNode > &right) |
| std::shared_ptr< const SymbolicNode > | matrix_product_element (const MatrixNode &left, const MatrixNode &right, std::size_t row, std::size_t col) |
| void | merge_complex_terms (std::vector< std::shared_ptr< const SymbolicNode > > &operands) |
| std::shared_ptr< const SymbolicNode > | normalize_bound_body (const SymbolicNode &node) |
| bool | normalize_function_parity (FunctionNode::FuncType type, const std::shared_ptr< const SymbolicNode > &argument) |
| bool | normalize_logarithm (FunctionNode::FuncType type, const std::vector< std::shared_ptr< const SymbolicNode > > &arguments) |
| std::shared_ptr< const SymbolicNode > | normalize_matrix_product (const std::vector< std::shared_ptr< const SymbolicNode > > &operands) |
| bool | normalize_matrix_sum (const std::vector< std::shared_ptr< const SymbolicNode > > &operands) |
| bool | normalize_natural_logarithm (const std::shared_ptr< const SymbolicNode > &argument) |
| bool | normalize_nested_imaginary_power (const PowerNode &base, const std::shared_ptr< const NumberNode > &exponent) |
| bool | normalize_nested_power (const PowerNode &base, const std::shared_ptr< const SymbolicNode > &exponent) |
| bool | normalize_power_identity (const std::shared_ptr< const SymbolicNode > &base, const std::shared_ptr< const SymbolicNode > &exponent) |
| bool | normalize_product_power (const MultiplyNode &base, const std::shared_ptr< const SymbolicNode > &exponent) |
| bool | normalize_unary_function (FunctionNode::FuncType type, const std::shared_ptr< const SymbolicNode > &argument) |
| std::shared_ptr< const SymbolicNode > | scale_matrix (const MatrixNode &matrix, const std::shared_ptr< const NumberNode > &scalar) |
| void | set_result (std::shared_ptr< const SymbolicNode > candidate) |
| std::shared_ptr< const SymbolicNode > | simplify_assumed_absolute (const std::shared_ptr< const SymbolicNode > &argument) const |
| std::shared_ptr< const SymbolicNode > | simplify_assumed_square_root (const std::shared_ptr< const SymbolicNode > &argument) const |
| std::shared_ptr< const SymbolicNode > | try_assumption_simplify (const std::shared_ptr< const SymbolicNode > &node) |
| bool | try_normalize_squared_norm (const SymbolicNode &node, std::shared_ptr< const SymbolicNode > &argument) |
静态 Private 成员函数 | |
| static bool | is_positive_integer_number (const std::shared_ptr< const NumberNode > &node) |
Private 属性 | |
| ComputationContext & | context_ |
| Domain | domain_ = Domain::Real |
| const FactsQuery & | facts_ = detail::no_facts() |
| std::shared_ptr< const SymbolicNode > | result |
| RewriteBudget * | rewrite_budget_ = nullptr |
统一规范化数值幂。 精确操作数保留整数和有理数运算;近似求根要求指数精确等于 1/2。 有限浮点幂直接折叠,省去倒数中间值;非有限结果保留幂表达式。
在文件 normalization_visitor.hpp 第 19 行定义.
|
inline |
在文件 normalization_visitor.hpp 第 21 行定义.
引用了 LMCAS::detail::SymbolicVisitor::SymbolicVisitor(), LMCAS::context, context_, LMCAS::domain, domain_ , 以及 facts_.
被这些函数引用 expand_complex_product(), extract_term_coefficient(), matrix_product_element(), merge_complex_terms(), normalize_bound_body(), normalize_logarithm(), normalize_natural_logarithm(), visit() , 以及 visit().
|
delete |
|
private |
在文件 normalization_powers.cpp 第 167 行定义.
引用了 LMCAS::PowerNode::base(), context_, LMCAS::exponent, LMCAS::PowerNode::exponent(), facts_, is_positive_integer_number(), LMCAS::normalization_proved(), LMCAS::detail::query_nonnegative_value() , 以及 LMCAS::rational().
被这些函数引用 collect_product() , 以及 normalize_nested_power().
|
private |
在文件 normalization_products.cpp 第 247 行定义.
引用了 context_, domain_, LMCAS::exponent, facts_, LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 LMCAS::rhs.
被这些函数引用 expand_product().
|
private |
在文件 normalization_products.cpp 第 132 行定义.
引用了 can_combine_nested_power(), context_, domain_, LMCAS::exponent, facts_ , 以及 LMCAS::detail::SymbolicVisitor::rewrite_budget().
被这些函数引用 visit().
|
private |
在文件 normalization_arithmetic.cpp 第 145 行定义.
引用了 LMCAS::add_numbers(), context_, domain_, extract_term_coefficient(), facts_, LMCAS::detail::make_node(), LMCAS::detail::RewriteBudget::measure(), LMCAS::normalization_append(), LMCAS::normalization_can_discard(), LMCAS::normalization_check_arithmetic() , 以及 LMCAS::detail::SymbolicVisitor::rewrite_budget().
被这些函数引用 visit().
|
private |
在文件 normalization_powers.cpp 第 70 行定义.
引用了 LMCAS::exponent, LMCAS::detail::make_node(), LMCAS::make_normalized_multiply_node(), LMCAS::normalization_append(), LMCAS::normalization_check_children(), LMCAS::normalization_check_count(), LMCAS::MultiplyNode::operands(), result , 以及 LMCAS::detail::SymbolicVisitor::rewrite_budget().
被这些函数引用 normalize_product_power().
|
private |
在文件 normalization_products.cpp 第 221 行定义.
引用了 LMCAS::a, LMCAS::b, expand_product(), LMCAS::detail::make_node(), LMCAS::normalization_append(), LMCAS::normalization_check_arithmetic(), LMCAS::normalization_check_count(), LMCAS::detail::SymbolicVisitor::rewrite_budget(), LMCAS::rhs , 以及 LMCAS::right.
被这些函数引用 expand_product().
|
private |
在文件 normalization_products.cpp 第 173 行定义.
引用了 NormalizationVisitor(), LMCAS::SymbolicFactory::create_add(), LMCAS::SymbolicFactory::create_complex(), domain_, expand_product(), facts_, get_result(), LMCAS::imag, LMCAS::detail::make_node(), LMCAS::normalization_check_children(), LMCAS::real(), LMCAS::detail::SymbolicVisitor::rewrite_budget(), LMCAS::rhs , 以及 LMCAS::right.
被这些函数引用 expand_product().
| std::shared_ptr< const SymbolicNode > LMCAS::NormalizationVisitor::expand_product | ( | const std::shared_ptr< const SymbolicNode > & | lhs, |
| const std::shared_ptr< const SymbolicNode > & | rhs ) |
在文件 normalization_products.cpp 第 206 行定义.
引用了 collect_expanded_product(), LMCAS::complex(), distribute_product(), expand_complex_product(), LMCAS::detail::SymbolicVisitor::rewrite_budget(), LMCAS::rhs , 以及 LMCAS::right.
被这些函数引用 NormalizationVisitor(), distribute_product(), expand_complex_product(), LMCAS::ExpandVisitor::visit() , 以及 LMCAS::ExpandVisitor::visit().
|
private |
在文件 normalization_arithmetic.cpp 第 107 行定义.
引用了 NormalizationVisitor(), domain_, facts_, get_result(), LMCAS::detail::make_node(), LMCAS::make_normalized_multiply_node(), LMCAS::normalization_append(), LMCAS::normalization_check_count() , 以及 LMCAS::detail::SymbolicVisitor::rewrite_budget().
被这些函数引用 collect_sum().
|
private |
在文件 normalization_norms.cpp 第 85 行定义.
引用了 LMCAS::detail::make_node(), LMCAS::normalization_check_children(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget(), set_result(), LMCAS::FunctionNode::Sqrt , 以及 try_assumption_simplify().
被这些函数引用 try_normalize_squared_norm().
|
private |
在文件 normalization_matrices.cpp 第 88 行定义.
引用了 LMCAS::a, LMCAS::b, LMCAS::detail::make_node(), matrix_product_element(), LMCAS::normalization_append(), LMCAS::normalization_check_count(), LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 LMCAS::right.
被这些函数引用 normalize_matrix_product().
|
nodiscard |
在文件 normalization_arithmetic.cpp 第 41 行定义.
引用了 result.
被这些函数引用 NormalizationVisitor(), expand_complex_product(), extract_term_coefficient(), LMCAS::anonymous_namespace{limit_result.cpp}::limit_complex_at_point(), matrix_product_element(), merge_complex_terms(), LMCAS::detail::anonymous_namespace{complex_quadratic.cpp}::normalize(), normalize_bound_body(), LMCAS::detail::normalize_node(), visit() , 以及 visit().
|
staticprivate |
在文件 normalization_powers.cpp 第 163 行定义.
引用了 LMCAS::try_get_integer_value() , 以及 LMCAS::value.
被这些函数引用 can_combine_nested_power().
|
private |
在文件 normalization_matrices.cpp 第 68 行定义.
引用了 NormalizationVisitor(), LMCAS::a, LMCAS::b, LMCAS::MatrixNode::cols(), domain_, facts_, get_result(), LMCAS::detail::make_node(), LMCAS::make_normalized_multiply_node(), LMCAS::normalization_append(), LMCAS::normalization_check_arithmetic(), LMCAS::normalization_check_count(), LMCAS::detail::SymbolicVisitor::rewrite_budget(), LMCAS::right , 以及 LMCAS::MatrixNode::storage().
被这些函数引用 fuse_matrix_product().
|
private |
在文件 normalization_arithmetic.cpp 第 70 行定义.
引用了 NormalizationVisitor(), LMCAS::complex(), LMCAS::SymbolicFactory::create_add(), LMCAS::SymbolicFactory::create_complex(), LMCAS::SymbolicFactory::create_number(), domain_, facts_, get_result(), LMCAS::imag, LMCAS::normalization_append(), LMCAS::normalization_check_children(), LMCAS::real() , 以及 LMCAS::detail::SymbolicVisitor::rewrite_budget().
被这些函数引用 visit().
|
private |
在文件 normalization_structural.cpp 第 9 行定义.
引用了 NormalizationVisitor(), LMCAS::detail::binder_view(), domain_, facts_, get_result(), LMCAS::detail::no_facts(), result , 以及 LMCAS::detail::SymbolicVisitor::rewrite_budget().
被这些函数引用 visit(), visit(), visit(), visit(), visit(), visit() , 以及 visit().
|
private |
在文件 normalization_functions.cpp 第 70 行定义.
引用了 LMCAS::FunctionNode::ArcSin, LMCAS::FunctionNode::ArcTan, LMCAS::check_negative_arg(), LMCAS::FunctionNode::Cos, LMCAS::function(), LMCAS::detail::make_node(), LMCAS::make_normalized_multiply_node(), LMCAS::normalization_check_children(), LMCAS::detail::SymbolicVisitor::rewrite_budget(), set_result(), LMCAS::FunctionNode::Sin , 以及 LMCAS::FunctionNode::Tan.
被这些函数引用 normalize_unary_function().
|
private |
在文件 normalization_functions.cpp 第 6 行定义.
引用了 NormalizationVisitor(), context_, LMCAS::denominator, domain_, facts_, LMCAS::FunctionNode::Ln, LMCAS::FunctionNode::Log, LMCAS::detail::make_node(), LMCAS::make_normalized_multiply_node(), LMCAS::normalization_check_children(), LMCAS::normalization_proved(), normalize_natural_logarithm(), LMCAS::detail::query_nonzero_value(), LMCAS::detail::query_positive_value(), LMCAS::detail::query_real_value(), LMCAS::Real, LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
被这些函数引用 visit().
|
private |
在文件 normalization_matrices.cpp 第 128 行定义.
引用了 LMCAS::detail::RewriteBudget::append_size(), fuse_matrix_product(), LMCAS::detail::make_node(), LMCAS::make_normalized_multiply_node(), LMCAS::detail::RewriteBudget::measure(), LMCAS::multiply_numbers(), LMCAS::normalization_append(), LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 scale_matrix().
被这些函数引用 visit().
|
private |
在文件 normalization_matrices.cpp 第 34 行定义.
引用了 LMCAS::detail::make_node(), LMCAS::normalization_append(), LMCAS::normalization_check_arithmetic(), LMCAS::normalization_check_count(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
被这些函数引用 visit().
|
private |
在文件 normalization_functions.cpp 第 42 行定义.
引用了 NormalizationVisitor(), context_, domain_, LMCAS::FunctionNode::Exp, facts_, LMCAS::function(), LMCAS::FunctionNode::Ln, LMCAS::detail::make_node(), LMCAS::make_normalized_multiply_node(), LMCAS::normalization_check_children(), LMCAS::normalization_proved(), LMCAS::detail::query_positive_value(), LMCAS::detail::query_real_value(), LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
被这些函数引用 normalize_logarithm().
|
private |
在文件 normalization_powers.cpp 第 89 行定义.
引用了 LMCAS::PowerNode::base(), LMCAS::exponent, LMCAS::PowerNode::exponent(), LMCAS::integer, LMCAS::normalization_imaginary_power(), LMCAS::rational(), LMCAS::detail::SymbolicVisitor::rewrite_budget(), set_result() , 以及 LMCAS::try_get_integer_value().
被这些函数引用 normalize_nested_power().
|
private |
在文件 normalization_powers.cpp 第 111 行定义.
引用了 LMCAS::PowerNode::base(), can_combine_nested_power(), LMCAS::exponent, LMCAS::PowerNode::exponent(), LMCAS::detail::make_node(), LMCAS::make_normalized_multiply_node(), LMCAS::normalization_check_children(), normalize_nested_imaginary_power(), result , 以及 LMCAS::detail::SymbolicVisitor::rewrite_budget().
被这些函数引用 visit().
|
private |
在文件 normalization_powers.cpp 第 6 行定义.
引用了 LMCAS::Complex, context_, domain_, LMCAS::exponent, facts_, LMCAS::detail::make_node(), LMCAS::normalization_can_discard(), LMCAS::normalization_check_children(), LMCAS::normalization_proved(), LMCAS::detail::query_nonzero_value(), LMCAS::detail::query_positive_value(), LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
被这些函数引用 visit().
|
private |
在文件 normalization_powers.cpp 第 41 行定义.
引用了 context_, distribute_power(), LMCAS::exponent, facts_, LMCAS::integer, LMCAS::normalization_proved(), LMCAS::MultiplyNode::operands(), LMCAS::detail::query_nonnegative_value(), LMCAS::detail::query_positive_value(), LMCAS::detail::query_real_value() , 以及 LMCAS::try_get_integer_value().
被这些函数引用 visit().
|
private |
在文件 normalization_functions.cpp 第 98 行定义.
引用了 LMCAS::get_pi_coeff(), LMCAS::normalization_pi_function(), normalize_function_parity(), LMCAS::detail::SymbolicVisitor::rewrite_budget(), set_result() , 以及 LMCAS::value.
被这些函数引用 visit().
|
inlineprotectednoexceptinherited |
引用了 rewrite_budget_.
被这些函数引用 LMCAS::ExpandVisitor::append_child(), LMCAS::DifferentiationVisitor::append_result(), LMCAS::ExpandVisitor::check_child_count(), LMCAS::NormalizationVisitor::collect_expanded_product(), LMCAS::NormalizationVisitor::collect_product(), LMCAS::NormalizationVisitor::collect_sum(), LMCAS::DifferentiationVisitor::differentiate_atan2(), LMCAS::NormalizationVisitor::distribute_power(), LMCAS::NormalizationVisitor::distribute_product(), LMCAS::NormalizationVisitor::expand_complex_product(), LMCAS::NormalizationVisitor::expand_product(), LMCAS::NormalizationVisitor::extract_term_coefficient(), LMCAS::NormalizationVisitor::finish_squared_norm(), LMCAS::NormalizationVisitor::fuse_matrix_product(), LMCAS::NormalizationVisitor::matrix_product_element(), LMCAS::NormalizationVisitor::merge_complex_terms(), LMCAS::NormalizationVisitor::normalize_bound_body(), LMCAS::NormalizationVisitor::normalize_function_parity(), LMCAS::NormalizationVisitor::normalize_logarithm(), LMCAS::NormalizationVisitor::normalize_matrix_product(), LMCAS::NormalizationVisitor::normalize_matrix_sum(), LMCAS::NormalizationVisitor::normalize_natural_logarithm(), LMCAS::NormalizationVisitor::normalize_nested_imaginary_power(), LMCAS::NormalizationVisitor::normalize_nested_power(), LMCAS::NormalizationVisitor::normalize_power_identity(), LMCAS::NormalizationVisitor::normalize_unary_function(), LMCAS::anonymous_namespace{expression_analysis.cpp}::FreeSubstitution::rewrite_scoped(), LMCAS::NormalizationVisitor::scale_matrix(), LMCAS::DifferentiationVisitor::set_result(), LMCAS::ExpandVisitor::set_result(), LMCAS::ExpandVisitor::set_result(), LMCAS::NormalizationVisitor::set_result(), LMCAS::NormalizationVisitor::simplify_assumed_absolute(), LMCAS::NormalizationVisitor::simplify_assumed_square_root(), LMCAS::NormalizationVisitor::try_normalize_squared_norm(), LMCAS::groebner_detail::PolyBuilder::use_numeric_function(), LMCAS::detail::SymbolicRewriter::visit(), LMCAS::detail::SymbolicRewriter::visit(), LMCAS::DifferentiationVisitor::visit(), LMCAS::DifferentiationVisitor::visit(), LMCAS::DifferentiationVisitor::visit(), LMCAS::DifferentiationVisitor::visit(), LMCAS::DifferentiationVisitor::visit(), LMCAS::DifferentiationVisitor::visit(), LMCAS::DifferentiationVisitor::visit(), LMCAS::ExpandVisitor::visit(), LMCAS::ExpandVisitor::visit(), LMCAS::ExpandVisitor::visit(), LMCAS::ExpandVisitor::visit(), LMCAS::ExpandVisitor::visit(), LMCAS::groebner_detail::PolyBuilder::visit(), LMCAS::groebner_detail::PolyBuilder::visit(), LMCAS::groebner_detail::PolyBuilder::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit(), LMCAS::NormalizationVisitor::visit() , 以及 LMCAS::NormalizationVisitor::visit().
|
private |
在文件 normalization_matrices.cpp 第 112 行定义.
引用了 LMCAS::MatrixNode::cols(), LMCAS::element, LMCAS::detail::make_node(), LMCAS::normalization_append(), LMCAS::normalization_check_arithmetic(), LMCAS::normalization_check_count(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 LMCAS::MatrixNode::rows().
被这些函数引用 normalize_matrix_product().
|
private |
在文件 normalization_arithmetic.cpp 第 45 行定义.
引用了 LMCAS::detail::RewriteBudget::measure_result(), result , 以及 LMCAS::detail::SymbolicVisitor::rewrite_budget().
被这些函数引用 finish_squared_norm(), normalize_function_parity(), normalize_logarithm(), normalize_matrix_sum(), normalize_natural_logarithm(), normalize_nested_imaginary_power(), normalize_power_identity(), normalize_unary_function(), try_normalize_squared_norm(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit() , 以及 visit().
|
private |
在文件 normalization_functions.cpp 第 190 行定义.
引用了 context_, facts_, LMCAS::FactsQuery::is_negative(), LMCAS::detail::make_node(), LMCAS::make_normalized_multiply_node(), LMCAS::normalization_proved(), LMCAS::detail::query_nonnegative_value(), LMCAS::detail::query_real_value() , 以及 LMCAS::detail::SymbolicVisitor::rewrite_budget().
被这些函数引用 try_assumption_simplify().
|
private |
在文件 normalization_functions.cpp 第 160 行定义.
引用了 LMCAS::FunctionNode::Abs, context_, LMCAS::Result< T >::error(), LMCAS::exponent, facts_, LMCAS::detail::make_node(), LMCAS::normalization_check_children(), LMCAS::normalization_proved(), LMCAS::detail::query_nonnegative_value(), LMCAS::detail::query_real_value(), LMCAS::real(), LMCAS::detail::SymbolicVisitor::rewrite_budget(), LMCAS::True, LMCAS::try_get_integer_value(), LMCAS::Result< T >::value() , 以及 LMCAS::value.
被这些函数引用 try_assumption_simplify().
|
private |
在文件 normalization_functions.cpp 第 204 行定义.
引用了 LMCAS::FunctionNode::Abs, LMCAS::function(), simplify_assumed_absolute(), simplify_assumed_square_root() , 以及 LMCAS::FunctionNode::Sqrt.
被这些函数引用 finish_squared_norm() , 以及 visit().
|
private |
在文件 normalization_norms.cpp 第 54 行定义.
引用了 LMCAS::a, LMCAS::b, finish_squared_norm(), LMCAS::normalization_exact_square_root(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget(), set_result() , 以及 LMCAS::detail::squared_norm_terms().
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_arithmetic.cpp 第 196 行定义.
引用了 LMCAS::add(), collect_sum(), merge_complex_terms(), LMCAS::normalization_append(), normalize_matrix_sum(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_arithmetic.cpp 第 62 行定义.
引用了 LMCAS::SymbolicFactory::create_complex(), LMCAS::normalization_check_children(), LMCAS::real(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_structural.cpp 第 313 行定义.
引用了 LMCAS::element, LMCAS::detail::make_node(), LMCAS::normalization_append(), LMCAS::normalization_check_count(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_functions.cpp 第 110 行定义.
引用了 LMCAS::detail::RewriteBudget::append_size(), LMCAS::function(), LMCAS::detail::make_node(), LMCAS::normalization_append(), LMCAS::normalization_numeric_function(), normalize_logarithm(), normalize_unary_function(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget(), set_result(), try_assumption_simplify(), try_normalize_squared_norm() , 以及 LMCAS::value.
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_structural.cpp 第 355 行定义.
引用了 LMCAS::lower, LMCAS::detail::make_node(), LMCAS::normalization_check_children(), normalize_bound_body(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget(), set_result() , 以及 LMCAS::upper.
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_structural.cpp 第 325 行定义.
引用了 LMCAS::lower, LMCAS::detail::make_node(), LMCAS::normalization_check_children(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_structural.cpp 第 370 行定义.
引用了 LMCAS::detail::make_node(), LMCAS::normalization_check_children(), normalize_bound_body(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
|
overridevirtual |
Implication: A ⇒ B = ¬A ∨ B
NOT handling: De Morgan's laws and double negation
Normalize the operand first
Double negation: ¬(¬A) = A
De Morgan's law: ¬(A∧B) = ¬A∨¬B
De Morgan's law: ¬(A∨B) = ¬A∧¬B
And / Or: normalize operands
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_structural.cpp 第 72 行定义.
引用了 LMCAS::LogicalNode::And, LMCAS::LogicalNode::Implies, LMCAS::detail::make_node(), LMCAS::normalization_check_children(), LMCAS::LogicalNode::Not, LMCAS::LogicalNode::Or, result, LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_structural.cpp 第 22 行定义.
引用了 LMCAS::detail::RewriteBudget::append_size(), LMCAS::detail::make_node(), LMCAS::normalization_append(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_structural.cpp 第 334 行定义.
引用了 LMCAS::element, LMCAS::detail::make_node(), LMCAS::normalization_check_children(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget(), LMCAS::set , 以及 set_result().
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_products.cpp 第 153 行定义.
引用了 collect_product(), LMCAS::normalization_append(), normalize_matrix_product(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_arithmetic.cpp 第 52 行定义.
引用了 LMCAS::detail::RewriteBudget::require_nodes(), LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
被这些函数引用 NormalizationVisitor().
|
overridevirtual |
Normalize expression
Normalize condition
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_structural.cpp 第 147 行定义.
引用了 LMCAS::detail::RewriteBudget::append_size(), LMCAS::b, LMCAS::detail::make_node(), LMCAS::normalization_check_count(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_powers.cpp 第 126 行定义.
引用了 context_, domain_, LMCAS::exponent, facts_, LMCAS::detail::make_node(), LMCAS::normalization_can_discard(), LMCAS::normalization_check_children(), LMCAS::normalization_numeric_power(), normalize_nested_power(), normalize_power_identity(), normalize_product_power(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget(), set_result() , 以及 try_normalize_squared_norm().
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_structural.cpp 第 226 行定义.
引用了 NormalizationVisitor(), domain_, facts_, get_result(), LMCAS::detail::make_node(), LMCAS::make_normalized_multiply_node(), LMCAS::norm_subst_index(), LMCAS::normalization_append(), LMCAS::normalization_check_children(), LMCAS::normalization_check_count(), normalize_bound_body(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget(), set_result() , 以及 LMCAS::try_get_integer_value().
|
overridevirtual |
Simplify ∀x∈S: true → true
Simplify ∃x∈S: false → false
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_structural.cpp 第 278 行定义.
引用了 LMCAS::QuantifierNode::Exists, LMCAS::QuantifierNode::ForAll, LMCAS::detail::make_node(), LMCAS::normalization_check_children(), normalize_bound_body(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_structural.cpp 第 348 行定义.
引用了 LMCAS::detail::make_node(), LMCAS::normalization_check_children(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_structural.cpp 第 51 行定义.
引用了 LMCAS::detail::make_node(), LMCAS::normalization_check_children(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_structural.cpp 第 378 行定义.
引用了 LMCAS::detail::RewriteBudget::require_nodes(), LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_structural.cpp 第 303 行定义.
引用了 LMCAS::detail::make_node(), LMCAS::normalization_check_children(), normalize_bound_body(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
|
overridevirtual |
当上下界均为具体整数且范围较小时,展开求和为显式和。
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_structural.cpp 第 180 行定义.
引用了 NormalizationVisitor(), domain_, facts_, get_result(), LMCAS::detail::make_node(), LMCAS::norm_subst_index(), LMCAS::normalization_append(), LMCAS::normalization_check_arithmetic(), LMCAS::normalization_check_children(), LMCAS::normalization_check_count(), normalize_bound_body(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget(), set_result() , 以及 LMCAS::try_get_integer_value().
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_structural.cpp 第 270 行定义.
引用了 LMCAS::detail::make_node(), LMCAS::normalization_check_children(), normalize_bound_body(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_functions.cpp 第 148 行定义.
引用了 LMCAS::detail::make_node(), LMCAS::normalization_append(), LMCAS::normalization_check_count(), result, LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
|
overridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 normalization_arithmetic.cpp 第 57 行定义.
引用了 LMCAS::detail::RewriteBudget::require_nodes(), LMCAS::detail::SymbolicVisitor::rewrite_budget() , 以及 set_result().
|
private |
在文件 normalization_visitor.hpp 第 59 行定义.
被这些函数引用 NormalizationVisitor(), can_combine_nested_power(), collect_expanded_product(), collect_product(), collect_sum(), normalize_logarithm(), normalize_natural_logarithm(), normalize_power_identity(), normalize_product_power(), simplify_assumed_absolute(), simplify_assumed_square_root() , 以及 visit().
|
protectedinherited |
|
private |
在文件 normalization_visitor.hpp 第 62 行定义.
被这些函数引用 NormalizationVisitor(), collect_expanded_product(), collect_product(), collect_sum(), expand_complex_product(), extract_term_coefficient(), matrix_product_element(), merge_complex_terms(), normalize_bound_body(), normalize_logarithm(), normalize_natural_logarithm(), normalize_power_identity(), visit(), visit() , 以及 visit().
|
private |
在文件 normalization_visitor.hpp 第 61 行定义.
被这些函数引用 NormalizationVisitor(), can_combine_nested_power(), collect_expanded_product(), collect_product(), collect_sum(), expand_complex_product(), extract_term_coefficient(), matrix_product_element(), merge_complex_terms(), normalize_bound_body(), normalize_logarithm(), normalize_natural_logarithm(), normalize_power_identity(), normalize_product_power(), simplify_assumed_absolute(), simplify_assumed_square_root(), visit(), visit() , 以及 visit().
|
staticconstexprprotectedinherited |
|
private |
在文件 normalization_visitor.hpp 第 60 行定义.
被这些函数引用 distribute_power(), finish_squared_norm(), get_result(), normalize_bound_body(), normalize_matrix_sum(), normalize_nested_power(), scale_matrix(), set_result(), try_normalize_squared_norm(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit() , 以及 visit().
|
privateinherited |