LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
transcendental_substitution.cpp 文件参考
#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>
transcendental_substitution.cpp 的引用(Include)关系图:

浏览该文件的源代码.

命名空间

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)
 按映射顺序将超越子表达式替换为不定元,递归重建未匹配节点。