LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
LMCAS::groebner_detail::Poly结构体 参考

#include </home/runner/work/docs/docs/LMCAS/src/internal/solver_groebner_internal.hpp>

LMCAS::groebner_detail::Poly 的协作图:

Public 成员函数

 Poly ()
 Poly (size_t count)
void add_term (const Monomial &monomial, const Rational &coefficient)
bool is_zero () const
Rational lead_coeff () const
Monomial lead_monomial () const
Term lead_term () const

Public 属性

size_t num_vars
int sugar = 0
PolyTerms terms

详细描述

在文件 solver_groebner_internal.hpp 第 28 行定义.

构造及析构函数说明

◆ Poly() [1/2]

LMCAS::groebner_detail::Poly::Poly ( )
inline

在文件 solver_groebner_internal.hpp 第 33 行定义.

引用了 num_vars.

被这些函数引用 LMCAS::groebner_detail::PolyBuilder::represent_as_aux_or_fail(), LMCAS::groebner_detail::PolyBuilder::use_numeric_function(), LMCAS::groebner_detail::PolyBuilder::visit(), LMCAS::groebner_detail::PolyBuilder::visit() , 以及 LMCAS::groebner_detail::PolyBuilder::visit().

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

◆ Poly() [2/2]

LMCAS::groebner_detail::Poly::Poly ( size_t count)
inline

在文件 solver_groebner_internal.hpp 第 34 行定义.

34: num_vars(count) {}

引用了 num_vars.

成员函数说明

◆ add_term()

void LMCAS::groebner_detail::Poly::add_term ( const Monomial & monomial,
const Rational & coefficient )

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

31 {
32 if (c == Rational(0)) return;
33 auto it = terms.find(m);
34 if (it != terms.end()) {
35
36 Rational new_c = it->second + c;
37 if (new_c == Rational(0)) {
38 terms.erase(it);
39 } else {
40 it->second = new_c;
41 }
42 } else {
43 terms[m] = c;
44 }
45 }
@ Rational
Rational numbers
const VectorField const VectorField & c

引用了 LMCAS::c , 以及 terms.

被这些函数引用 LMCAS::groebner_detail::add_poly(), LMCAS::groebner_detail::extend_variables(), LMCAS::groebner_detail::mul_poly(), LMCAS::groebner_detail::mul_poly_term(), LMCAS::groebner_detail::PolyBuilder::represent_as_aux_or_fail(), LMCAS::groebner_detail::sub_poly(), LMCAS::groebner_detail::PolyBuilder::use_numeric_function(), LMCAS::groebner_detail::PolyBuilder::visit(), LMCAS::groebner_detail::PolyBuilder::visit(), LMCAS::groebner_detail::PolyBuilder::visit() , 以及 LMCAS::groebner_detail::PolyBuilder::visit().

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

◆ is_zero()

bool LMCAS::groebner_detail::Poly::is_zero ( ) const
inline

在文件 solver_groebner_internal.hpp 第 35 行定义.

35{ return terms.empty(); }

引用了 terms.

被这些函数引用 LMCAS::groebner_detail::buchberger(), LMCAS::anonymous_namespace{solver_groebner.cpp}::convert_polynomials(), LMCAS::groebner_detail::coprime_leading_monomials() , 以及 LMCAS::groebner_detail::reduce().

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

◆ lead_coeff()

Rational LMCAS::groebner_detail::Poly::lead_coeff ( ) const

在文件 solver_groebner_poly.cpp 第 21 行定义.

21 {
22 if (terms.empty()) return Rational(0);
23 return terms.begin()->second;
24 }

引用了 terms.

被这些函数引用 LMCAS::groebner_detail::anonymous_namespace{solver_groebner_basis.cpp}::make_monic(), LMCAS::groebner_detail::reduce() , 以及 LMCAS::groebner_detail::s_poly().

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

◆ lead_monomial()

Monomial LMCAS::groebner_detail::Poly::lead_monomial ( ) const

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

16 {
17 if (terms.empty()) return std::vector<int>(num_vars, 0);
18 return terms.begin()->first;
19 }

引用了 num_vars , 以及 terms.

被这些函数引用 LMCAS::groebner_detail::compute_spoly_sugar(), LMCAS::groebner_detail::coprime_leading_monomials(), LMCAS::groebner_detail::reduce() , 以及 LMCAS::groebner_detail::s_poly().

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

◆ lead_term()

Term LMCAS::groebner_detail::Poly::lead_term ( ) const

在文件 solver_groebner_poly.cpp 第 26 行定义.

26 {
27 if (terms.empty()) return {Rational(0), std::vector<int>(num_vars, 0)};
28 return {terms.begin()->second, terms.begin()->first};
29 }

引用了 num_vars , 以及 terms.

被这些函数引用 LMCAS::groebner_detail::reduce().

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

类成员变量说明

◆ num_vars

◆ sugar

int LMCAS::groebner_detail::Poly::sugar = 0

◆ terms


该结构体的文档由以下文件生成: