|
LMCAS
Lamina Computer Algebra System
|
内部 AST 的所有权、节点协议、访问者契约与工厂声明。 更多...
#include <memory>#include <vector>#include <string>#include <variant>#include <algorithm>#include <typeindex>#include <unordered_map>#include <unordered_set>#include <limits>#include "lmcas_export.hpp"#include "symbolic.hpp"#include "rational.hpp"#include "bigint.hpp"#include "unit.hpp"#include "internal/rewrite_budget.hpp"#include "lmmc/config.h"#include "lmmc/numeric.h"#include <stdexcept>#include <atomic>#include <type_traits>#include <utility>类 | |
| struct | LMCAS::detail::SymbolicExprAccess |
| class | LMCAS::detail::SymbolicVisitor |
| struct | LMCAS::detail::SymbolicVisitor::DepthGuard |
| struct | LMCAS::NodeEqual |
| struct | LMCAS::NodeHash |
| struct | LMCAS::SymbolicExpr::Impl |
| class | LMCAS::SymbolicFactory |
| class | LMCAS::SymbolicNode |
命名空间 | |
| namespace | LMCAS |
| namespace | LMCAS::detail |
| 多元 Hensel 提升(单变量步) | |
宏定义 | |
| #define | LMCAS_AST_NODE_FACTORY_FRIEND |
| #define | LMCAS_INTERNAL_AST_INCLUDED 1 |
类型定义 | |
| template<typename T> | |
| using | LMCAS::NodeMap = std::unordered_map<std::shared_ptr<const SymbolicNode>, T, NodeHash, NodeEqual> |
| using | LMCAS::NodeSet = std::unordered_set<std::shared_ptr<const SymbolicNode>, NodeHash, NodeEqual> |
| using | LMCAS::detail::SymbolicNodePtr = std::shared_ptr<const SymbolicNode> |
函数 | |
| inline ::LMCAS::SymbolicExpr | LMCAS::detail::expression_from_node (SymbolicNodePtr root) |
| void | LMCAS::hash_combine (std::size_t &seed, std::size_t value) |
| 将一个哈希值混合到种子中,用于组合多个字段的哈希. | |
| std::shared_ptr<::LMCAS::SymbolicExpr > | LMCAS::detail::make_expression_ptr (const ::LMCAS::SymbolicExpr &expression) |
| std::shared_ptr<::LMCAS::SymbolicExpr > | LMCAS::detail::make_expression_ptr (SymbolicNodePtr root) |
| template<typename Node, typename... Args> | |
| std::shared_ptr< const Node > | LMCAS::detail::make_node (Args &&... args) |
| const SymbolicNodePtr & | LMCAS::detail::node (const ::LMCAS::SymbolicExpr &expression) noexcept |
| const SymbolicNodePtr & | LMCAS::detail::node (const std::shared_ptr< const ::LMCAS::SymbolicExpr > &expression) noexcept |
| const SymbolicNodePtr & | LMCAS::detail::node (const std::shared_ptr<::LMCAS::SymbolicExpr > &expression) noexcept |
内部 AST 的所有权、节点协议、访问者契约与工厂声明。
在文件 base.hpp 中定义.
| #define LMCAS_AST_NODE_FACTORY_FRIEND |