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

函数

std::shared_ptr< const NumberNode > positive_negative_number (const NumberNode &number)

函数说明

◆ positive_negative_number()

std::shared_ptr< const NumberNode > LMCAS::anonymous_namespace{normalization_signs.cpp}::positive_negative_number ( const NumberNode & number)

在文件 normalization_signs.cpp 第 5 行定义.

5 {
6 if (const auto* integer = std::get_if<BigInt>(&number.value())) {
7 if (integer->is_negative()) {
8 return detail::make_node<NumberNode>(*integer * BigInt(-1));
9 }
10 return nullptr;
11 }
12 const auto& rational = std::get<Rational>(number.value());
13 if (rational.get_numerator().is_negative()) {
14 return detail::make_node<NumberNode>(rational * Rational(-1));
15 }
16 return nullptr;
17}
const std::variant< BigInt, Rational > & value() const noexcept
std::shared_ptr< const Node > make_node(Args &&... args)
ExprResult integer(Integer)=delete
ExprResult rational(const Rational &value)

引用了 LMCAS::integer, LMCAS::detail::make_node(), positive_negative_number(), LMCAS::rational() , 以及 LMCAS::NumberNode::value().

被这些函数引用 positive_negative_number().

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