Macaulay2 Engine
Loading...
Searching...
No Matches
skew.hpp File Reference

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...

Detailed Description

SkewMultiplication — configuration object naming the skew-commuting variables of a ring.

Note
AI-generated documentation. Verify against the source before relying on it.

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.

See also
polyring.hpp

Definition in file skew.hpp.