|
LMCAS
Lamina Computer Algebra System
|
#include </home/runner/work/docs/docs/LMCAS/src/internal/symbolic_ast/base.hpp>
Public 成员函数 | |
| virtual | ~SymbolicNode ()=default |
| virtual void | accept (LMCAS::detail::SymbolicVisitor &visitor) const =0 |
| virtual std::shared_ptr< const SymbolicNode > | clone () const =0 |
| int | compare (const SymbolicNode &other) const |
| 与另一个节点进行全序比较. | |
| bool | equals (const SymbolicNode &other) const |
| 判断两个节点是否结构相等. | |
| 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 |
| virtual int | type_priority () const =0 |
Protected 成员函数 | |
| SymbolicNode ()=default | |
| SymbolicNode (const SymbolicNode &) | |
| virtual int | compare_same_type (const SymbolicNode &other) const =0 |
| virtual std::size_t | compute_hash () const =0 |
| SymbolicNode & | operator= (const SymbolicNode &) |
Protected 属性 | |
| std::atomic< std::size_t > | cached_hash {0} |
| std::atomic< bool > | hash_computed {false} |
|
protecteddefault |
被这些函数引用 SymbolicNode(), compare(), LMCAS::AddNode::compare_same_type(), LMCAS::ComplexNode::compare_same_type(), LMCAS::FiniteSetNode::compare_same_type(), LMCAS::FunctionNode::compare_same_type(), LMCAS::IntegralNode::compare_same_type(), LMCAS::IntervalNode::compare_same_type(), LMCAS::LimitNode::compare_same_type(), LMCAS::LogicalNode::compare_same_type(), LMCAS::MatrixNode::compare_same_type(), LMCAS::MembershipNode::compare_same_type(), LMCAS::MultiplyNode::compare_same_type(), LMCAS::NumberNode::compare_same_type(), LMCAS::PiecewiseNode::compare_same_type(), LMCAS::PowerNode::compare_same_type(), LMCAS::ProductNode::compare_same_type(), LMCAS::QuantifierNode::compare_same_type(), LMCAS::QuantityNode::compare_same_type(), LMCAS::RelationalNode::compare_same_type(), LMCAS::RootOfNode::compare_same_type(), LMCAS::SetBuilderNode::compare_same_type(), LMCAS::SummationNode::compare_same_type(), compare_same_type(), LMCAS::TransformNode::compare_same_type(), LMCAS::UninterpretedFunctionNode::compare_same_type(), LMCAS::VariableNode::compare_same_type(), LMCAS::FiniteSetNode::contains(), LMCAS::MultiplyNode::contains_matrix(), equals() , 以及 operator=().
|
inlineprotected |
|
virtualdefault |
|
pure virtual |
在 LMCAS::AddNode, LMCAS::ComplexNode, LMCAS::FiniteSetNode, LMCAS::FunctionNode, LMCAS::IntegralNode, LMCAS::IntervalNode, LMCAS::LimitNode, LMCAS::LogicalNode, LMCAS::MatrixNode, LMCAS::MembershipNode, LMCAS::MultiplyNode, LMCAS::NumberNode, LMCAS::PiecewiseNode, LMCAS::PowerNode, LMCAS::ProductNode, LMCAS::QuantifierNode, LMCAS::QuantityNode, LMCAS::RelationalNode, LMCAS::RootOfNode, LMCAS::SetBuilderNode, LMCAS::SummationNode, LMCAS::TransformNode, LMCAS::UninterpretedFunctionNode , 以及 LMCAS::VariableNode 内被实现.
被这些函数引用 LMCAS::anonymous_namespace{expression_analysis.cpp}::all_names(), LMCAS::anonymous_namespace{complex_analysis.cpp}::contains_explicit_complex(), LMCAS::contains_transcendental_of_var(), LMCAS::anonymous_namespace{solver_groebner_system.cpp}::convert_basis_polynomial(), LMCAS::determine_search_interval(), LMCAS::expression_depends_on_variable(), LMCAS::free_variables(), LMCAS::anonymous_namespace{complex_analysis.cpp}::has_function_of_explicit_complex(), LMCAS::anonymous_namespace{limit_result.cpp}::has_infinity(), LMCAS::anonymous_namespace{complex_analysis.cpp}::has_z_dependent_function(), LMCAS::detail::integration_depends_on_variable(), LMCAS::anonymous_namespace{limit_result.cpp}::limit_complex_at_point() , 以及 LMCAS::anonymous_namespace{solver_groebner_system.cpp}::validate_basis_input().
|
pure virtual |
在 LMCAS::AddNode, LMCAS::ComplexNode, LMCAS::FiniteSetNode, LMCAS::FunctionNode, LMCAS::IntegralNode, LMCAS::IntervalNode, LMCAS::LimitNode, LMCAS::LogicalNode, LMCAS::MatrixNode, LMCAS::MembershipNode, LMCAS::MultiplyNode, LMCAS::NumberNode, LMCAS::PiecewiseNode, LMCAS::PowerNode, LMCAS::ProductNode, LMCAS::QuantifierNode, LMCAS::QuantityNode, LMCAS::RelationalNode, LMCAS::RootOfNode, LMCAS::SetBuilderNode, LMCAS::SummationNode, LMCAS::TransformNode, LMCAS::UninterpretedFunctionNode , 以及 LMCAS::VariableNode 内被实现.
被这些函数引用 LMCAS::anonymous_namespace{integration_weierstrass.cpp}::weier_replace() , 以及 LMCAS::anonymous_namespace{integration_weierstrass.cpp}::weier_to_rational().
|
inline |
与另一个节点进行全序比较.
| other | 待比较的节点 |
引用了 SymbolicNode(), compare_same_type() , 以及 type_priority().
被这些函数引用 LMCAS::anonymous_namespace{symbolic_cancel.cpp}::combine_fraction_terms() , 以及 LMCAS::endpoints_equivalent().
|
protectedpure virtual |
在 LMCAS::AddNode, LMCAS::ComplexNode, LMCAS::FiniteSetNode, LMCAS::FunctionNode, LMCAS::IntegralNode, LMCAS::IntervalNode, LMCAS::LimitNode, LMCAS::LogicalNode, LMCAS::MatrixNode, LMCAS::MembershipNode, LMCAS::MultiplyNode, LMCAS::NumberNode, LMCAS::PiecewiseNode, LMCAS::PowerNode, LMCAS::ProductNode, LMCAS::QuantifierNode, LMCAS::QuantityNode, LMCAS::RelationalNode, LMCAS::RootOfNode, LMCAS::SetBuilderNode, LMCAS::SummationNode, LMCAS::TransformNode, LMCAS::UninterpretedFunctionNode , 以及 LMCAS::VariableNode 内被实现.
引用了 SymbolicNode().
被这些函数引用 compare() , 以及 equals().
|
protectedpure virtual |
在 LMCAS::AddNode, LMCAS::ComplexNode, LMCAS::FiniteSetNode, LMCAS::FunctionNode, LMCAS::IntegralNode, LMCAS::IntervalNode, LMCAS::LimitNode, LMCAS::LogicalNode, LMCAS::MatrixNode, LMCAS::MembershipNode, LMCAS::MultiplyNode, LMCAS::NumberNode, LMCAS::PiecewiseNode, LMCAS::PowerNode, LMCAS::ProductNode, LMCAS::QuantifierNode, LMCAS::QuantityNode, LMCAS::RelationalNode, LMCAS::RootOfNode, LMCAS::SetBuilderNode, LMCAS::SummationNode, LMCAS::TransformNode, LMCAS::UninterpretedFunctionNode , 以及 LMCAS::VariableNode 内被实现.
被这些函数引用 hash().
|
inline |
判断两个节点是否结构相等.
| 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().
|
inline |
获取节点哈希值(带缓存).
引用了 cached_hash, compute_hash() , 以及 hash_computed.
被这些函数引用 LMCAS::MatrixNode::compute_hash(), LMCAS::VariableNode::compute_hash() , 以及 equals().
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
被 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().
|
inlineprotected |
|
pure virtual |
在 LMCAS::AddNode, LMCAS::ComplexNode, LMCAS::FiniteSetNode, LMCAS::FunctionNode, LMCAS::IntegralNode, LMCAS::IntervalNode, LMCAS::LimitNode, LMCAS::LogicalNode, LMCAS::MatrixNode, LMCAS::MembershipNode, LMCAS::MultiplyNode, LMCAS::NumberNode, LMCAS::PiecewiseNode, LMCAS::PowerNode, LMCAS::ProductNode, LMCAS::QuantifierNode, LMCAS::QuantityNode, LMCAS::RelationalNode, LMCAS::RootOfNode, LMCAS::SetBuilderNode, LMCAS::SummationNode, LMCAS::TransformNode, LMCAS::UninterpretedFunctionNode , 以及 LMCAS::VariableNode 内被实现.
被这些函数引用 compare() , 以及 equals().
|
mutableprotected |
被这些函数引用 SymbolicNode() , 以及 hash().
|
mutableprotected |
被这些函数引用 SymbolicNode() , 以及 hash().