LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
transcendental_solver_support.hpp
浏览该文件的文档.
2#pragma once
3
6#include "assumption.hpp"
7
8namespace LMCAS::detail {
9ExprPtr equation_predicate(const ExprPtr& expression);
10ExprPtr substitute_raw(const ExprPtr& expression, const std::string& variable,
11 const ExprPtr& value);
13 const ExprPtr& original, const std::string& variable, SolutionSet solutions,
14 ComputationContext& context, Domain domain, const SolveOptions& options);
15}
16
18
21 std::shared_ptr<SymbolicExpr> inner;
22 std::shared_ptr<SymbolicExpr> rhs;
23 std::shared_ptr<SymbolicExpr> coefficient;
24};
25
27 std::shared_ptr<SymbolicExpr> inner;
28 std::shared_ptr<SymbolicExpr> rhs;
29};
30
32 std::shared_ptr<SymbolicExpr> base;
33 std::shared_ptr<SymbolicExpr> inner;
34 std::shared_ptr<SymbolicExpr> rhs;
35};
36
37bool try_evaluate_numeric(const std::shared_ptr<SymbolicExpr>& expr, lmmc_real_t& out,
39std::optional<InversePattern> decompose_trig_exp_pattern(
40 const std::shared_ptr<SymbolicExpr>& expr, const std::string& var);
41std::optional<LambertWPattern> decompose_lambert_w_pattern(
42 const std::shared_ptr<SymbolicExpr>& expr, const std::string& var, ComputationContext& context);
43std::optional<ExpBasePattern> decompose_exp_base_pattern(
44 const std::shared_ptr<SymbolicExpr>& expr, const std::string& var,
47 const InversePattern& pattern, const ExprPtr& original, const std::string& var,
49SolutionSet conditional_preimage(const ExprPtr& original, const std::string& var);
50std::vector<std::shared_ptr<SymbolicExpr>> invert_lambert_w(
51 const std::shared_ptr<SymbolicExpr>& c, ComputationContext& context);
52std::vector<std::shared_ptr<SymbolicExpr>> invert_exp_base(
53 const std::shared_ptr<SymbolicExpr>& base, const std::shared_ptr<SymbolicExpr>& c,
55
56}
Core enumerations and forward declarations for the Assumption System.
std::optional< LambertWPattern > decompose_lambert_w_pattern(const std::shared_ptr< SymbolicExpr > &expr, const std::string &var, ComputationContext &context)
std::optional< ExpBasePattern > decompose_exp_base_pattern(const std::shared_ptr< SymbolicExpr > &expr, const std::string &var, ComputationContext &context)
std::vector< std::shared_ptr< SymbolicExpr > > invert_lambert_w(const std::shared_ptr< SymbolicExpr > &c, ComputationContext &context)
SolutionSet conditional_preimage(const ExprPtr &original, const std::string &var)
std::optional< InversePattern > decompose_trig_exp_pattern(const std::shared_ptr< SymbolicExpr > &expr, const std::string &var)
SolveResult invert_function(const InversePattern &pattern, const ExprPtr &original, const std::string &var, ComputationContext &context, const SolveOptions &options)
std::vector< std::shared_ptr< SymbolicExpr > > invert_exp_base(const std::shared_ptr< SymbolicExpr > &base, const std::shared_ptr< SymbolicExpr > &c, ComputationContext &context)
bool try_evaluate_numeric(const std::shared_ptr< SymbolicExpr > &expr, lmmc_real_t &out, ComputationContext &context)
多元 Hensel 提升(单变量步)
ExprPtr substitute_raw(const ExprPtr &expression, const std::string &variable, const ExprPtr &value)
SolveResult finalize_solution_set(const ExprPtr &original, const std::string &variable, SolutionSet solutions, ComputationContext &context, Domain domain, const SolveOptions &options)
const std::string & variable
RewriteBudget const FactsQuery Domain domain
ExprPtr equation_predicate(const ExprPtr &expression)
std::size_t std::size_t ComputationContext & context
Result< SolutionSet > SolveResult
Domain
Mathematical domain hierarchy (least specific → most specific). Complex ⊃ Real ⊃ Algebraic ⊃ Rational...
const std::string ComputationContext const SolveOptions & options
const VectorField const VectorField & c
std::shared_ptr< SymbolicExpr > ExprPtr
std::variant< EmptySolutions, UniversalSolutions, FiniteSolutions, IntervalSolutions, ConditionalSolutions, ParametricSolutions > SolutionSet
成功的 SolveResult 表示操作定义域内的完整解集。 完备性未决时返回外层 Inconclusive 错误;EmptySolutions 表示已证明的空解集。
const std::string const ExprPtr & value
方程求解选项,控制数值求解行为和结果形式.
超越方程求解:三角、指数、对数方程的符号反演。
内部 AST 定义。