LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
LMCAS::AssumptionDecl类 参考

Declaration of an assumption to apply within a with_assumptions block. 更多...

#include <assumption_context.hpp>

LMCAS::AssumptionDecl 的协作图:

类

struct  DomainDeclaration
struct  SignDeclaration

Public 类型

enum class  Type { Domain , Sign , Relation }
 The type of assumption being declared. 更多...

Public 成员函数

Domain domain () const
const SymbolicExpr & relation () const
Sign sign () const
const std::string & symbol () const
Type type () const noexcept

静态 Public 成员函数

static AssumptionDecl make_domain (const std::string &sym, Domain d)
 Construct a domain assumption declaration.
static AssumptionDecl make_relation (const SymbolicExpr &rel)
 Construct a relational assumption declaration.
static AssumptionDecl make_sign (const std::string &sym, Sign s)
 Construct a sign assumption declaration.

Private 类型

using Payload = std::variant<DomainDeclaration, SignDeclaration, SymbolicExpr>

Private 成员函数

 AssumptionDecl (DomainDeclaration declaration)
 AssumptionDecl (SignDeclaration declaration)
 AssumptionDecl (SymbolicExpr relation)

Private 属性

Payload payload_

详细描述

Declaration of an assumption to apply within a with_assumptions block.

Represents a single domain, sign, or relational assumption that can be applied to an AssumptionContext scope.

在文件 assumption_context.hpp 第 379 行定义.


类说明

◆ LMCAS::AssumptionDecl::DomainDeclaration

struct LMCAS::AssumptionDecl::DomainDeclaration

在文件 assumption_context.hpp 第 428 行定义.

LMCAS::AssumptionDecl::DomainDeclaration 的协作图:
类成员
Domain domain
string symbol

◆ LMCAS::AssumptionDecl::SignDeclaration

struct LMCAS::AssumptionDecl::SignDeclaration

在文件 assumption_context.hpp 第 433 行定义.

LMCAS::AssumptionDecl::SignDeclaration 的协作图:
类成员
Sign sign
string symbol

成员类型定义说明

◆ Payload

using LMCAS::AssumptionDecl::Payload = std::variant<DomainDeclaration, SignDeclaration, SymbolicExpr>
private

在文件 assumption_context.hpp 第 438 行定义.

成员枚举类型说明

◆ Type

enum class LMCAS::AssumptionDecl::Type
strong

The type of assumption being declared.

枚举值
Domain 
Sign 
Relation 

在文件 assumption_context.hpp 第 382 行定义.

382{ Domain, Sign, Relation };
Domain
Mathematical domain hierarchy (least specific → most specific). Complex ⊃ Real ⊃ Algebraic ⊃ Rational...
Sign
Sign classification for symbols and expressions.

构造及析构函数说明

◆ AssumptionDecl() [1/3]

LMCAS::AssumptionDecl::AssumptionDecl ( DomainDeclaration declaration)
inlineexplicitprivate

在文件 assumption_context.hpp 第 440 行定义.

441 : payload_(std::move(declaration)) {}

引用了 payload_.

被这些函数引用 make_domain(), make_relation() , 以及 make_sign().

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

◆ AssumptionDecl() [2/3]

LMCAS::AssumptionDecl::AssumptionDecl ( SignDeclaration declaration)
inlineexplicitprivate

在文件 assumption_context.hpp 第 442 行定义.

443 : payload_(std::move(declaration)) {}

引用了 payload_.

◆ AssumptionDecl() [3/3]

LMCAS::AssumptionDecl::AssumptionDecl ( SymbolicExpr relation)
inlineexplicitprivate

在文件 assumption_context.hpp 第 444 行定义.

445 : payload_(std::move(relation)) {}
const SymbolicExpr & relation() const

引用了 payload_ , 以及 relation().

函数调用图:

成员函数说明

◆ domain()

Domain LMCAS::AssumptionDecl::domain ( ) const
inline

在文件 assumption_context.hpp 第 415 行定义.

415 {
416 return std::get<DomainDeclaration>(payload_).domain;
417 }

引用了 payload_.

被这些函数引用 LMCAS::apply_assumption_decl_checked() , 以及 symbol().

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

◆ make_domain()

AssumptionDecl LMCAS::AssumptionDecl::make_domain ( const std::string & sym,
Domain d )
inlinestatic

Construct a domain assumption declaration.

在文件 assumption_context.hpp 第 385 行定义.

385 {
387 }
AssumptionDecl(DomainDeclaration declaration)
ExprResult sym(const std::string &name)

引用了 AssumptionDecl() , 以及 LMCAS::sym().

函数调用图:

◆ make_relation()

AssumptionDecl LMCAS::AssumptionDecl::make_relation ( const SymbolicExpr & rel)
inlinestatic

Construct a relational assumption declaration.

在文件 assumption_context.hpp 第 395 行定义.

395 {
396 return AssumptionDecl(rel);
397 }

引用了 AssumptionDecl().

函数调用图:

◆ make_sign()

AssumptionDecl LMCAS::AssumptionDecl::make_sign ( const std::string & sym,
Sign s )
inlinestatic

Construct a sign assumption declaration.

在文件 assumption_context.hpp 第 390 行定义.

引用了 AssumptionDecl() , 以及 LMCAS::sym().

函数调用图:

◆ relation()

const SymbolicExpr & LMCAS::AssumptionDecl::relation ( ) const
inline

在文件 assumption_context.hpp 第 423 行定义.

423 {
424 return std::get<SymbolicExpr>(payload_);
425 }

引用了 payload_.

被这些函数引用 AssumptionDecl() , 以及 LMCAS::apply_assumption_decl_checked().

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

◆ sign()

Sign LMCAS::AssumptionDecl::sign ( ) const
inline

在文件 assumption_context.hpp 第 419 行定义.

419 {
420 return std::get<SignDeclaration>(payload_).sign;
421 }

引用了 payload_.

被这些函数引用 LMCAS::apply_assumption_decl_checked() , 以及 symbol().

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

◆ symbol()

const std::string & LMCAS::AssumptionDecl::symbol ( ) const
inline

在文件 assumption_context.hpp 第 405 行定义.

405 {
406 if (const auto* domain = std::get_if<DomainDeclaration>(&payload_)) {
407 return domain->symbol;
408 }
409 if (const auto* sign = std::get_if<SignDeclaration>(&payload_)) {
410 return sign->symbol;
411 }
412 throw std::logic_error("relational assumption has no symbol field");
413 }

引用了 domain(), payload_ , 以及 sign().

被这些函数引用 LMCAS::apply_assumption_decl_checked().

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

◆ type()

Type LMCAS::AssumptionDecl::type ( ) const
inlinenoexcept

在文件 assumption_context.hpp 第 399 行定义.

399 {
400 if (std::holds_alternative<DomainDeclaration>(payload_)) return Type::Domain;
401 if (std::holds_alternative<SignDeclaration>(payload_)) return Type::Sign;
402 return Type::Relation;
403 }

引用了 Domain, payload_, Relation , 以及 Sign.

被这些函数引用 LMCAS::apply_assumption_decl_checked().

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

类成员变量说明

◆ payload_

Payload LMCAS::AssumptionDecl::payload_
private

在文件 assumption_context.hpp 第 447 行定义.

被这些函数引用 AssumptionDecl(), AssumptionDecl(), AssumptionDecl(), domain(), relation(), sign(), symbol() , 以及 type().


该类的文档由以下文件生成: