|
Macaulay2 Engine
|
SkewMultiplication — configuration object naming the skew-commuting variables of a ring. More...
Go to the source code of this file.
Classes | |
| class | SkewMultiplication |
| Sign-rule helper used by every ring that has a skew-commutative subset of variables (exterior factor, full skew ring, ...). More... | |
SkewMultiplication — configuration object naming the skew-commuting variables of a ring.
Declares SkewMultiplication, the pure-data record a PolyRing (and f4/moninfo.hpp's MonomialInfo) attaches when the user declares a subset of the variables to skew-commute. The record carries the total variable count _n_vars, the skew-variable count _n_skew, an ordered _skew_list of skew-variable indices for iteration, and a _skew_exp boolean bitmap indexed by variable for O(1) lookup — the two representations exist for the different hot-loop patterns engine code walks.
Beyond the lookup helpers is_skew_var, skew_variable, skew_degree(exp) (number of skew variables active in exp), and skew_vars(exp, result) (their indices), the class also computes mult_sign(exp1, exp2) — the +/-1 sign produced by the transpositions needed to interleave the skew variables of the two factors — plus diff / divide exponent helpers and exp_is_zero(exp), which detects x_i^2 = 0 collapses on the skew side. Full polynomial multiplication still lives in skewpoly.cpp, f4/, and the resolution code in schreyer-resolution/, which consult SkewMultiplication for these signs and predicates.
Definition in file skew.hpp.