Macaulay2 Engine
Loading...
Searching...
No Matches

◆ GBRing()

GBRing::GBRing ( const Ring * K0,
const Monoid * M0 )
protected

Definition at line 55 of file gbring.cpp.

56 : _schreyer_encoded(true),
57 M(M0),
58 K(K0),
59 _coeffs_ZZ(false), // set below
60 zzp(nullptr),
61 _nvars(M->n_vars()),
62 _up_order(false),
63 _is_skew(false),
64 _skew(),
65 _skew_monoms(nullptr),
66 is_weyl(false),
67 weyl(nullptr),
68 is_solvable(false),
69 solvable(nullptr),
70 _one(K->from_long(1))
71{
73 monom_size = MONOMIAL_BYTE_SIZE(M->monomial_size());
74
75 gbvector_size = sizeofgbvector(((gbvector *)nullptr), M->monomial_size());
76 mem = new stash("gbvector", gbvector_size);
77
78 const Z_mod *Kp = K->cast_to_Z_mod();
79 if (Kp != nullptr) zzp = Kp->get_CoeffRing();
80
81 if (K == globalQQ) K = globalZZ;
82 if (K == globalZZ) _coeffs_ZZ = true;
83}
const RingQQ * globalQQ
Definition aring.cpp:24
CoefficientRingZZp * zzp
Definition gbring.hpp:141
const WeylAlgebra * weyl
Definition gbring.hpp:158
stash * mem
Definition gbring.hpp:144
ring_elem _one
Definition gbring.hpp:164
bool is_weyl
Definition gbring.hpp:157
bool _schreyer_encoded
Definition gbring.hpp:136
bool _coeffs_ZZ
Definition gbring.hpp:140
size_t monom_size
Definition gbring.hpp:170
bool _is_skew
Definition gbring.hpp:150
const SolvableAlgebra * solvable
Definition gbring.hpp:161
size_t exp_size
Definition gbring.hpp:169
bool is_solvable
Definition gbring.hpp:160
SkewMultiplication _skew
Definition gbring.hpp:151
int _nvars
Definition gbring.hpp:146
const Monoid * M
Definition gbring.hpp:137
const Ring * K
Definition gbring.hpp:138
bool _up_order
Definition gbring.hpp:148
size_t gbvector_size
Definition gbring.hpp:143
int *const * _skew_monoms
Definition gbring.hpp:153
CoefficientRingZZp * get_CoeffRing() const
Definition ZZp.hpp:93
RingZZ * globalZZ
Definition relem.cpp:13
#define sizeofgbvector(s, len)
Definition gbring.cpp:18
#define MONOMIAL_BYTE_SIZE(mon_size)
Definition monoid.hpp:66
#define EXPONENT_BYTE_SIZE(nvars)
Definition monoid.hpp:63

References _coeffs_ZZ, _is_skew, _nvars, _one, _schreyer_encoded, _skew, _skew_monoms, _up_order, exp_size, EXPONENT_BYTE_SIZE, gbvector_size, Z_mod::get_CoeffRing(), globalQQ, globalZZ, is_solvable, is_weyl, K, M, mem, monom_size, MONOMIAL_BYTE_SIZE, n_vars(), sizeofgbvector, solvable, weyl, and zzp.

Referenced by create_PolynomialRing(), create_SkewPolynomialRing(), create_SolvableAlgebra(), create_WeylAlgebra(), and skew_mult_sign().