LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
LMCAS::serialization_detail 命名空间参考

类

class  Recursion

类型定义

using NodePtr = detail::SymbolicNodePtr

函数

void check (Result< void > result)
template<typename Enum, std::size_t N>
std::string_view enum_name (Enum value, const std::array< std::string_view, N > &names, const char *operation)

变量

constexpr const char * kDecode = "LMCAS.parse_serialized_expr"
constexpr std::array< std::string_view, 3 > kDirections
constexpr const char * kEncode = "LMCAS.serialize_expr"
constexpr std::array< std::string_view, 36 > kFunctions
constexpr std::string_view kHeader = "LMCAS_EXPR/1\n"
constexpr std::array< std::string_view, 4 > kLogic
constexpr std::array< std::string_view, 2 > kQuantifiers = {"forall", "exists"}
constexpr std::array< std::string_view, 6 > kRelations
constexpr std::array< std::string_view, 5 > kTransforms

类型定义说明

◆ NodePtr

函数说明

◆ check()

void LMCAS::serialization_detail::check ( Result< void > result)
inline

◆ enum_name()

template<typename Enum, std::size_t N>
std::string_view LMCAS::serialization_detail::enum_name ( Enum value,
const std::array< std::string_view, N > & names,
const char * operation )

在文件 expr_serialization_common.hpp 第 40 行定义.

41 {
42 auto index = static_cast<std::size_t>(value);
43 if (index >= names.size()) {
44 throw CasError{CasErrc::UnsupportedExpression, "unsupported expression operator", operation};
45 }
46 return names[index];
47}
const std::string const ExprPtr & value

引用了 enum_name(), LMCAS::UnsupportedExpression , 以及 LMCAS::value.

被这些函数引用 enum_name(), LMCAS::anonymous_namespace{expr_serialization.cpp}::Writer::visit(), LMCAS::anonymous_namespace{expr_serialization.cpp}::Writer::visit(), LMCAS::anonymous_namespace{expr_serialization.cpp}::Writer::visit(), LMCAS::anonymous_namespace{expr_serialization.cpp}::Writer::visit(), LMCAS::anonymous_namespace{expr_serialization.cpp}::Writer::visit() , 以及 LMCAS::anonymous_namespace{expr_serialization.cpp}::Writer::visit().

函数调用图:
这是这个函数的调用关系图:

变量说明

◆ kDecode

◆ kDirections

std::array<std::string_view, 3> LMCAS::serialization_detail::kDirections
inlineconstexpr

◆ kEncode

◆ kFunctions

std::array<std::string_view, 36> LMCAS::serialization_detail::kFunctions
inlineconstexpr
初始值:
= {
"sin", "cos", "tan", "cot", "sec", "csc", "asin", "acos", "atan",
"sinh", "cosh", "tanh", "ln", "log", "abs", "sqrt", "exp",
"lambert_w", "atan2", "infinity", "erf", "ei", "si", "ci", "li",
"max", "min", "sgn", "floor", "ceil", "round", "real", "imag",
"conjugate", "complex_abs", "complex_arg"
}

在文件 expr_serialization_common.hpp 第 18 行定义.

被这些函数引用 LMCAS::anonymous_namespace{expr_serialization_reader.cpp}::Reader::compound_node() , 以及 LMCAS::anonymous_namespace{expr_serialization.cpp}::Writer::visit().

◆ kHeader

std::string_view LMCAS::serialization_detail::kHeader = "LMCAS_EXPR/1\n"
inlineconstexpr

◆ kLogic

std::array<std::string_view, 4> LMCAS::serialization_detail::kLogic
inlineconstexpr

◆ kQuantifiers

std::array<std::string_view, 2> LMCAS::serialization_detail::kQuantifiers = {"forall", "exists"}
inlineconstexpr

◆ kRelations

std::array<std::string_view, 6> LMCAS::serialization_detail::kRelations
inlineconstexpr

◆ kTransforms

std::array<std::string_view, 5> LMCAS::serialization_detail::kTransforms
inlineconstexpr
初始值:
= {
"laplace", "inverse_laplace", "fourier", "inverse_fourier", "z"
}

在文件 expr_serialization_common.hpp 第 31 行定义.

被这些函数引用 LMCAS::anonymous_namespace{expr_serialization_reader.cpp}::Reader::extended_node() , 以及 LMCAS::anonymous_namespace{expr_serialization.cpp}::Writer::visit().