LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
LMCAS::anonymous_namespace{symbolic_complex.cpp} 命名空间参考

函数

template<typename T, typename F>
Result< T > checked_construct (F &&f, const std::string &operation)
Result< void > validate_complex_symbolic (const ComplexSymbolic &z, const char *name, ComputationContext &context, const std::string &operation)
Result< void > validate_expr (const std::shared_ptr< SymbolicExpr > &expr, const char *name, ComputationContext &context, const std::string &operation)

变量

constexpr const char * kComplexAbsOperation = "complex_abs"
constexpr const char * kComplexAddOperation = "complex_add"
constexpr const char * kComplexArgOperation = "complex_arg"
constexpr const char * kComplexConjOperation = "complex_conj"
constexpr const char * kComplexDivOperation = "complex_div"
constexpr const char * kComplexLocusBisectorOperation
constexpr const char * kComplexLocusCircleOperation = "complex_locus_circle"
constexpr const char * kComplexMulOperation = "complex_mul"
constexpr const char * kComplexNthRootOperation = "solve_complex_nth_root"
constexpr const char * kComplexPolarOperation = "complex_polar_form"
constexpr const char * kComplexQuadraticOperation = "solve_complex_quadratic"
constexpr const char * kComplexSubOperation = "complex_sub"

函数说明

◆ checked_construct()

template<typename T, typename F>
Result< T > LMCAS::anonymous_namespace{symbolic_complex.cpp}::checked_construct ( F && f,
const std::string & operation )

在文件 symbolic_complex.cpp 第 62 行定义.

62 {
63 try {
64 if constexpr (std::is_same_v<std::invoke_result_t<F>, Result<T>>) {
65 return f();
66 } else {
67 return Result<T>::success(f());
68 }
69 } catch (const std::bad_alloc&) {
71 "symbolic complex allocation failed", operation);
72 } catch (const std::exception& ex) {
73 return Result<T>::failure(CasErrc::InternalInvariant, ex.what(), operation);
74 }
75}
static Result failure(CasErrc code, std::string message, std::string operation={})
static Result success(T value)

引用了 checked_construct(), LMCAS::Result< T >::failure(), LMCAS::InternalInvariant, LMCAS::ResourceLimit , 以及 LMCAS::Result< T >::success().

被这些函数引用 checked_construct().

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

◆ validate_complex_symbolic()

Result< void > LMCAS::anonymous_namespace{symbolic_complex.cpp}::validate_complex_symbolic ( const ComplexSymbolic & z,
const char * name,
ComputationContext & context,
const std::string & operation )

在文件 symbolic_complex.cpp 第 30 行定义.

33 {
34 auto step = context.consume_steps(1, operation);
35 if (!step) return step;
36 if (!z.real || !LMCAS::detail::node(z.real)) {
38 CasErrc::InvalidArgument, std::string(name) + ".real must not be null", operation);
39 }
40 if (!z.imag || !LMCAS::detail::node(z.imag)) {
42 CasErrc::InvalidArgument, std::string(name) + ".imag must not be null", operation);
43 }
44 return Result<void>::success();
45}
const SymbolicNodePtr & node(const ::LMCAS::SymbolicExpr &expression) noexcept
const std::vector< Polynomial< BigInt > > const BigInt ComputationContext & context
std::shared_ptr< SymbolicExpr > real
实部
std::shared_ptr< SymbolicExpr > imag
虚部
__attribute__((visibility("default"))) Result< EqvProfile > eqv_profile_from_name(const std const std::string & name

引用了 LMCAS::context, LMCAS::Result< T >::failure(), LMCAS::ComplexSymbolic::imag, LMCAS::InvalidArgument, LMCAS::name, LMCAS::detail::node(), LMCAS::ComplexSymbolic::real, LMCAS::Result< T >::success() , 以及 validate_complex_symbolic().

被这些函数引用 validate_complex_symbolic().

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

◆ validate_expr()

Result< void > LMCAS::anonymous_namespace{symbolic_complex.cpp}::validate_expr ( const std::shared_ptr< SymbolicExpr > & expr,
const char * name,
ComputationContext & context,
const std::string & operation )

在文件 symbolic_complex.cpp 第 47 行定义.

50 {
51 auto step = context.consume_steps(1, operation);
52 if (!step) return step;
53 if (!expr || !LMCAS::detail::node(expr)) {
55 CasErrc::InvalidArgument, std::string(name) + " must not be null", operation);
56 }
57 return Result<void>::success();
58}

引用了 LMCAS::context, LMCAS::Result< T >::failure(), LMCAS::InvalidArgument, LMCAS::name, LMCAS::detail::node(), LMCAS::Result< T >::success() , 以及 validate_expr().

被这些函数引用 validate_expr().

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

变量说明

◆ kComplexAbsOperation

const char* LMCAS::anonymous_namespace{symbolic_complex.cpp}::kComplexAbsOperation = "complex_abs"
constexpr

在文件 symbolic_complex.cpp 第 21 行定义.

◆ kComplexAddOperation

const char* LMCAS::anonymous_namespace{symbolic_complex.cpp}::kComplexAddOperation = "complex_add"
constexpr

在文件 symbolic_complex.cpp 第 16 行定义.

◆ kComplexArgOperation

const char* LMCAS::anonymous_namespace{symbolic_complex.cpp}::kComplexArgOperation = "complex_arg"
constexpr

在文件 symbolic_complex.cpp 第 22 行定义.

◆ kComplexConjOperation

const char* LMCAS::anonymous_namespace{symbolic_complex.cpp}::kComplexConjOperation = "complex_conj"
constexpr

在文件 symbolic_complex.cpp 第 20 行定义.

◆ kComplexDivOperation

const char* LMCAS::anonymous_namespace{symbolic_complex.cpp}::kComplexDivOperation = "complex_div"
constexpr

在文件 symbolic_complex.cpp 第 19 行定义.

◆ kComplexLocusBisectorOperation

const char* LMCAS::anonymous_namespace{symbolic_complex.cpp}::kComplexLocusBisectorOperation
constexpr
初始值:
=
"complex_locus_perpendicular_bisector"

在文件 symbolic_complex.cpp 第 27 行定义.

◆ kComplexLocusCircleOperation

const char* LMCAS::anonymous_namespace{symbolic_complex.cpp}::kComplexLocusCircleOperation = "complex_locus_circle"
constexpr

在文件 symbolic_complex.cpp 第 26 行定义.

◆ kComplexMulOperation

const char* LMCAS::anonymous_namespace{symbolic_complex.cpp}::kComplexMulOperation = "complex_mul"
constexpr

在文件 symbolic_complex.cpp 第 18 行定义.

◆ kComplexNthRootOperation

const char* LMCAS::anonymous_namespace{symbolic_complex.cpp}::kComplexNthRootOperation = "solve_complex_nth_root"
constexpr

在文件 symbolic_complex.cpp 第 24 行定义.

◆ kComplexPolarOperation

const char* LMCAS::anonymous_namespace{symbolic_complex.cpp}::kComplexPolarOperation = "complex_polar_form"
constexpr

在文件 symbolic_complex.cpp 第 23 行定义.

◆ kComplexQuadraticOperation

const char* LMCAS::anonymous_namespace{symbolic_complex.cpp}::kComplexQuadraticOperation = "solve_complex_quadratic"
constexpr

在文件 symbolic_complex.cpp 第 25 行定义.

◆ kComplexSubOperation

const char* LMCAS::anonymous_namespace{symbolic_complex.cpp}::kComplexSubOperation = "complex_sub"
constexpr

在文件 symbolic_complex.cpp 第 17 行定义.