|
Macaulay2 Engine
|
PolyRing subclass for skew-commutative (exterior-style) polynomial rings: the listed skewvars anticommute among themselves and square to zero. More...
#include <skewpoly.hpp>
Public Member Functions | |
| void | text_out (buffer &o) const |
| virtual bool | has_gcd () const |
| virtual bool | is_skew_commutative_ring () const |
| virtual bool | is_commutative_ring () const |
| virtual const SkewPolynomialRing * | cast_to_SkewPolynomialRing () const |
| virtual SkewPolynomialRing * | cast_to_SkewPolynomialRing () |
| virtual ring_elem | power (const ring_elem f, mpz_srcptr n) const |
| Exponentiation. This is the default function, if a class doesn't define this. | |
| virtual ring_elem | power (const ring_elem f, int n) const |
| ring_elem | antipode (const ring_elem f) const |
| Public Member Functions inherited from PolyRing | |
| virtual void | clear () |
| virtual const PolyRing * | cast_to_PolyRing () const |
| virtual PolyRing * | cast_to_PolyRing () |
| ring_elem | fromCoefficient (ring_elem &coeff) const |
| virtual ring_elem | from_long (long n) const |
| virtual ring_elem | from_int (mpz_srcptr n) const |
| virtual bool | from_rational (mpq_srcptr q, ring_elem &result) const |
| virtual bool | from_BigComplex (gmp_CC z, ring_elem &result) const |
| virtual bool | from_BigReal (gmp_RR z, ring_elem &result) const |
| virtual bool | from_Interval (gmp_RRi z, ring_elem &result) const |
| virtual bool | from_ComplexInterval (gmp_CCi z, ring_elem &result) const |
| virtual bool | from_double (double a, ring_elem &result) const |
| virtual bool | from_complex_double (double re, double im, ring_elem &result) const |
| virtual ring_elem | var (int v) const |
| virtual int | index_of_var (const ring_elem a) const |
| virtual M2_arrayint | support (const ring_elem a) const |
| virtual bool | promote (const Ring *R, const ring_elem f, ring_elem &result) const |
| virtual bool | lift (const Ring *R, const ring_elem f, ring_elem &result) const |
| virtual ring_elem | preferred_associate (ring_elem f) const |
| ring_elem | preferred_associate_divisor (ring_elem ff) const |
| virtual bool | is_unit (const ring_elem f) const |
| virtual bool | is_zero (const ring_elem f) const |
| virtual bool | is_equal (const ring_elem f, const ring_elem g) const |
| virtual int | compare_elems (const ring_elem f, const ring_elem g) const |
| virtual bool | is_homogeneous (const ring_elem f) const |
| virtual bool | multi_degree (const ring_elem f, monomial d) const |
| virtual void | degree_weights (const ring_elem f, const std::vector< int > &wts, int &lo, int &hi) const |
| virtual ring_elem | homogenize (const ring_elem f, int v, int deg, const std::vector< int > &wts) const |
| virtual ring_elem | homogenize (const ring_elem f, int v, const std::vector< int > &wts) const |
| virtual ring_elem | copy (const ring_elem f) const |
| virtual void | remove (ring_elem &f) const |
| void | internal_negate_to (ring_elem &f) const |
| void | internal_add_to (ring_elem &f, ring_elem &g) const |
| void | internal_subtract_to (ring_elem &f, ring_elem &g) const |
| virtual ring_elem | negate (const ring_elem f) const |
| virtual ring_elem | add (const ring_elem f, const ring_elem g) const |
| virtual ring_elem | subtract (const ring_elem f, const ring_elem g) const |
| virtual ring_elem | mult (const ring_elem f, const ring_elem g) const |
| virtual ring_elem | invert (const ring_elem f) const |
| virtual ring_elem | divide (const ring_elem f, const ring_elem g) const |
| Warning! This function works even if g does not divide f. | |
| ring_elem | gcd (const ring_elem f, const ring_elem g) const |
| ring_elem | gcd_extended (const ring_elem f, const ring_elem g, ring_elem &u, ring_elem &v) const |
| virtual ring_elem | remainder (const ring_elem f, const ring_elem g) const |
| virtual ring_elem | quotient (const ring_elem f, const ring_elem g) const |
| virtual ring_elem | remainderAndQuotient (const ring_elem f, const ring_elem g, ring_elem ") const |
| virtual void | syzygy (const ring_elem a, const ring_elem b, ring_elem &x, ring_elem &y) const |
| virtual ring_elem | random () const |
| virtual void | elem_text_out (buffer &o, const ring_elem f, bool p_one=true, bool p_plus=false, bool p_parens=false) const |
| virtual ring_elem | eval (const RingMap *map, const ring_elem f, int first_var) const |
| virtual int | n_flat_terms (const ring_elem f) const |
| virtual int | n_logical_terms (int nvars0, const ring_elem f) const |
| virtual ring_elem | get_coeff (const Ring *coeffR, const ring_elem f, const_varpower vp) const |
| virtual ring_elem | get_terms (int nvars0, const ring_elem f, int lo, int hi) const |
| virtual ring_elem | make_flat_term (const ring_elem a, const_monomial m) const |
| virtual ring_elem | make_logical_term (const Ring *coeffR, const ring_elem a, const_exponents exp) const |
| virtual ring_elem | lead_flat_coeff (const ring_elem f) const |
| virtual ring_elem | lead_logical_coeff (const Ring *coeffR, const ring_elem f) const |
| virtual const_monomial | lead_flat_monomial (const ring_elem f) const |
| virtual void | lead_logical_exponents (int nvars0, const ring_elem f, exponents_t result_exp) const |
| ring_elem | lead_term (const ring_elem f) const |
| virtual engine_RawArrayPairOrNull | list_form (const Ring *coeffR, const ring_elem f) const |
| virtual ring_elem * | get_parts (const std::vector< int > &wts, const ring_elem f, long &result_len) const |
| virtual ring_elem | get_part (const std::vector< int > &wts, const ring_elem f, bool lobound_given, bool hibound_given, long lobound, long hibound) const |
| virtual void | mult_coeff_to (ring_elem a, ring_elem &f) const |
| virtual void | divide_coeff_to (ring_elem &f, ring_elem a) const |
| virtual ring_elem | lead_term (int nparts, const ring_elem f) const |
| ring_elem | fromSmallIntegerCoefficients (const std::vector< long > &coeffs, int var) const |
| virtual ring_elem | zeroize_tiny (gmp_RR epsilon, const ring_elem f) const |
| virtual void | increase_maxnorm (gmp_RRmutable norm, const ring_elem f) const |
| virtual vec | vec_lead_term (int nparts, const FreeModule *F, vec v) const |
| virtual vec | vec_top_coefficient (const vec v, int &var, int &exp) const |
| const vecterm * | vec_locate_lead_term (const FreeModule *F, vec v) const |
| virtual void | monomial_divisor (const ring_elem a, exponents_t exp) const |
| virtual ring_elem | diff (ring_elem a, ring_elem b, int use_coeff) const |
| virtual bool | in_subring (int nslots, const ring_elem a) const |
| virtual void | degree_of_var (int n, const ring_elem a, int &lo, int &hi) const |
| virtual ring_elem | divide_by_var (int n, int d, const ring_elem a) const |
| virtual ring_elem | divide_by_expvector (const_exponents exp, const ring_elem a) const |
| virtual void | lower_content (ring_elem &cont, ring_elem new_coeff) const |
| virtual ring_elem | content (ring_elem f) const |
| virtual ring_elem | content (ring_elem f, ring_elem g) const |
| virtual ring_elem | divide_by_given_content (ring_elem f, ring_elem c) const |
| void | sort (Nterm *&f) const |
| void | determine_common_denominator_QQ (ring_elem f, mpz_ptr denom_so_far) const |
| ring_elem | get_denominator_QQ (ring_elem f) const |
| ring_elem | vec_get_denominator_QQ (vec f) const |
| gbvector * | translate_gbvector_from_vec_QQ (const FreeModule *F, const vec v, ring_elem &result_denominator) const |
| vec | translate_gbvector_to_vec_QQ (const FreeModule *F, const gbvector *v, const ring_elem denom) const |
| gbvector * | translate_gbvector_from_ringelem_QQ (ring_elem coeff) const |
| gbvector * | translate_gbvector_from_ringelem (ring_elem coeff) const |
| gbvector * | translate_gbvector_from_vec (const FreeModule *F, const vec v, ring_elem &result_denominator) const |
| vec | translate_gbvector_to_vec (const FreeModule *F, const gbvector *v) const |
| vec | translate_gbvector_to_vec_denom (const FreeModule *F, const gbvector *v, const ring_elem denom) const |
| Public Member Functions inherited from PolyRingFlat | |
| virtual Nterm * | numerator (ring_elem f) const |
| virtual const PolyRingFlat * | cast_to_PolyRingFlat () const |
| virtual PolyRingFlat * | cast_to_PolyRingFlat () |
| Public Member Functions inherited from PolynomialRing | |
| Matrix * | getPresentation () const |
| unsigned long | get_precision () const |
| bool | is_basic_ring () const |
| bool | is_poly_ring () const |
| bool | is_graded () const |
| CoefficientType | coefficient_type () const |
| int | n_vars () const |
| QRingInfo * | get_quotient_info () const |
| const Ring * | getCoefficientRing () const |
| MonomialTable * | get_quotient_MonomialTable () const |
| const MonomialIdeal * | get_quotient_monomials () const |
| const MonomialTableZZ * | get_quotient_MonomialTableZZ () const |
| int | n_quotients () const |
| Nterm * | quotient_element (int i) const |
| const gbvector * | quotient_gbvector (int i) const |
| const MonomialIdeal * | make_basis_MonomialIdeal () const |
| bool | is_quotient_ring () const |
| bool | is_skew_commutative () const |
| int | n_skew_commutative_vars () const |
| int | skew_variable (int i) const |
| bool | is_skew_var (int v) const |
| const SkewMultiplication & | getSkewInfo () const |
| virtual bool | is_weyl_algebra () const |
| virtual bool | is_solvable_algebra () const |
| virtual const PolyRing * | getNumeratorRing () const |
| virtual const PolynomialRing * | getAmbientRing () const |
| virtual const Ring * | getDenominatorRing () const |
| virtual GBRing * | get_gb_ring () const |
| virtual const Ring * | getCoefficients () const |
| virtual const Monoid * | getMonoid () const |
| virtual bool | is_fraction_poly_ring () const |
| virtual int | n_fraction_vars () const |
| virtual const PolynomialRing * | cast_to_PolynomialRing () const |
| virtual PolynomialRing * | cast_to_PolynomialRing () |
| SumCollector * | make_SumCollector () const |
| virtual unsigned int | computeHashValue (const ring_elem a) const |
| int | n_terms (const ring_elem f) const |
| virtual ring_elem | make_logical_term (const Ring *coeffR, const ring_elem a, const_exponents exp) const =0 |
| virtual ring_elem | get_coeff (const Ring *coeffR, const ring_elem f, const_varpower vp) const =0 |
| virtual void | lead_logical_exponents (int nvars0, const ring_elem f, exponents_t result_exp) const =0 |
| virtual void | monomial_divisor (const ring_elem a, exponents_t exp) const =0 |
| virtual ring_elem | divide_by_expvector (const_exponents exp, const ring_elem a) const =0 |
| Public Member Functions inherited from Ring | |
| virtual | ~Ring () |
| const CoefficientRingR * | getCoefficientRingR () const |
| long | characteristic () const |
| const Monoid * | degree_monoid () const |
| const PolynomialRing * | get_degree_ring () const |
| const std::vector< int > & | get_heft_vector () const |
| virtual M2::RingID | ringID () const |
| virtual bool | isFinitePrimeField () const |
| virtual bool | isGaloisField () const |
| virtual bool | is_ZZ () const |
| virtual bool | is_QQ () const |
| virtual bool | is_RRR () const |
| virtual bool | is_RRi () const |
| virtual bool | is_CCC () const |
| virtual bool | is_fraction_field () const |
| bool | is_field () const |
| bool | declare_field () |
| ring_elem | get_non_unit () const |
| void | set_non_unit (ring_elem zero_div) const |
| virtual bool | has_associate_divisors () const |
| virtual const RingZZ * | cast_to_RingZZ () const |
| virtual RingZZ * | cast_to_RingZZ () |
| virtual const Z_mod * | cast_to_Z_mod () const |
| virtual Z_mod * | cast_to_Z_mod () |
| virtual const GF * | cast_to_GF () const |
| virtual GF * | cast_to_GF () |
| virtual const Tower * | cast_to_Tower () const |
| virtual Tower * | cast_to_Tower () |
| virtual const PolyQQ * | cast_to_PolyQQ () const |
| virtual PolyQQ * | cast_to_PolyQQ () |
| virtual const FractionField * | cast_to_FractionField () const |
| virtual FractionField * | cast_to_FractionField () |
| virtual const LocalRing * | cast_to_LocalRing () const |
| virtual LocalRing * | cast_to_LocalRing () |
| virtual const M2FreeAlgebra * | cast_to_M2FreeAlgebra () const |
| virtual M2FreeAlgebra * | cast_to_M2FreeAlgebra () |
| virtual const M2FreeAlgebraQuotient * | cast_to_M2FreeAlgebraQuotient () const |
| virtual M2FreeAlgebraQuotient * | cast_to_M2FreeAlgebraQuotient () |
| virtual const M2FreeAlgebraOrQuotient * | cast_to_M2FreeAlgebraOrQuotient () const |
| virtual M2FreeAlgebraOrQuotient * | cast_to_M2FreeAlgebraOrQuotient () |
| virtual const SchurRing * | cast_to_SchurRing () const |
| virtual SchurRing * | cast_to_SchurRing () |
| virtual const SchurRing2 * | cast_to_SchurRing2 () const |
| virtual SchurRing2 * | cast_to_SchurRing2 () |
| virtual const SchurSnRing * | cast_to_SchurSnRing () const |
| virtual SchurSnRing * | cast_to_SchurSnRing () |
| virtual const SolvableAlgebra * | cast_to_SolvableAlgebra () const |
| virtual SolvableAlgebra * | cast_to_SolvableAlgebra () |
| virtual const WeylAlgebra * | cast_to_WeylAlgebra () const |
| virtual RRR * | cast_to_RRR () |
| virtual const RRR * | cast_to_RRR () const |
| virtual RRi * | cast_to_RRi () |
| virtual const RRi * | cast_to_RRi () const |
| virtual CCC * | cast_to_CCC () |
| virtual const CCC * | cast_to_CCC () const |
| virtual const RingElement * | getMinimalPolynomial () const |
| virtual const RingElement * | getGenerator () const |
| virtual long | discreteLog (const ring_elem &a) const |
| virtual const RingElement * | getRepresentation (const ring_elem &a) const |
| virtual MutableMatrix * | makeMutableMatrix (size_t nrows, size_t ncols, bool dense) const |
| virtual FreeModule * | make_FreeModule () const |
| virtual FreeModule * | make_Schreyer_FreeModule () const |
| virtual FreeModule * | make_FreeModule (int n) const |
| virtual std::pair< bool, long > | coerceToLongInteger (ring_elem a) const |
| ring_elem | one () const |
| ring_elem | minus_one () const |
| ring_elem | zero () const |
| virtual bool | lower_associate_divisor (ring_elem &f, ring_elem g) const |
| void | negate_to (ring_elem &f) const |
| void | add_to (ring_elem &f, const ring_elem &g) const |
| void | subtract_to (ring_elem &f, const ring_elem &g) const |
| void | mult_to (ring_elem &f, const ring_elem g) const |
| const_monomial | degree (const ring_elem f) const |
| vec | vec_zeroize_tiny (gmp_RR epsilon, const vec f) const |
| void | vec_increase_maxnorm (gmp_RRmutable norm, const vec f) const |
| void | vec_sort (vecterm *&f) const |
| int | compare_vecs (vec v, vec w) const |
| vec | e_sub_i (int r) const |
| vec | make_vec (int r, ring_elem a) const |
| vec | make_vec_from_array (int len, Nterm **array) const |
| vec | copy_vec (const vecterm *v) const |
| void | remove_vec (vec v) const |
| bool | is_equal (const vecterm *a, const vecterm *b) const |
| bool | get_entry (const vecterm *v, int r, ring_elem &result) const |
| ring_elem | get_entry (vec v, int r) const |
| vec | sub_vector (const vecterm *v, M2_arrayint r) const |
| int | n_nonzero_terms (const vecterm *v) const |
| void | vec_text_out (buffer &o, const vecterm *v, bool p_one=true, bool p_plus=false, bool p_parens=false) const |
| vec | vec_eval (const RingMap *map, const FreeModule *F, const vec v) const |
| vec | negate_vec (vec v) const |
| vec | add_vec (vec v, vec w) const |
| vec | subtract_vec (vec v, vec w) const |
| vec | mult_vec (int n, vec v) const |
| vec | mult_vec (const ring_elem f, const vec w) const |
| vec | rightmult_vec (const vec w, const ring_elem f) const |
| void | set_entry (vec &v, int i, ring_elem r) const |
| void | mult_vec_to (vec &v, const ring_elem r, bool opposite_mult) const |
| void | mult_row (vec &v, const ring_elem r, int i, bool opposite_mult) const |
| void | negate_vec_to (vec &v) const |
| void | add_vec_to (vec &v, vec &w) const |
| void | subtract_vec_to (vec &v, vec &w) const |
| vec | mult_vec_matrix (const Matrix *m, vec v, bool opposite_mult) const |
| vec | component_shift (int n, vec v) const |
| vec | tensor_shift (int n, int m, vec v) const |
| vec | tensor (const FreeModule *F, vec v, const FreeModule *G, vec w) const |
| void | divide_vec_to (vec &v, const ring_elem a) const |
| void | divide_row (vec &v, int r, const ring_elem a) const |
| ring_elem | dot_product (const vecterm *v, const vecterm *w) const |
| vec | vec_diff (vec v, int rankFw, vec w, int use_coeff) const |
| int | vec_in_subring (int n, const vec v) const |
| void | vec_degree_of_var (int n, const vec v, int &lo, int &hi) const |
| vec | vec_divide_by_var (int n, int d, const vec v) const |
| vec | vec_divide_by_expvector (const_exponents exp, const vec v) const |
| bool | vec_is_scalar_multiple (vec f, vec g) const |
| vec | vec_remove_monomial_factors (vec f, bool make_squarefree_only) const |
| bool | vec_multi_degree (const FreeModule *F, const vec f, monomial degf) const |
| void | vec_degree_weights (const FreeModule *F, const vec f, const std::vector< int > &wts, int &lo, int &hi) const |
| bool | vec_is_homogeneous (const FreeModule *F, const vec f) const |
| vec | vec_homogenize (const FreeModule *F, const vec f, int v, int deg, const std::vector< int > &wts) const |
| vec | vec_homogenize (const FreeModule *F, const vec f, int v, const std::vector< int > &wts) const |
| ring_elem | divide_by_content (ring_elem f) const |
| ring_elem | split_off_content (ring_elem f, ring_elem &result) const |
| ring_elem | vec_content (vec f) const |
| vec | vec_divide_by_given_content (vec f, ring_elem c) const |
| vec | vec_divide_by_content (vec f) const |
| ring_elem | vec_split_off_content (vec f, vec &result) const |
| Public Member Functions inherited from MutableEngineObject | |
| MutableEngineObject () | |
| virtual | ~MutableEngineObject () |
| unsigned int | hash () const |
| Public Member Functions inherited from our_gc_cleanup | |
| our_gc_cleanup () | |
| virtual | ~our_gc_cleanup () |
Static Public Member Functions | |
| static SkewPolynomialRing * | create (const Ring *K, const Monoid *M, M2_arrayint skewvars) |
| Static Public Member Functions inherited from PolyRing | |
| static const PolyRing * | create (const Ring *K, const Monoid *M) |
| static const PolyRing * | get_trivial_poly_ring () |
| Static Public Member Functions inherited from PolynomialRing | |
| static PolynomialRing * | create_quotient (const PolynomialRing *R, const Matrix *M) |
| static PolynomialRing * | create_quotient (const PolynomialRing *R, const PolynomialRing *B) |
| static PolynomialRing * | create_quotient_ring (const Matrix *M) |
| Static Public Member Functions inherited from our_new_delete | |
| static void * | operator new (size_t size) |
| static void * | operator new[] (size_t size) |
| static void | operator delete (void *obj) |
| static void | operator delete[] (void *obj) |
| static void * | operator new (size_t size, void *existing_memory) |
| static void * | operator new[] (size_t size, void *existing_memory) |
| static void | operator delete (void *obj, void *existing_memory) |
| static void | operator delete[] (void *obj, void *existing_memory) |
Protected Member Functions | |
| virtual ring_elem | mult_by_term (const ring_elem f, const ring_elem c, const int *m) const |
| Protected Member Functions inherited from PolyRing | |
| void | initialize_poly_ring (const Ring *K, const Monoid *M) |
| virtual | ~PolyRing () |
| PolyRing () | |
| void | minimal_monomial (ring_elem f, monomial &monom) const |
| Nterm * | division_algorithm (Nterm *f, Nterm *g, Nterm *") const |
| Nterm * | division_algorithm (Nterm *f, Nterm *g) const |
| Nterm * | powerseries_division_algorithm (Nterm *f, Nterm *g, Nterm *") const |
| std::vector< int > | setNegativeExponentMonomial (Nterm *f) const |
| Create an exponent vector whose i-th value is the minimum of the exponents of that variable, if that variable is a Laurent variable (i.e. allows negative exponents). | |
| Nterm * | division_algorithm_with_laurent_variables (Nterm *f, Nterm *g, Nterm *") const |
| vec | vec_coefficient_of_var (vec v, int var, int exp) const |
| ring_elem | diff_term (const_monomial m, const_monomial n, monomial resultmon, int use_coeff) const |
| ring_elem | power_direct (const ring_elem f, int n) const |
| ring_elem | get_logical_coeff (const Ring *coeffR, const Nterm *&f) const |
| Nterm * | new_term () const |
| Nterm * | copy_term (const Nterm *t) const |
| bool | imp_attempt_to_cancel_lead_term (ring_elem &f, ring_elem g, ring_elem &coeff, monomial monom) const |
| ring_elem | imp_skew_mult_by_term (const ring_elem f, const ring_elem c, const_monomial m) const |
| void | imp_subtract_multiple_to (ring_elem &f, ring_elem a, const_monomial m, const ring_elem g) const |
| Protected Member Functions inherited from PolynomialRing | |
| void | setIsGraded (bool new_val) |
| void | setQuotientInfo (QRingInfo *qinfo0) |
| void | initialize_PolynomialRing (const Ring *K, const Monoid *M, const PolyRing *numeratorR, const PolynomialRing *ambientR, const Ring *denomR) |
| virtual | ~PolynomialRing () |
| PolynomialRing () | |
| void | sort (Nterm *&f) const |
| Protected Member Functions inherited from Ring | |
| const ARing * | getARing () const |
| void | initialize_ring (long charac, const PolynomialRing *DR=nullptr, const std::vector< int > &heft_vec={}) |
| Ring () | |
| vec | new_vec () const |
| vector operations //////////////////// | |
| void | remove_vec_node (vec n) const |
Private Member Functions | |
| bool | initialize_skew (M2_arrayint skewvars) |
| SkewPolynomialRing () | |
| virtual | ~SkewPolynomialRing () |
PolyRing subclass for skew-commutative (exterior-style) polynomial rings: the listed skewvars anticommute among themselves and square to zero.
Constructed via create(K, M, skewvars) — skewvars is the array of variable indices that participate in the anti-commutation. The data needed to apply the sign changes lives in a SkewMultiplication instance attached to the underlying ring; the PolyRing virtuals are overridden to consult it during monomial multiplication.
Definition at line 60 of file skewpoly.hpp.