LMCAS
Lamina Computer Algebra System
Toggle main menu visibility
载入中...
搜索中...
未找到
assumption_facts.hpp
浏览该文件的文档.
1
#pragma once
2
3
#include "
internal/facts_query.hpp
"
4
#include "
inference_engine.hpp
"
5
#include <set>
6
7
namespace
LMCAS
{
8
9
class
AssumptionContext;
10
11
namespace
detail
{
12
class
RewriteBudget
;
13
class
AssumptionFacts
final :
public
FactsQuery
{
14
public
:
15
explicit
AssumptionFacts
(
const
AssumptionContext& assumptions)
16
:
owned_engine_
(std::in_place, assumptions),
engine_
(&*
owned_engine_
) {}
17
explicit
AssumptionFacts
(
const
InferenceEngine& engine) noexcept :
engine_
(&engine) {}
18
AssumptionFacts
(
const
AssumptionFacts
&) =
delete
;
19
AssumptionFacts
&
operator=
(
const
AssumptionFacts
&) =
delete
;
20
static
void
collect_names
(
const
AssumptionContext& assumptions,
21
std::set<std::string>& names,
RewriteBudget
&
budget
);
22
23
Result<Tribool>
is_positive
(
const
std::shared_ptr<const SymbolicNode>&
node
,
ComputationContext
&
context
)
const override
;
24
Result<Tribool>
is_negative
(
const
std::shared_ptr<const SymbolicNode>&
node
,
ComputationContext
&
context
)
const override
;
25
Result<Tribool>
is_nonnegative
(
const
std::shared_ptr<const SymbolicNode>&
node
,
ComputationContext
&
context
)
const override
;
26
Result<Tribool>
is_nonzero
(
const
std::shared_ptr<const SymbolicNode>&
node
,
ComputationContext
&
context
)
const override
;
27
Result<Tribool>
is_real
(
const
std::shared_ptr<const SymbolicNode>&
node
,
ComputationContext
&
context
)
const override
;
28
29
private
:
30
std::optional<InferenceEngine>
owned_engine_
;
31
const
InferenceEngine*
engine_
;
32
};
33
34
}
35
}
LMCAS::ComputationContext
定义
computation_context.hpp:99
LMCAS::FactsQuery
定义
facts_query.hpp:16
LMCAS::Result
定义
result.hpp:39
LMCAS::detail::AssumptionFacts::is_nonnegative
Result< Tribool > is_nonnegative(const std::shared_ptr< const SymbolicNode > &node, ComputationContext &context) const override
定义
assumption_simplification.cpp:138
LMCAS::detail::AssumptionFacts::AssumptionFacts
AssumptionFacts(const AssumptionFacts &)=delete
LMCAS::detail::AssumptionFacts::owned_engine_
std::optional< InferenceEngine > owned_engine_
定义
assumption_facts.hpp:30
LMCAS::detail::AssumptionFacts::is_real
Result< Tribool > is_real(const std::shared_ptr< const SymbolicNode > &node, ComputationContext &context) const override
定义
assumption_simplification.cpp:152
LMCAS::detail::AssumptionFacts::is_nonzero
Result< Tribool > is_nonzero(const std::shared_ptr< const SymbolicNode > &node, ComputationContext &context) const override
定义
assumption_simplification.cpp:145
LMCAS::detail::AssumptionFacts::is_positive
Result< Tribool > is_positive(const std::shared_ptr< const SymbolicNode > &node, ComputationContext &context) const override
定义
assumption_simplification.cpp:124
LMCAS::detail::AssumptionFacts::is_negative
Result< Tribool > is_negative(const std::shared_ptr< const SymbolicNode > &node, ComputationContext &context) const override
定义
assumption_simplification.cpp:131
LMCAS::detail::AssumptionFacts::engine_
const InferenceEngine * engine_
定义
assumption_facts.hpp:31
LMCAS::detail::AssumptionFacts::operator=
AssumptionFacts & operator=(const AssumptionFacts &)=delete
LMCAS::detail::AssumptionFacts::AssumptionFacts
AssumptionFacts(const InferenceEngine &engine) noexcept
定义
assumption_facts.hpp:17
LMCAS::detail::AssumptionFacts::AssumptionFacts
AssumptionFacts(const AssumptionContext &assumptions)
定义
assumption_facts.hpp:15
LMCAS::detail::AssumptionFacts::collect_names
static void collect_names(const AssumptionContext &assumptions, std::set< std::string > &names, RewriteBudget &budget)
定义
assumption_simplification.cpp:89
LMCAS::detail::RewriteBudget
定义
rewrite_budget.hpp:15
facts_query.hpp
inference_engine.hpp
InferenceEngine class for deriving properties of composite expressions.
LMCAS::detail
多元 Hensel 提升(单变量步)
定义
assumption_context.hpp:31
LMCAS::detail::node
const SymbolicNodePtr & node(const ::LMCAS::SymbolicExpr &expression) noexcept
定义
base.hpp:91
LMCAS::detail::budget
RewriteBudget & budget
定义
expression_transform.hpp:16
LMCAS::detail::context
std::size_t std::size_t ComputationContext & context
定义
exact_algebraic.hpp:27
LMCAS
定义
assumption.hpp:11
src
internal
assumption_facts.hpp
生成于
, 为 LMCAS使用
1.18.0