|
LMCAS
Lamina Computer Algebra System
|
Public 成员函数 | |
| Writer (ComputationContext &context) | |
| std::string | finish (const NodePtr &root) |
| void | visit (const AddNode &n) override |
| void | visit (const ComplexNode &n) override |
| void | visit (const FiniteSetNode &n) override |
| void | visit (const FunctionNode &n) override |
| void | visit (const IntegralNode &n) override |
| void | visit (const IntervalNode &n) override |
| void | visit (const LimitNode &n) override |
| void | visit (const LogicalNode &n) override |
| void | visit (const MatrixNode &n) override |
| void | visit (const MembershipNode &n) override |
| void | visit (const MultiplyNode &n) override |
| void | visit (const NumberNode &n) override |
| void | visit (const PiecewiseNode &n) override |
| void | visit (const PowerNode &n) override |
| void | visit (const ProductNode &n) override |
| void | visit (const QuantifierNode &n) override |
| void | visit (const QuantityNode &n) override |
| void | visit (const RelationalNode &n) override |
| void | visit (const RootOfNode &n) override |
| void | visit (const SetBuilderNode &n) override |
| void | visit (const SummationNode &n) override |
| void | visit (const TransformNode &n) override |
| void | visit (const UninterpretedFunctionNode &n) override |
| void | visit (const VariableNode &n) override |
Protected 成员函数 | |
| RewriteBudget * | rewrite_budget () const noexcept |
Protected 属性 | |
| int | current_depth = 0 |
静态 Protected 属性 | |
| static constexpr int | MAX_DEPTH = 200 |
Private 成员函数 | |
| NodePtr | base_value (const QuantityNode &n) |
| bool | collect_exact_factors (const std::vector< NodePtr > &factors, Rational &coefficient, std::vector< NodePtr > &remaining) |
| void | emit (const NodePtr &node) |
| template<typename Children> | |
| void | emit_list (const Children &children) |
| bool | needs_scale (const QuantityNode &n, const NodePtr &base) |
| void | put (std::string_view field) |
| void | put_integer (const BigInt &value) |
| void | put_rational (const Rational &value) |
| void | put_size (std::size_t value) |
| NodePtr | scaled_value (const NodePtr &base, const Rational &coefficient, std::vector< NodePtr > &remaining, bool exact_factor) |
Private 属性 | |
| ComputationContext & | context_ |
| std::string | output_ |
| RewriteBudget * | rewrite_budget_ = nullptr |
在文件 expr_serialization.cpp 第 17 行定义.
|
inlineexplicit |
在文件 expr_serialization.cpp 第 19 行定义.
引用了 LMCAS::context, context_, LMCAS::serialization_detail::kHeader , 以及 output_.
|
inlineprivate |
在文件 expr_serialization.cpp 第 156 行定义.
引用了 LMCAS::serialization_detail::check(), collect_exact_factors(), context_, LMCAS::serialization_detail::kEncode, needs_scale(), LMCAS::QuantityNode::scale_to_base(), scaled_value() , 以及 LMCAS::QuantityNode::value().
被这些函数引用 visit().
|
inlineprivate |
在文件 expr_serialization.cpp 第 135 行定义.
引用了 LMCAS::serialization_detail::check(), context_, LMCAS::serialization_detail::kEncode , 以及 LMCAS::value.
被这些函数引用 base_value().
|
inlineprivate |
在文件 expr_serialization.cpp 第 219 行定义.
引用了 context_, LMCAS::depth, LMCAS::InvalidArgument, LMCAS::serialization_detail::kEncode , 以及 LMCAS::ResourceLimit.
被这些函数引用 emit_list(), finish(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit() , 以及 visit().
|
inlineprivate |
在文件 expr_serialization.cpp 第 215 行定义.
引用了 emit() , 以及 put_size().
被这些函数引用 visit(), visit(), visit(), visit() , 以及 visit().
|
inline |
|
inlineprivate |
在文件 expr_serialization.cpp 第 129 行定义.
引用了 LMCAS::QuantityNode::scale_to_base().
被这些函数引用 base_value().
|
inlineprivate |
在文件 expr_serialization.cpp 第 185 行定义.
引用了 LMCAS::serialization_detail::check(), context_, LMCAS::serialization_detail::kEncode, output_ , 以及 LMCAS::ResourceLimit.
被这些函数引用 put_integer(), put_size(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit(), visit() , 以及 visit().
|
inlineprivate |
在文件 expr_serialization.cpp 第 206 行定义.
引用了 LMCAS::serialization_detail::check(), context_, LMCAS::serialization_detail::kEncode, put() , 以及 LMCAS::value.
被这些函数引用 put_rational() , 以及 visit().
|
inlineprivate |
在文件 expr_serialization.cpp 第 210 行定义.
引用了 put_integer() , 以及 LMCAS::value.
被这些函数引用 visit(), visit() , 以及 visit().
|
inlineprivate |
在文件 expr_serialization.cpp 第 201 行定义.
引用了 put() , 以及 LMCAS::value.
被这些函数引用 emit_list(), visit(), visit(), visit() , 以及 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().
|
inlineprivate |
在文件 expr_serialization.cpp 第 172 行定义.
引用了 LMCAS::SymbolicFactory::create_multiply() , 以及 LMCAS::SymbolicFactory::create_number().
被这些函数引用 base_value().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 39 行定义.
引用了 emit_list(), LMCAS::AddNode::operands() , 以及 put().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 109 行定义.
引用了 emit(), LMCAS::ComplexNode::imag(), put() , 以及 LMCAS::ComplexNode::real().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 93 行定义.
引用了 LMCAS::FiniteSetNode::elements(), emit_list() , 以及 put().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 44 行定义.
引用了 LMCAS::FunctionNode::arguments(), emit_list(), LMCAS::serialization_detail::enum_name(), LMCAS::serialization_detail::kEncode, LMCAS::serialization_detail::kFunctions, put() , 以及 LMCAS::FunctionNode::type().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 112 行定义.
引用了 LMCAS::IntegralNode::body(), emit(), LMCAS::IntegralNode::is_definite(), LMCAS::IntegralNode::lower(), put(), LMCAS::IntegralNode::upper() , 以及 LMCAS::IntegralNode::variable().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 94 行定义.
引用了 emit(), LMCAS::IntervalNode::lower(), LMCAS::IntervalNode::lower_closed(), put(), LMCAS::IntervalNode::upper() , 以及 LMCAS::IntervalNode::upper_closed().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 117 行定义.
引用了 LMCAS::LimitNode::body(), LMCAS::LimitNode::direction(), emit(), LMCAS::serialization_detail::enum_name(), LMCAS::serialization_detail::kDirections, LMCAS::serialization_detail::kEncode, LMCAS::LimitNode::point(), put() , 以及 LMCAS::LimitNode::variable().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 61 行定义.
引用了 emit(), LMCAS::serialization_detail::enum_name(), LMCAS::serialization_detail::kEncode, LMCAS::serialization_detail::kLogic, LMCAS::LogicalNode::left(), LMCAS::LogicalNode::Not, LMCAS::LogicalNode::op(), put() , 以及 LMCAS::LogicalNode::right().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 51 行定义.
引用了 LMCAS::c, LMCAS::MatrixNode::cols(), emit(), LMCAS::MatrixNode::get(), put(), put_size(), LMCAS::r , 以及 LMCAS::MatrixNode::rows().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 98 行定义.
引用了 LMCAS::MembershipNode::element(), emit(), put() , 以及 LMCAS::MembershipNode::set().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 40 行定义.
引用了 emit_list(), LMCAS::MultiplyNode::operands() , 以及 put().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 26 行定义.
引用了 LMCAS::integer, put(), put_integer(), put_rational(), LMCAS::NumberNode::value() , 以及 LMCAS::value.
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 66 行定义.
引用了 LMCAS::PiecewiseNode::branches(), LMCAS::PiecewiseNode::default_expr(), emit(), put() , 以及 put_size().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 41 行定义.
引用了 LMCAS::PowerNode::base(), emit(), LMCAS::PowerNode::exponent() , 以及 put().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 78 行定义.
引用了 LMCAS::ProductNode::body(), emit(), LMCAS::ProductNode::index_var(), LMCAS::ProductNode::lower_bound(), put() , 以及 LMCAS::ProductNode::upper_bound().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 86 行定义.
引用了 LMCAS::QuantifierNode::bound_var(), LMCAS::QuantifierNode::domain(), emit(), LMCAS::serialization_detail::enum_name(), LMCAS::serialization_detail::kEncode, LMCAS::serialization_detail::kQuantifiers, LMCAS::QuantifierNode::predicate(), put() , 以及 LMCAS::QuantifierNode::quantifier_type().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 101 行定义.
引用了 base_value(), LMCAS::QuantityNode::dimension(), emit(), LMCAS::exponent, LMCAS::name, put(), put_rational() , 以及 put_size().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 57 行定义.
引用了 emit(), LMCAS::serialization_detail::enum_name(), LMCAS::serialization_detail::kEncode, LMCAS::serialization_detail::kRelations, LMCAS::RelationalNode::left(), LMCAS::RelationalNode::op(), put() , 以及 LMCAS::RelationalNode::right().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 121 行定义.
引用了 LMCAS::Polynomial< CoeffType >::coeffs, LMCAS::RootOfNode::exact_id(), LMCAS::RootOfNode::index(), LMCAS::detail::ExactRootId::polynomial, put(), put_rational(), put_size() , 以及 LMCAS::RootOfNode::variable().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 90 行定义.
引用了 LMCAS::SetBuilderNode::domain(), LMCAS::SetBuilderNode::element_var(), emit(), LMCAS::SetBuilderNode::predicate() , 以及 put().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 74 行定义.
引用了 LMCAS::SummationNode::body(), emit(), LMCAS::SummationNode::index_var(), LMCAS::SummationNode::lower_bound(), put() , 以及 LMCAS::SummationNode::upper_bound().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 82 行定义.
引用了 LMCAS::TransformNode::body(), emit(), LMCAS::serialization_detail::enum_name(), LMCAS::serialization_detail::kEncode, LMCAS::serialization_detail::kTransforms, put(), LMCAS::TransformNode::source_var(), LMCAS::TransformNode::target() , 以及 LMCAS::TransformNode::transform_type().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 48 行定义.
引用了 LMCAS::UninterpretedFunctionNode::arguments(), emit_list(), LMCAS::UninterpretedFunctionNode::name() , 以及 put().
|
inlineoverridevirtual |
实现了 LMCAS::detail::SymbolicVisitor.
在文件 expr_serialization.cpp 第 36 行定义.
引用了 LMCAS::VariableNode::is_constant(), LMCAS::VariableNode::name() , 以及 put().
|
private |
在文件 expr_serialization.cpp 第 231 行定义.
被这些函数引用 Writer(), base_value(), collect_exact_factors(), emit(), put() , 以及 put_integer().
|
protectedinherited |
|
staticconstexprprotectedinherited |
|
private |
在文件 expr_serialization.cpp 第 232 行定义.
|
privateinherited |