LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
transform_support.hpp
浏览该文件的文档.
1#pragma once
2
6#include <utility>
7#include <optional>
8
10
11bool te_depends_on(const std::shared_ptr<SymbolicExpr>& expression,
12 const std::string& variable);
13Result<void> te_validate_expr_vars(const std::shared_ptr<SymbolicExpr>& expression,
14 const std::string& input_var,
15 const std::string& output_var,
17 const std::string& operation);
18bool te_contains_transform(const std::shared_ptr<const SymbolicNode>& node);
19TransformEngineResult te_wrap_transform_result(std::shared_ptr<SymbolicExpr> expression,
20 const std::string& operation);
21std::shared_ptr<SymbolicExpr> te_gt_condition(
22 const std::shared_ptr<SymbolicExpr>& lhs,
23 const std::shared_ptr<SymbolicExpr>& rhs);
24bool te_is_zero(const std::shared_ptr<SymbolicExpr>& expression);
25std::optional<Rational> te_number_value(
26 const std::shared_ptr<const SymbolicNode>& node);
27BigInt te_factorial(const BigInt& n, ComputationContext& context);
28std::pair<std::shared_ptr<SymbolicExpr>, std::shared_ptr<SymbolicExpr>> te_split_coeff(
29 const std::shared_ptr<SymbolicExpr>& expression, const std::string& variable);
30std::shared_ptr<SymbolicExpr> te_linear_coefficient(
31 const std::shared_ptr<const SymbolicNode>& argument, const std::string& variable);
32bool te_is_trig(const std::shared_ptr<SymbolicExpr>& expression,
33 const std::string& variable, bool& is_sin,
34 std::shared_ptr<SymbolicExpr>& frequency);
35
37 std::shared_ptr<SymbolicExpr> coefficient;
38 Rational rate;
39};
40
41std::optional<Rational> te_match_pure_gaussian(
42 const std::shared_ptr<SymbolicExpr>& expression,
43 const std::string& variable);
44std::optional<GaussianMatch> te_match_scaled_gaussian(
45 const std::shared_ptr<SymbolicExpr>& expression,
46 const std::string& variable);
47std::shared_ptr<SymbolicExpr> laplace_transform_core(
48 const std::shared_ptr<SymbolicExpr>& expression, const std::string& input_var,
49 const std::string& output_var, ComputationContext& context);
50
51}
Result< void > te_validate_expr_vars(const std::shared_ptr< SymbolicExpr > &expression, const std::string &input_var, const std::string &output_var, ComputationContext &context, const std::string &operation)
std::shared_ptr< SymbolicExpr > laplace_transform_core(const std::shared_ptr< SymbolicExpr > &expression, const std::string &input_var, const std::string &output_var, ComputationContext &context)
bool te_is_trig(const std::shared_ptr< SymbolicExpr > &expression, const std::string &variable, bool &is_sin, std::shared_ptr< SymbolicExpr > &frequency)
std::pair< std::shared_ptr< SymbolicExpr >, std::shared_ptr< SymbolicExpr > > te_split_coeff(const std::shared_ptr< SymbolicExpr > &expression, const std::string &variable)
std::shared_ptr< SymbolicExpr > te_linear_coefficient(const std::shared_ptr< const SymbolicNode > &argument, const std::string &variable)
std::shared_ptr< SymbolicExpr > coefficient
bool te_is_zero(const std::shared_ptr< SymbolicExpr > &expression)
std::shared_ptr< SymbolicExpr > te_gt_condition(const std::shared_ptr< SymbolicExpr > &lhs, const std::shared_ptr< SymbolicExpr > &rhs)
bool te_contains_transform(const std::shared_ptr< const SymbolicNode > &node)
bool te_depends_on(const std::shared_ptr< SymbolicExpr > &expression, const std::string &variable)
TransformEngineResult te_wrap_transform_result(std::shared_ptr< SymbolicExpr > expression, const std::string &operation)
std::optional< GaussianMatch > te_match_scaled_gaussian(const std::shared_ptr< SymbolicExpr > &expression, const std::string &variable)
BigInt te_factorial(const BigInt &n, ComputationContext &context)
std::optional< Rational > te_match_pure_gaussian(const std::shared_ptr< SymbolicExpr > &expression, const std::string &variable)
std::optional< Rational > te_number_value(const std::shared_ptr< const SymbolicNode > &node)
const std::string & variable
const std::vector< Polynomial< BigInt > > const BigInt ComputationContext & context
Result< Verified< EvaluatedTransform > > TransformEngineResult
const ExprPtr & rhs
内部 AST 定义。
积分变换引擎:Laplace 变换,逆 Laplace 变换,Fourier 变换,Z 变换.