|
Macaulay2 Engine
|
SchurRing2 subclass implementing the symmetric-group character ring (the "Schur ring of `S_n`"), with multiplication given by inner-product convolution rather than Littlewood-Richardson. More...
#include <schurSn.hpp>
Public Member Functions | |
| SchurSnRing (const Ring *A, int n=-1) | |
| virtual const SchurSnRing * | cast_to_SchurSnRing () const |
| virtual SchurSnRing * | cast_to_SchurSnRing () |
| virtual ring_elem | mult (const ring_elem f, const ring_elem g) const |
| ring_elem | tensor_mult (const ring_elem f, const ring_elem g) const |
| Public Member Functions inherited from SchurRing2 | |
| int | n_vars () const |
| const Ring * | getCoefficientRing () const |
| virtual const SchurRing2 * | cast_to_SchurRing2 () const |
| virtual SchurRing2 * | cast_to_SchurRing2 () |
| bool | is_valid_partition (M2_arrayint part, bool set_error=true) const |
| ring_elem | from_coeff (ring_elem a) const |
| ring_elem | from_partition (M2_arrayint part) const |
| schur_poly * | mult_by_coefficient (ring_elem a, const schur_poly *f) const |
| bool | get_scalar (const schur_poly *f, ring_elem &result) const |
| size_t | size (ring_elem f) const |
| void | dimension (const int *exp, mpz_t result) const |
| ring_elem | dimension (const ring_elem f) const |
| engine_RawArrayPairOrNull | list_form (const Ring *coeffR, const ring_elem f) const |
| virtual unsigned int | computeHashValue (const ring_elem a) const |
| virtual void | text_out (buffer &o) 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 | 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 | 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 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 ring_elem | copy (const ring_elem f) const |
| virtual void | remove (ring_elem &f) 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 | eval (const RingMap *map, const ring_elem f, int first_var) const |
| virtual ring_elem | invert (const ring_elem f) const |
| virtual ring_elem | divide (const ring_elem f, const ring_elem g) const |
| virtual void | syzygy (const ring_elem a, const ring_elem b, ring_elem &x, ring_elem &y) const |
| 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 | is_basic_ring () 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 |
| virtual bool | is_fraction_poly_ring () const |
| virtual bool | is_poly_ring () const |
| virtual bool | is_commutative_ring () const |
| virtual bool | is_quotient_ring () const |
| virtual bool | is_weyl_algebra () const |
| virtual bool | is_skew_commutative_ring () const |
| virtual bool | is_solvable_algebra () const |
| virtual bool | is_graded () const |
| bool | is_field () const |
| bool | declare_field () |
| ring_elem | get_non_unit () const |
| void | set_non_unit (ring_elem zero_div) const |
| virtual CoefficientType | coefficient_type () 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 PolynomialRing * | cast_to_PolynomialRing () const |
| virtual PolynomialRing * | cast_to_PolynomialRing () |
| virtual const PolyRing * | cast_to_PolyRing () const |
| virtual PolyRing * | cast_to_PolyRing () |
| virtual const PolyQQ * | cast_to_PolyQQ () const |
| virtual PolyQQ * | cast_to_PolyQQ () |
| virtual const PolyRingFlat * | cast_to_PolyRingFlat () const |
| virtual PolyRingFlat * | cast_to_PolyRingFlat () |
| 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 SkewPolynomialRing * | cast_to_SkewPolynomialRing () const |
| virtual SkewPolynomialRing * | cast_to_SkewPolynomialRing () |
| 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 SumCollector * | make_SumCollector () 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 | from_BigReal (gmp_RR a, ring_elem &result) const |
| virtual bool | from_Interval (gmp_RRi a, ring_elem &result) const |
| virtual bool | from_BigComplex (gmp_CC 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 ring_elem | preferred_associate (ring_elem f) 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 |
| 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 |
| 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 ring_elem | random () const |
| virtual int | index_of_var (const ring_elem a) const |
| virtual M2_arrayint | support (const ring_elem a) 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 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 bool | is_homogeneous (const ring_elem f) const |
| const_monomial | degree (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 | antipode (ring_elem f) const |
| virtual unsigned long | get_precision () 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 |
| 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 |
| virtual vec | vec_lead_term (int nparts, const FreeModule *F, 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 |
| virtual void | lower_content (ring_elem &c, ring_elem g) 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 |
| 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 SchurSnRing * | create (const Ring *A, int n=-1) |
| Static Public Member Functions inherited from SchurRing2 | |
| static SchurRing2 * | create (const Ring *A, int n=-1) |
| static SchurRing2 * | createInfinite (const Ring *A) |
| 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) |
Additional Inherited Members | |
| Public Types inherited from Ring | |
| enum | CoefficientType { COEFF_ZZ , COEFF_QQ , COEFF_BASIC } |
| Protected Member Functions inherited from SchurRing2 | |
| bool | initialize_schur () |
| bool | initialize_SchurRing2 () |
| SchurRing2 () | |
| SchurRing2 (const Ring *A, int n=-1) | |
| virtual | ~SchurRing2 () |
| int | compare_partitions (const_schur_partition a, const_schur_partition b) const |
| ring_elem | truncate (const ring_elem f) const |
| bool | promote_coeffs (const SchurRing2 *Sf, const ring_elem f, ring_elem &resultRE) const |
| bool | lift_coeffs (const SchurRing2 *Sg, const ring_elem f, ring_elem &resultRE) 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 |
| Protected Attributes inherited from Ring | |
| long | mCharacteristic |
| const PolynomialRing * | degree_ring |
| std::vector< int > | mHeftVector |
| const ARing * | AR |
| const CoefficientRingR * | cR |
| ring_elem | _non_unit |
| int | _isfield |
| ring_elem | zeroV |
| ring_elem | oneV |
| ring_elem | minus_oneV |
SchurRing2 subclass implementing the symmetric-group character ring (the "Schur ring of `S_n`"), with multiplication given by inner-product convolution rather than Littlewood-Richardson.
Overrides mult to compute the symmetric-group analogue: the coefficient of s_lambda in s_mu * s_nu is the number of ways to decompose representations rather than the LR count. cast_to_SchurSnRing() lets engine code distinguish this ring from the plain SchurRing2 it inherits from.
Definition at line 50 of file schurSn.hpp.