Definition at line 10 of file ringmap.cpp.
11{
13 P =
R->cast_to_PolynomialRing();
15 {
17 K =
P->getCoefficientRing();
18 }
19 else
21
24
25 ring_elem one =
K->from_long(1);
26
27
29
30 for (
int i = 0; i <
nvars; i++)
31 {
32
33 _elem[i].is_zero =
false;
34 _elem[i].coeff_is_one =
true;
35 _elem[i].monom_is_one =
true;
36 _elem[i].bigelem_is_one =
true;
38 _elem[i].monom =
nullptr;
39
40 ring_elem f = m->
elem(0, i);
42
44 _elem[i].is_zero =
true;
45 else if (
P ==
nullptr)
46 {
47
48 if (!
K->is_equal(f, one))
49 {
50 _elem[i].coeff_is_one =
false;
51 _elem[i].coeff =
K->copy(f);
52 }
53 }
54 else
55 {
56
57#ifdef DEVELOPMENT
58#warning "also handle fraction rings"
59#endif
60 Nterm *t = f;
61 if (t->
next ==
nullptr)
62 {
63
64 if (!
K->is_equal(t->
coeff, one))
65 {
66 _elem[i].coeff_is_one =
false;
68 }
69
71
72 {
73 _elem[i].monom_is_one =
false;
75 }
76 }
77 else
78 {
79
81 _elem[i].bigelem_is_one =
false;
82 }
83 }
85 }
86}
const Ring * get_ring() const
ring_elem elem(int i, int j) const
Per-source-variable image record: a factored representation of the target-ring element that variable ...
References _elem, Nterm::coeff, Matrix::elem(), get_ring(), is_monomial, K, M, Matrix, Nterm::monom, Matrix::n_cols(), Nterm::next, nvars, P, R, and ZERO_RINGELEM.
Referenced by is_equal(), and make().