|
LMCAS
Lamina Computer Algebra System
|
积分变换节点,表示 Laplace,Fourier,Z 变换及其逆变换. 更多...
#include </home/runner/work/docs/docs/LMCAS/src/internal/symbolic_ast/bindings.hpp>
Public 类型 | |
| enum class | TransformType { Laplace , InverseLaplace , Fourier , InverseFourier , ZTransform } |
Public 成员函数 | |
| void | accept (LMCAS::detail::SymbolicVisitor &visitor) const override |
| const std::shared_ptr< const SymbolicNode > & | body () const noexcept |
| std::shared_ptr< const SymbolicNode > | clone () const override |
| int | compare (const SymbolicNode &other) const |
| 与另一个节点进行全序比较. | |
| bool | equals (const SymbolicNode &other) const |
| 判断两个节点是否结构相等. | |
| std::size_t | hash () const |
| 获取节点哈希值(带缓存). | |
| virtual bool | is_number () const |
| virtual bool | is_one () const |
| virtual bool | is_positive () const |
| virtual bool | is_zero () const |
| const std::string & | source_var () const noexcept |
| const std::shared_ptr< const SymbolicNode > & | target () const noexcept |
| TransformType | transform_type () const noexcept |
| int | type_priority () const override |
Protected 成员函数 | |
| int | compare_same_type (const SymbolicNode &other) const override |
| std::size_t | compute_hash () const override |
Protected 属性 | |
| std::atomic< std::size_t > | cached_hash {0} |
| std::atomic< bool > | hash_computed {false} |
Private 成员函数 | |
| TransformNode (TransformType tt, std::shared_ptr< const SymbolicNode > b, std::string src, std::shared_ptr< const SymbolicNode > target) | |
| 构造积分变换节点. | |
Private 属性 | |
| const std::shared_ptr< const SymbolicNode > | body_ |
| LMCAS_AST_NODE_FACTORY_FRIEND | |
| const std::string | source_var_ |
| const std::shared_ptr< const SymbolicNode > | target_ |
| const TransformType | transform_type_ |
积分变换节点,表示 Laplace,Fourier,Z 变换及其逆变换.
统一表示各类积分变换:L{f(t)}(s),F{f(t)}(omega),Z{f[n]}(z) 等.
在文件 bindings.hpp 第 251 行定义.
|
strong |
| 枚举值 | |
|---|---|
| Laplace | Laplace 变换 L{f(t)}(s)。 |
| InverseLaplace | 逆 Laplace 变换 L-¹{F(s)}(t)。 |
| Fourier | Fourier 变换 F{f(t)}(omega)。 |
| InverseFourier | 逆 Fourier 变换 F-¹{F(omega)}(t)。 |
| ZTransform | Z 变换 Z{f[n]}(z)。 |
在文件 bindings.hpp 第 253 行定义.
|
inlineprivate |
构造积分变换节点.
| tt | 变换类型 |
| b | 被变换的表达式 |
| src | 源变量名 |
| tgt | 目标变量名 |
在文件 bindings.hpp 第 276 行定义.
引用了 LMCAS::b, body_, source_var_, target(), target_ , 以及 transform_type_.
被这些函数引用 compare_same_type().
|
inlineoverridevirtual |
实现了 LMCAS::SymbolicNode.
在文件 bindings.hpp 第 320 行定义.
引用了 LMCAS::detail::SymbolicVisitor::visit().
|
inlinenoexcept |
在文件 bindings.hpp 第 290 行定义.
引用了 body_.
被这些函数引用 LMCAS::anonymous_namespace{expr_serialization.cpp}::Writer::visit() , 以及 LMCAS::anonymous_namespace{mixed_transcendental_classification.cpp}::TranscendentalDetector::visit().
|
inlineoverridevirtual |
实现了 LMCAS::SymbolicNode.
在文件 bindings.hpp 第 322 行定义.
引用了 body_, LMCAS::detail::make_node(), source_var_, target_ , 以及 transform_type_.
|
inlineinherited |
与另一个节点进行全序比较.
| other | 待比较的节点 |
引用了 SymbolicNode(), compare_same_type() , 以及 type_priority().
被这些函数引用 LMCAS::anonymous_namespace{symbolic_cancel.cpp}::combine_fraction_terms() , 以及 LMCAS::endpoints_equivalent().
|
inlineoverrideprotectedvirtual |
实现了 LMCAS::SymbolicNode.
在文件 bindings.hpp 第 307 行定义.
引用了 LMCAS::SymbolicNode::SymbolicNode(), TransformNode(), body_, source_var_, target_ , 以及 transform_type_.
|
inlineoverrideprotectedvirtual |
实现了 LMCAS::SymbolicNode.
在文件 bindings.hpp 第 297 行定义.
引用了 body_, LMCAS::hash_combine(), source_var_, target_, transform_type_ , 以及 type_priority().
|
inlineinherited |
判断两个节点是否结构相等.
| other | 待比较的节点 |
引用了 SymbolicNode(), compare_same_type(), hash() , 以及 type_priority().
被这些函数引用 LMCAS::complementary_square(), LMCAS::anonymous_namespace{relation_store.cpp}::expr_equals(), LMCAS::match_recursive(), LMCAS::tf_remove_exp_factor() , 以及 LMCAS::tf_substitute_expr().
|
inlineinherited |
获取节点哈希值(带缓存).
引用了 cached_hash, compute_hash() , 以及 hash_computed.
被这些函数引用 LMCAS::MatrixNode::compute_hash(), LMCAS::VariableNode::compute_hash() , 以及 equals().
|
inlinevirtualinherited |
|
inlinevirtualinherited |
|
inlinevirtualinherited |
|
inlinevirtualinherited |
被 LMCAS::ComplexNode , 以及 LMCAS::NumberNode 重载.
被这些函数引用 LMCAS::complex_div_checked(), LMCAS::MatrixNode::compute_hash(), LMCAS::anonymous_namespace{expr_number_domains.cpp}::domain_contains_complex(), LMCAS::is_analytic_impl(), LMCAS::is_euler_equation(), LMCAS::anonymous_namespace{matrix_quadratic_form.cpp}::reconstructs_expression(), LMCAS::anonymous_namespace{complex_analysis.cpp}::split_real_imag() , 以及 LMCAS::symbolic_poly_to_expr().
|
inlinenoexcept |
在文件 bindings.hpp 第 291 行定义.
引用了 source_var_.
被这些函数引用 LMCAS::anonymous_namespace{expr_serialization.cpp}::Writer::visit().
|
inlinenoexcept |
在文件 bindings.hpp 第 292 行定义.
引用了 target_.
被这些函数引用 TransformNode() , 以及 LMCAS::anonymous_namespace{expr_serialization.cpp}::Writer::visit().
|
inlinenoexcept |
在文件 bindings.hpp 第 289 行定义.
引用了 transform_type_.
被这些函数引用 LMCAS::anonymous_namespace{expr_serialization.cpp}::Writer::visit().
|
inlineoverridevirtual |
实现了 LMCAS::SymbolicNode.
在文件 bindings.hpp 第 294 行定义.
被这些函数引用 compute_hash().
|
private |
在文件 bindings.hpp 第 265 行定义.
被这些函数引用 TransformNode(), body(), clone(), compare_same_type() , 以及 compute_hash().
|
mutableprotectedinherited |
被这些函数引用 SymbolicNode() , 以及 hash().
|
mutableprotectedinherited |
被这些函数引用 SymbolicNode() , 以及 hash().
|
private |
在文件 bindings.hpp 第 262 行定义.
|
private |
在文件 bindings.hpp 第 266 行定义.
被这些函数引用 TransformNode(), clone(), compare_same_type(), compute_hash() , 以及 source_var().
|
private |
在文件 bindings.hpp 第 267 行定义.
被这些函数引用 TransformNode(), clone(), compare_same_type(), compute_hash() , 以及 target().
|
private |
在文件 bindings.hpp 第 264 行定义.
被这些函数引用 TransformNode(), clone(), compare_same_type(), compute_hash() , 以及 transform_type().