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

类

class  DomainTraversal
struct  ValueFacts

类型定义

using FT = FunctionNode::FuncType
using Node = std::shared_ptr<const SymbolicNode>
using T = Tribool

函数

T conjunction (T a, T b)
T disjunction (T a, T b)
Result< Tribool > query_value (const Node &node, const FactsQuery &facts, Domain domain, T ValueFacts::*member, bool values, ComputationContext &context, bool *violated_real_restriction=nullptr)

类说明

◆ LMCAS::detail::anonymous_namespace{facts_query.cpp}::ValueFacts

struct LMCAS::detail::anonymous_namespace{facts_query.cpp}::ValueFacts

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

LMCAS::detail::anonymous_namespace{facts_query.cpp}::ValueFacts 的协作图:
类成员
T defined = T::Unknown
T nonnegative = T::Unknown
T nonzero = T::Unknown
T positive = T::Unknown
T real = T::Unknown

类型定义说明

◆ FT

using LMCAS::detail::anonymous_namespace{facts_query.cpp}::FT = FunctionNode::FuncType

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

◆ Node

using LMCAS::detail::anonymous_namespace{facts_query.cpp}::Node = std::shared_ptr<const SymbolicNode>

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

◆ T

using LMCAS::detail::anonymous_namespace{facts_query.cpp}::T = Tribool

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

函数说明

◆ conjunction()

T LMCAS::detail::anonymous_namespace{facts_query.cpp}::conjunction ( T a,
T b )

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

20 {
21 if (a == T::False || b == T::False) return T::False;
22 return a == T::True && b == T::True ? T::True : T::Unknown;
23}
const MultiPoly & b
__attribute__((visibility("default"))) VectorCalculusExprResult curve_integral_scalar_checked(const std __attribute__((visibility("default"))) VectorCalculusExprResult curve_integral_scalar_checked(const std __attribute__((visibility("default"))) std const VectorField const std::string const std::shared_ptr< SymbolicExpr > & a

引用了 LMCAS::a, LMCAS::b , 以及 conjunction().

被这些函数引用 LMCAS::detail::anonymous_namespace{facts_query.cpp}::DomainTraversal::arithmetic(), LMCAS::detail::anonymous_namespace{facts_query.cpp}::DomainTraversal::complex_facts(), conjunction(), LMCAS::detail::anonymous_namespace{facts_query.cpp}::DomainTraversal::lambert_w_domain(), LMCAS::detail::anonymous_namespace{facts_query.cpp}::DomainTraversal::logarithm_base(), LMCAS::detail::anonymous_namespace{facts_query.cpp}::DomainTraversal::nonintegral_domain(), LMCAS::detail::anonymous_namespace{facts_query.cpp}::DomainTraversal::nonintegral_power(), LMCAS::detail::anonymous_namespace{facts_query.cpp}::DomainTraversal::power(), LMCAS::detail::anonymous_namespace{facts_query.cpp}::DomainTraversal::real_valued_function(), LMCAS::detail::anonymous_namespace{facts_query.cpp}::DomainTraversal::require(), LMCAS::detail::anonymous_namespace{facts_query.cpp}::DomainTraversal::restricted_function(), LMCAS::detail::anonymous_namespace{facts_query.cpp}::DomainTraversal::structural() , 以及 LMCAS::detail::anonymous_namespace{facts_query.cpp}::DomainTraversal::trigonometric_domain().

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

◆ disjunction()

T LMCAS::detail::anonymous_namespace{facts_query.cpp}::disjunction ( T a,
T b )

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

25 {
26 if (a == T::True || b == T::True) return T::True;
27 return a == T::False && b == T::False ? T::False : T::Unknown;
28}

引用了 LMCAS::a, LMCAS::b , 以及 disjunction().

被这些函数引用 LMCAS::detail::anonymous_namespace{facts_query.cpp}::DomainTraversal::complex_facts(), disjunction() , 以及 LMCAS::detail::anonymous_namespace{facts_query.cpp}::DomainTraversal::nonintegral_domain().

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

◆ query_value()

Result< Tribool > LMCAS::detail::anonymous_namespace{facts_query.cpp}::query_value ( const Node & node,
const FactsQuery & facts,
Domain domain,
T ValueFacts::* member,
bool values,
ComputationContext & context,
bool * violated_real_restriction = nullptr )

在文件 facts_query.cpp 第 679 行定义.

681 {
684 "value domain must be Real or Complex", "facts.domain");
685 }
686 try {
687 DomainTraversal traversal(facts, domain, context);
688 auto result = traversal.walk(node, values);
689 if (traversal.error) return Result<T>::failure(*traversal.error);
690 if (violated_real_restriction)
691 { *violated_real_restriction = traversal.violated_real_restriction; }
692 return result.*member;
693 } catch (const CasError& error) {
694 return Result<T>::failure(error);
695 } catch (const std::bad_alloc&) {
697 "value facts allocation failed", "facts.domain");
698 }
699}
static Result failure(CasErrc code, std::string message, std::string operation={})
const SymbolicNodePtr & node(const ::LMCAS::SymbolicExpr &expression) noexcept
RewriteBudget const FactsQuery Domain domain
RewriteBudget const FactsQuery & facts
std::size_t std::size_t ComputationContext & context
@ Complex
Complex numbers (default, least specific)
@ Real
Real numbers
ExprResult member(const ExprPtr &element, const ExprPtr &set, ComputationContext &context)

引用了 LMCAS::Complex, LMCAS::detail::context, LMCAS::detail::domain, LMCAS::detail::anonymous_namespace{facts_query.cpp}::DomainTraversal::error, LMCAS::detail::facts, LMCAS::Result< T >::failure(), LMCAS::InvalidArgument, LMCAS::member(), LMCAS::detail::node(), query_value(), LMCAS::Real, LMCAS::ResourceLimit, LMCAS::detail::anonymous_namespace{facts_query.cpp}::DomainTraversal::violated_real_restriction , 以及 LMCAS::detail::anonymous_namespace{facts_query.cpp}::DomainTraversal::walk().

被这些函数引用 query_value().

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