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

函数

Result< std::vector< CheckedInterval > > checked_interval_views (const std::vector< Interval > &intervals, ComputationContext &context, const std::string &operation)
Endpoint complement_lower_from_upper (const Endpoint &upper)
Endpoint complement_upper_from_lower (const Endpoint &lower)
Interval intersection_candidate (const CheckedInterval &a, const CheckedInterval &b, int lower_order, int upper_order)

函数说明

◆ checked_interval_views()

Result< std::vector< CheckedInterval > > LMCAS::anonymous_namespace{interval_set_operations.cpp}::checked_interval_views ( const std::vector< Interval > & intervals,
ComputationContext & context,
const std::string & operation )

在文件 interval_set_operations.cpp 第 11 行定义.

14 {
15 auto normalized = normalize_intervals_checked(intervals, context);
16 if (!normalized) {
18 normalized.error().code, normalized.error().message, operation);
19 }
20
21 std::vector<CheckedInterval> checked;
22 auto normalized_intervals = std::move(normalized.value());
23 checked.reserve(normalized_intervals.size());
24 for (auto& interval : normalized_intervals) {
25 auto lower = comparable_endpoint(interval.lower, context, operation);
26 if (!lower) {
27 return Result<std::vector<CheckedInterval>>::failure(lower.error());
28 }
29 auto upper = comparable_endpoint(interval.upper, context, operation);
30 if (!upper) {
31 return Result<std::vector<CheckedInterval>>::failure(upper.error());
32 }
33 checked.push_back(CheckedInterval{
34 std::move(interval), std::move(lower.value()), std::move(upper.value())});
35 }
36 return Result<std::vector<CheckedInterval>>::success(std::move(checked));
37}
CasError & error()
Result< ComparableEndpoint > comparable_endpoint(const Endpoint &endpoint, ComputationContext &context, const std::string &operation)
__attribute__((visibility("default"))) ExprResult function(const std __attribute__((visibility("default"))) ExprResult finite_set(std ExprPtr upper
const std::vector< Polynomial< BigInt > > const BigInt ComputationContext & context
ExprResult interval(ExprPtr lower, ExprPtr upper, bool lower_closed, bool upper_closed)
const ExprPtr & lower
Result< std::vector< Interval > > normalize_intervals_checked(std::vector< Interval > intervals, ComputationContext &context)

引用了 checked_interval_views(), LMCAS::comparable_endpoint(), LMCAS::context, LMCAS::Result< T >::error(), LMCAS::interval(), LMCAS::lower, LMCAS::normalize_intervals_checked(), LMCAS::upper , 以及 LMCAS::Result< T >::value().

被这些函数引用 checked_interval_views().

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

◆ complement_lower_from_upper()

Endpoint LMCAS::anonymous_namespace{interval_set_operations.cpp}::complement_lower_from_upper ( const Endpoint & upper)

在文件 interval_set_operations.cpp 第 39 行定义.

39 {
40 Endpoint lower;
41 lower.value = upper.value;
42 lower.is_open = !upper.is_open;
43 lower.is_neg_infinity = false;
44 lower.is_pos_infinity = false;
45 return lower;
46}

引用了 complement_lower_from_upper(), LMCAS::lower, LMCAS::upper , 以及 LMCAS::Result< T >::value().

被这些函数引用 complement_lower_from_upper().

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

◆ complement_upper_from_lower()

Endpoint LMCAS::anonymous_namespace{interval_set_operations.cpp}::complement_upper_from_lower ( const Endpoint & lower)

在文件 interval_set_operations.cpp 第 48 行定义.

48 {
49 Endpoint upper;
50 upper.value = lower.value;
51 upper.is_open = !lower.is_open;
52 upper.is_neg_infinity = false;
53 upper.is_pos_infinity = false;
54 return upper;
55}

引用了 complement_upper_from_lower(), LMCAS::lower, LMCAS::upper , 以及 LMCAS::Result< T >::value().

被这些函数引用 complement_upper_from_lower().

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

◆ intersection_candidate()

Interval LMCAS::anonymous_namespace{interval_set_operations.cpp}::intersection_candidate ( const CheckedInterval & a,
const CheckedInterval & b,
int lower_order,
int upper_order )

在文件 interval_set_operations.cpp 第 57 行定义.

58 {
59 Interval candidate{
60 lower_order >= 0 ? a.interval.lower : b.interval.lower,
61 upper_order <= 0 ? a.interval.upper : b.interval.upper
62 };
63 if (lower_order == 0) {
64 candidate.lower.is_open = a.interval.lower.is_open || b.interval.lower.is_open;
65 }
66 if (upper_order == 0) {
67 candidate.upper.is_open = a.interval.upper.is_open || b.interval.upper.is_open;
68 }
69 return candidate;
70}
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 , 以及 intersection_candidate().

被这些函数引用 intersection_candidate().

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