|
LMCAS
Lamina Computer Algebra System
|
#include "transcendental_factor.hpp"#include "internal/symbolic_ast.hpp"#include "poly_utils.hpp"#include "internal/expression_analysis.hpp"#include "internal/transcendental_support.hpp"#include <string>#include <vector>#include <unordered_set>#include <limits>#include <cstdint>命名空间 | |
| namespace | LMCAS |
函数 | |
| TransSubstitutionResult | LMCAS::detect_trans_substitutions (const std::shared_ptr< SymbolicExpr > &expr, const std::string &var) |
| 为依赖 var 的 Sin、Cos、Exp、Ln、Tan 子表达式构造换元结果。 | |
| static void | LMCAS::tf_collect_transcendental (const std::shared_ptr< const SymbolicNode > &node, const std::string &var, std::vector< std::shared_ptr< const SymbolicNode > > &candidates) |
| 按先序收集依赖 var 的超越函数子表达式。 | |
| static void | LMCAS::tf_deduplicate (std::vector< std::shared_ptr< const SymbolicNode > > &candidates) |
| 按结构哈希和 equals 比较去重,保留首次出现的顺序。 | |
| static void | LMCAS::tf_detect_constraints (TransSubstitutionResult &result) |
| static bool | LMCAS::tf_is_negation_of (const std::shared_ptr< const SymbolicNode > &node, const std::shared_ptr< const SymbolicNode > &arg) |
| 匹配 (-1)*arg 或 arg*(-1) 的二因子乘积结构。 | |
| static bool | LMCAS::tf_is_sine_cosine_pair (FunctionNode::FuncType first, FunctionNode::FuncType second) |
| bool | LMCAS::tf_is_transcendental_type (FunctionNode::FuncType ft) |
| 判断函数类型是否支持超越函数换元。 | |
| static bool | LMCAS::tf_nodes_equal (const std::shared_ptr< const SymbolicNode > &a, const std::shared_ptr< const SymbolicNode > &b) |
| 判断两个 AST 节点是否结构相等。 | |
| static std::shared_ptr< SymbolicExpr > | LMCAS::tf_pair_constraint (const TransSubstitution &left, const TransSubstitution &right, const FunctionNode &first, const FunctionNode &second) |
| static std::shared_ptr< const SymbolicNode > | LMCAS::tf_substitute_expr (const std::shared_ptr< const SymbolicNode > &node, const std::vector< TransSubstitution > &mappings) |
| 按映射顺序将超越子表达式替换为不定元,递归重建未匹配节点。 | |