|
Macaulay2 Engine
|
Sign-rule helper used by every ring that has a skew-commutative subset of variables (exterior factor, full skew ring, ...). More...
#include <skew.hpp>
Public Member Functions | |
| SkewMultiplication () | |
| SkewMultiplication (int nvars, int nskew, int *skew_list) | |
| ~SkewMultiplication () | |
| int | n_skew_vars () const |
| bool | is_skew_var (int i) const |
| int | skew_variable (int i) const |
| int | skew_degree (const int *exp) const |
| int | skew_vars (const int *exp, int *result) const |
| int | skew_vars (const long *exp, int *result) const |
| int | mult_sign (const int *exp1, const int *exp2) const |
| int | mult_sign (const long *exp1, const long *exp2) const |
| int | diff (const int *exp1, const int *exp2, int *result) const |
| int | divide (const int *exp1, const int *exp2, int *result) const |
| bool | exp_is_zero (const int *exp) const |
Public Attributes | |
| int | _n_vars |
| int | _n_skew |
| int * | _skew_list |
| bool * | _skew_exp |
| unsigned long | skew_byte_size |
Sign-rule helper used by every ring that has a skew-commutative subset of variables (exterior factor, full skew ring, ...).
Stores which of the _n_vars variables are skew (_skew_list[0.._n_skew-1], with _skew_exp[i] a fast "is variable `i` skew?" lookup), plus the byte size used to cache exponent vectors. Hands out the inversion count needed by the wrapping ring's mult_by_term1 to decide the sign of a product, and detects x_i^2 = 0 collapses on the skew side. Full polynomial multiplication still lives in the rings that embed this helper (SkewPolynomialRing, PolyRing with skew factors, F4 / resolution code).