|
LMCAS
Lamina Computer Algebra System
|
幂运算节点,表示 base^exponent。 更多...
#include </home/runner/work/docs/docs/LMCAS/src/internal/symbolic_ast/arithmetic.hpp>
Public 成员函数 | |
| void | accept (LMCAS::detail::SymbolicVisitor &visitor) const override |
| const std::shared_ptr< const SymbolicNode > & | base () const noexcept |
| std::shared_ptr< const SymbolicNode > | clone () const override |
| int | compare (const SymbolicNode &other) const |
| 与另一个节点进行全序比较. | |
| bool | equals (const SymbolicNode &other) const |
| 判断两个节点是否结构相等. | |
| const std::shared_ptr< const SymbolicNode > & | exponent () const noexcept |
| std::size_t | hash () const |
| 获取节点哈希值(带缓存). | |
| virtual bool | is_number () const |
| virtual bool | is_one () const |
| virtual bool | is_positive () const |
| virtual bool | is_zero () const |
| int | type_priority () const override |
Protected 成员函数 | |
| int | compare_same_type (const SymbolicNode &other) const override |
| std::size_t | compute_hash () const override |
Protected 属性 | |
| std::atomic< std::size_t > | cached_hash {0} |
| std::atomic< bool > | hash_computed {false} |
Private 成员函数 | |
| PowerNode (std::shared_ptr< const SymbolicNode > b, std::shared_ptr< const SymbolicNode > e) | |
Private 属性 | |
| const std::shared_ptr< const SymbolicNode > | base_ |
| const std::shared_ptr< const SymbolicNode > | exponent_ |
| LMCAS_AST_NODE_FACTORY_FRIEND | |
幂运算节点,表示 base^exponent。
在文件 arithmetic.hpp 第 218 行定义.
|
inlineprivate |
在文件 arithmetic.hpp 第 225 行定义.
引用了 LMCAS::b, base_, LMCAS::e() , 以及 exponent_.
被这些函数引用 compare_same_type().
|
inlineoverridevirtual |
实现了 LMCAS::SymbolicNode.
在文件 arithmetic.hpp 第 259 行定义.
引用了 LMCAS::detail::SymbolicVisitor::visit().
|
inlinenoexcept |
在文件 arithmetic.hpp 第 233 行定义.
引用了 base_.
被这些函数引用 LMCAS::NormalizationVisitor::can_combine_nested_power(), LMCAS::equivalence_detail::anonymous_namespace{equivalence_complex.cpp}::canonicalize_power(), LMCAS::anonymous_namespace{limit_result.cpp}::classify_infinite_power(), LMCAS::detail::anonymous_namespace{facts_query_rational.cpp}::closed_rational_power(), LMCAS::coefficient_power_radius(), LMCAS::anonymous_namespace{residual_verification.cpp}::FormalResidual::collect_integer_power(), LMCAS::collect_power_denominators(), LMCAS::anonymous_namespace{residual_verification.cpp}::FormalResidual::convert_integer_power(), LMCAS::anonymous_namespace{expr_number_domains.cpp}::domain_contains_fractional_power(), LMCAS::anonymous_namespace{expr_number_domains.cpp}::domain_contains_positive_integer_power(), LMCAS::anonymous_namespace{expr_number_domains.cpp}::domain_contains_power(), LMCAS::anonymous_namespace{expr_complex_evaluation.cpp}::evaluate_complex_power(), LMCAS::anonymous_namespace{integration_linearity.cpp}::integration_exponential_argument(), LMCAS::detail::series_support::laurent_power_of_power(), LMCAS::NormalizationVisitor::normalize_nested_imaginary_power(), LMCAS::NormalizationVisitor::normalize_nested_power(), LMCAS::detail::anonymous_namespace{interval_endpoint.cpp}::parse_surd_power(), LMCAS::anonymous_namespace{inference_engine_bounds.cpp}::BoundsPropagation::power_bounds(), LMCAS::anonymous_namespace{transcendental_solver_substitution.cpp}::power_candidate(), LMCAS::anonymous_namespace{limit_result.cpp}::power_continuous_structure(), LMCAS::solver_detail::anonymous_namespace{solver_imaginary.cpp}::power_is_imaginary(), LMCAS::detail::transcendental::anonymous_namespace{transcendental_patterns.cpp}::power_pattern(), LMCAS::detail::definite::rational_power_checked(), LMCAS::anonymous_namespace{integration_rational_collection.cpp}::rd_collect_power(), LMCAS::anonymous_namespace{rational_polynomial_recognition.cpp}::recognize_power(), LMCAS::anonymous_namespace{residual_verification.cpp}::replace_root_power(), LMCAS::detail::inequality_support::anonymous_namespace{inequality_solver_ordering.cpp}::root_power_sign(), LMCAS::separable_reciprocal(), LMCAS::symbolic_power_to_poly(), LMCAS::tf_power_degree(), LMCAS::anonymous_namespace{expr_serialization.cpp}::Writer::visit(), LMCAS::anonymous_namespace{mixed_transcendental_classification.cpp}::TranscendentalDetector::visit() , 以及 LMCAS::anonymous_namespace{integration_weierstrass.cpp}::weier_rational_power().
|
inlineoverridevirtual |
实现了 LMCAS::SymbolicNode.
在文件 arithmetic.hpp 第 260 行定义.
引用了 base_, exponent_ , 以及 LMCAS::detail::make_node().
|
inlineinherited |
与另一个节点进行全序比较.
| other | 待比较的节点 |
引用了 SymbolicNode(), compare_same_type() , 以及 type_priority().
被这些函数引用 LMCAS::anonymous_namespace{symbolic_cancel.cpp}::combine_fraction_terms() , 以及 LMCAS::endpoints_equivalent().
|
inlineoverrideprotectedvirtual |
实现了 LMCAS::SymbolicNode.
在文件 arithmetic.hpp 第 249 行定义.
引用了 PowerNode(), LMCAS::SymbolicNode::SymbolicNode(), base_ , 以及 exponent_.
|
inlineoverrideprotectedvirtual |
实现了 LMCAS::SymbolicNode.
在文件 arithmetic.hpp 第 241 行定义.
引用了 base_, exponent_, LMCAS::hash_combine() , 以及 type_priority().
|
inlineinherited |
判断两个节点是否结构相等.
| other | 待比较的节点 |
引用了 SymbolicNode(), compare_same_type(), hash() , 以及 type_priority().
被这些函数引用 LMCAS::complementary_square(), LMCAS::anonymous_namespace{relation_store.cpp}::expr_equals(), LMCAS::match_recursive(), LMCAS::tf_remove_exp_factor() , 以及 LMCAS::tf_substitute_expr().
|
inlinenoexcept |
在文件 arithmetic.hpp 第 234 行定义.
引用了 exponent_.
被这些函数引用 LMCAS::NormalizationVisitor::can_combine_nested_power(), LMCAS::equivalence_detail::anonymous_namespace{equivalence_complex.cpp}::canonicalize_power(), LMCAS::anonymous_namespace{limit_result.cpp}::classify_infinite_power(), LMCAS::detail::anonymous_namespace{facts_query_rational.cpp}::closed_rational_power(), LMCAS::coefficient_power_radius(), LMCAS::collect_power_denominators(), LMCAS::anonymous_namespace{expr_number_domains.cpp}::domain_contains_power(), LMCAS::anonymous_namespace{expr_complex_evaluation.cpp}::evaluate_complex_power(), LMCAS::detail::anonymous_namespace{numeric_evaluation_power.cpp}::exponent_parity(), LMCAS::anonymous_namespace{residual_verification.cpp}::FormalResidual::integer_power(), LMCAS::detail::series_support::laurent_power_of_power(), LMCAS::NormalizationVisitor::normalize_nested_imaginary_power(), LMCAS::NormalizationVisitor::normalize_nested_power(), LMCAS::detail::anonymous_namespace{interval_endpoint.cpp}::parse_surd_power(), LMCAS::anonymous_namespace{inference_engine_bounds.cpp}::BoundsPropagation::power_bounds(), LMCAS::anonymous_namespace{transcendental_solver_substitution.cpp}::power_candidate(), LMCAS::anonymous_namespace{limit_result.cpp}::power_continuous_structure(), LMCAS::solver_detail::anonymous_namespace{solver_imaginary.cpp}::power_is_imaginary(), LMCAS::detail::transcendental::anonymous_namespace{transcendental_patterns.cpp}::power_pattern(), LMCAS::detail::definite::rational_power_checked(), LMCAS::anonymous_namespace{integration_rational_collection.cpp}::rd_collect_power(), LMCAS::anonymous_namespace{rational_polynomial_recognition.cpp}::recognize_power(), LMCAS::anonymous_namespace{residual_verification.cpp}::replace_root_power(), LMCAS::detail::inequality_support::anonymous_namespace{inequality_solver_ordering.cpp}::root_power_sign(), LMCAS::separable_reciprocal(), LMCAS::symbolic_power_to_poly(), LMCAS::tf_power_degree(), LMCAS::anonymous_namespace{expr_serialization.cpp}::Writer::visit(), LMCAS::anonymous_namespace{mixed_transcendental_classification.cpp}::TranscendentalDetector::visit() , 以及 LMCAS::anonymous_namespace{integration_weierstrass.cpp}::weier_rational_power().
|
inlineinherited |
获取节点哈希值(带缓存).
引用了 cached_hash, compute_hash() , 以及 hash_computed.
被这些函数引用 LMCAS::MatrixNode::compute_hash(), LMCAS::VariableNode::compute_hash() , 以及 equals().
|
inlinevirtualinherited |
|
inlinevirtualinherited |
|
inlinevirtualinherited |
|
inlinevirtualinherited |
被 LMCAS::ComplexNode , 以及 LMCAS::NumberNode 重载.
被这些函数引用 LMCAS::complex_div_checked(), LMCAS::MatrixNode::compute_hash(), LMCAS::anonymous_namespace{expr_number_domains.cpp}::domain_contains_complex(), LMCAS::is_analytic_impl(), LMCAS::is_euler_equation(), LMCAS::anonymous_namespace{matrix_quadratic_form.cpp}::reconstructs_expression(), LMCAS::anonymous_namespace{complex_analysis.cpp}::split_real_imag() , 以及 LMCAS::symbolic_poly_to_expr().
|
inlineoverridevirtual |
实现了 LMCAS::SymbolicNode.
在文件 arithmetic.hpp 第 238 行定义.
被这些函数引用 compute_hash().
|
private |
在文件 arithmetic.hpp 第 222 行定义.
被这些函数引用 PowerNode(), base(), clone(), compare_same_type() , 以及 compute_hash().
|
mutableprotectedinherited |
被这些函数引用 SymbolicNode() , 以及 hash().
|
private |
在文件 arithmetic.hpp 第 223 行定义.
被这些函数引用 PowerNode(), clone(), compare_same_type(), compute_hash() , 以及 exponent().
|
mutableprotectedinherited |
被这些函数引用 SymbolicNode() , 以及 hash().
|
private |
在文件 arithmetic.hpp 第 220 行定义.