LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
base.hpp 文件参考

内部 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>
base.hpp 的引用(Include)关系图:
此图展示该文件被哪些文件直接或间接地引用了:

浏览该文件的源代码.

类

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 中定义.

宏定义说明

◆ LMCAS_AST_NODE_FACTORY_FRIEND

#define LMCAS_AST_NODE_FACTORY_FRIEND
值:
template <typename Node, typename... Args> \
friend std::shared_ptr<const Node> \
LMCAS::detail::make_node(Args&&... args)

在文件 base.hpp 第 132 行定义.

◆ LMCAS_INTERNAL_AST_INCLUDED

#define LMCAS_INTERNAL_AST_INCLUDED   1

在文件 base.hpp 第 6 行定义.