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

函数

std::string boundedness_to_string (Boundedness b)
std::string definiteness_to_string (Definiteness d)
std::string endpoint_to_string (const Endpoint &ep)
std::string finiteness_to_string (Finiteness f)
std::string interval_to_string (const Interval &iv)
std::string monotonicity_to_string (Monotonicity m)
std::string parity_to_string (Parity p)
std::string relop_to_string (RelationalNode::Op op)
void serialize_symbol_intervals (std::ostream &out, const PropertyStore &props, const std::string &sym)
void serialize_symbol_properties (std::ostream &out, const PropertyStore &props, const std::string &sym)
std::string sign_to_string (Sign s)

函数说明

◆ boundedness_to_string()

std::string LMCAS::anonymous_namespace{assumption_serialization.cpp}::boundedness_to_string ( Boundedness b)

在文件 assumption_serialization.cpp 第 31 行定义.

31 {
32 switch (b) {
33 case Boundedness::Bounded: return "Bounded";
34 case Boundedness::Unbounded: return "Unbounded";
35 case Boundedness::Unknown: return "Unknown";
36 }
37 return "Unknown";
38}
@ Unbounded
Symbol is unbounded
@ Unknown
Boundedness not determined
@ Bounded
Symbol has finite bounds
const MultiPoly & b

引用了 LMCAS::b, LMCAS::Bounded, boundedness_to_string(), LMCAS::Unbounded , 以及 LMCAS::Unknown.

被这些函数引用 boundedness_to_string() , 以及 serialize_symbol_properties().

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

◆ definiteness_to_string()

std::string LMCAS::anonymous_namespace{assumption_serialization.cpp}::definiteness_to_string ( Definiteness d)

在文件 assumption_serialization.cpp 第 49 行定义.

49 {
50 switch (d) {
51 case Definiteness::PositiveDefinite: return "PositiveDefinite";
52 case Definiteness::PositiveSemiDefinite: return "PositiveSemiDefinite";
53 case Definiteness::NegativeDefinite: return "NegativeDefinite";
54 case Definiteness::NegativeSemiDefinite: return "NegativeSemiDefinite";
55 case Definiteness::Indefinite: return "Indefinite";
56 case Definiteness::Unknown: return "Unknown";
57 }
58 return "Unknown";
59}
@ NegativeSemiDefinite
All eigenvalues non-positive
@ NegativeDefinite
All eigenvalues negative
@ PositiveSemiDefinite
All eigenvalues non-negative
@ PositiveDefinite
All eigenvalues positive
@ Unknown
Definiteness not determined
@ Indefinite
Mixed eigenvalue signs

引用了 definiteness_to_string(), LMCAS::Indefinite, LMCAS::NegativeDefinite, LMCAS::NegativeSemiDefinite, LMCAS::PositiveDefinite, LMCAS::PositiveSemiDefinite , 以及 LMCAS::Unknown.

被这些函数引用 definiteness_to_string() , 以及 serialize_symbol_properties().

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

◆ endpoint_to_string()

std::string LMCAS::anonymous_namespace{assumption_serialization.cpp}::endpoint_to_string ( const Endpoint & ep)

在文件 assumption_serialization.cpp 第 83 行定义.

83 {
84 if (ep.is_neg_infinity) return "-inf";
85 if (ep.is_pos_infinity) return "+inf";
86 if (ep.value) return ep.value->to_string();
87 return "0";
88}

引用了 endpoint_to_string().

被这些函数引用 endpoint_to_string() , 以及 interval_to_string().

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

◆ finiteness_to_string()

std::string LMCAS::anonymous_namespace{assumption_serialization.cpp}::finiteness_to_string ( Finiteness f)

在文件 assumption_serialization.cpp 第 40 行定义.

40 {
41 switch (f) {
42 case Finiteness::Finite: return "Finite";
43 case Finiteness::Divergent: return "Divergent";
44 case Finiteness::Unknown: return "Unknown";
45 }
46 return "Unknown";
47}
@ Finite
Has a finite value or limit
@ Unknown
Finiteness not determined
@ Divergent
Diverges to infinity or oscillates

引用了 LMCAS::Divergent, LMCAS::Finite, finiteness_to_string() , 以及 LMCAS::Unknown.

被这些函数引用 finiteness_to_string() , 以及 serialize_symbol_properties().

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

◆ interval_to_string()

std::string LMCAS::anonymous_namespace{assumption_serialization.cpp}::interval_to_string ( const Interval & iv)

在文件 assumption_serialization.cpp 第 89 行定义.

89 {
90 std::string result;
91 result += iv.lower.is_open ? "(" : "[";
92 result += endpoint_to_string(iv.lower);
93 result += ", ";
94 result += endpoint_to_string(iv.upper);
95 result += iv.upper.is_open ? ")" : "]";
96 return result;
97}

引用了 endpoint_to_string() , 以及 interval_to_string().

被这些函数引用 interval_to_string(), serialize_symbol_intervals() , 以及 serialize_symbol_properties().

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

◆ monotonicity_to_string()

std::string LMCAS::anonymous_namespace{assumption_serialization.cpp}::monotonicity_to_string ( Monotonicity m)

在文件 assumption_serialization.cpp 第 61 行定义.

61 {
62 switch (m) {
63 case Monotonicity::Increasing: return "Increasing";
64 case Monotonicity::Decreasing: return "Decreasing";
65 case Monotonicity::NonDecreasing: return "NonDecreasing";
66 case Monotonicity::NonIncreasing: return "NonIncreasing";
67 case Monotonicity::Unknown: return "Unknown";
68 }
69 return "Unknown";
70}
@ NonDecreasing
Non-decreasing (weakly increasing)
@ Decreasing
Strictly decreasing
@ Unknown
Monotonicity not determined
@ NonIncreasing
Non-increasing (weakly decreasing)
@ Increasing
Strictly increasing

引用了 LMCAS::Decreasing, LMCAS::Increasing, monotonicity_to_string(), LMCAS::NonDecreasing, LMCAS::NonIncreasing , 以及 LMCAS::Unknown.

被这些函数引用 monotonicity_to_string() , 以及 serialize_symbol_intervals().

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

◆ parity_to_string()

std::string LMCAS::anonymous_namespace{assumption_serialization.cpp}::parity_to_string ( Parity p)

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

22 {
23 switch (p) {
24 case Parity::Even: return "Even";
25 case Parity::Odd: return "Odd";
26 case Parity::Unknown: return "Unknown";
27 }
28 return "Unknown";
29}
@ Even
Even integer
@ Unknown
Parity not determined

引用了 LMCAS::Even, LMCAS::Odd, parity_to_string() , 以及 LMCAS::Unknown.

被这些函数引用 parity_to_string() , 以及 serialize_symbol_properties().

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

◆ relop_to_string()

std::string LMCAS::anonymous_namespace{assumption_serialization.cpp}::relop_to_string ( RelationalNode::Op op)

在文件 assumption_serialization.cpp 第 72 行定义.

72 {
73 switch (op) {
74 case RelationalNode::Op::GT: return "GT";
75 case RelationalNode::Op::LT: return "LT";
76 case RelationalNode::Op::GEQ: return "GEQ";
77 case RelationalNode::Op::LEQ: return "LEQ";
78 case RelationalNode::Op::NEQ: return "NEQ";
79 case RelationalNode::Op::EQ: return "EQ";
80 }
81 return "EQ";
82}
const ExprPtr RelationOp op

引用了 LMCAS::op , 以及 relop_to_string().

被这些函数引用 relop_to_string().

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

◆ serialize_symbol_intervals()

void LMCAS::anonymous_namespace{assumption_serialization.cpp}::serialize_symbol_intervals ( std::ostream & out,
const PropertyStore & props,
const std::string & sym )

在文件 assumption_serialization.cpp 第 141 行定义.

142 {
143 auto cont_decls = props.get_continuity_decls(sym);
144 for (const auto& decl : cont_decls) {
145 if (decl.is_differentiable) {
146 out << "DIFFERENTIABLE " << sym << " "
147 << interval_to_string(decl.interval) << "\n";
148 } else {
149 out << "CONTINUOUS " << sym << " "
150 << interval_to_string(decl.interval) << "\n";
151 }
152 }
153
154 auto mono_decls = props.get_monotonicity_decls(sym);
155 for (const auto& decl : mono_decls) {
156 out << "MONOTONICITY " << sym << " " << decl.variable << " "
157 << interval_to_string(decl.interval) << " "
158 << monotonicity_to_string(decl.type) << "\n";
159 }
160}
ExprResult sym(const std::string &name)

引用了 interval_to_string(), monotonicity_to_string(), serialize_symbol_intervals() , 以及 LMCAS::sym().

被这些函数引用 serialize_symbol_intervals().

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

◆ serialize_symbol_properties()

void LMCAS::anonymous_namespace{assumption_serialization.cpp}::serialize_symbol_properties ( std::ostream & out,
const PropertyStore & props,
const std::string & sym )

在文件 assumption_serialization.cpp 第 99 行定义.

100 {
101 Domain dom = props.get_domain(sym);
102 if (dom != Domain::Complex) {
103 out << "DOMAIN " << sym << " " << property_detail::domain_str(dom) << "\n";
104 }
105 auto signs = props.get_signs(sym);
106 for (Sign s : signs) {
107 out << "SIGN " << sym << " " << sign_to_string(s) << "\n";
108 }
109 Parity par = props.get_parity(sym);
110 if (par != Parity::Unknown) {
111 out << "PARITY " << sym << " " << parity_to_string(par) << "\n";
112 }
113 Boundedness bnd = props.get_boundedness(sym);
114 if (bnd != Boundedness::Unknown) {
115 out << "BOUNDED " << sym << " " << boundedness_to_string(bnd);
116 if (bnd == Boundedness::Bounded) {
117 const auto bounds = props.get_bounds(sym);
118 if (bounds) {
119 out << " " << interval_to_string(*bounds);
120 }
121 }
122 out << "\n";
123 }
124 if (props.is_transcendental(sym)) {
125 out << "TRANSCENDENTAL " << sym << "\n";
126 }
127 Finiteness fin = props.get_finiteness(sym);
128 if (fin != Finiteness::Unknown) {
129 out << "FINITENESS " << sym << " " << finiteness_to_string(fin) << "\n";
130 }
131 Definiteness def = props.get_definiteness(sym);
132 if (def != Definiteness::Unknown) {
133 out << "DEFINITENESS " << sym << " " << definiteness_to_string(def) << "\n";
134 }
135 for (const auto& [variable, period] : props.get_period_decls(sym)) {
136 out << "PERIODIC " << sym << " " << variable << " "
137 << period.to_string() << "\n";
138 }
139}
std::string domain_str(Domain domain)
const std::string & variable
Domain
Mathematical domain hierarchy (least specific → most specific). Complex ⊃ Real ⊃ Algebraic ⊃ Rational...
@ Complex
Complex numbers (default, least specific)
Boundedness
Boundedness classification for symbols.
Definiteness
Matrix definiteness classification.
Finiteness
Finiteness classification for limits and sequences.
Parity
Integer parity classification.
Sign
Sign classification for symbols and expressions.

引用了 LMCAS::Bounded, boundedness_to_string(), LMCAS::Complex, definiteness_to_string(), LMCAS::property_detail::domain_str(), finiteness_to_string(), interval_to_string(), parity_to_string(), serialize_symbol_properties(), sign_to_string(), LMCAS::sym(), LMCAS::Unknown , 以及 LMCAS::variable.

被这些函数引用 serialize_symbol_properties().

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

◆ sign_to_string()

std::string LMCAS::anonymous_namespace{assumption_serialization.cpp}::sign_to_string ( Sign s)

在文件 assumption_serialization.cpp 第 10 行定义.

10 {
11 switch (s) {
12 case Sign::Positive: return "Positive";
13 case Sign::Negative: return "Negative";
14 case Sign::NonNegative: return "NonNegative";
15 case Sign::NonPositive: return "NonPositive";
16 case Sign::Zero: return "Zero";
17 case Sign::NonZero: return "NonZero";
18 }
19 return "Positive";
20}

引用了 LMCAS::Negative, LMCAS::NonNegative, LMCAS::NonPositive, LMCAS::NonZero, LMCAS::Positive, sign_to_string() , 以及 LMCAS::Zero.

被这些函数引用 serialize_symbol_properties() , 以及 sign_to_string().

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