|
| const PolynomialRing * | originalR () const |
| int | extension_degree () const |
| GF * | cast_to_GF () |
| const GF * | cast_to_GF () const |
| virtual bool | isGaloisField () const |
| const RingElement * | getMinimalPolynomial () const |
| virtual const RingElement * | getGenerator () const |
| virtual const RingElement * | getRepresentation (const ring_elem &a) const |
| ring_elem | get_rep (ring_elem f) const |
| int | discrete_log (ring_elem a) const |
| unsigned int | computeHashValue (const ring_elem a) const |
| virtual void | text_out (buffer &o) const |
| virtual ring_elem | from_long (long n) const |
| virtual ring_elem | from_int (mpz_srcptr n) const |
| virtual ring_elem | var (int v) 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 | mult (const 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 | 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 |
| 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 | ~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 | 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 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 SchurRing2 * | cast_to_SchurRing2 () const |
| virtual SchurRing2 * | cast_to_SchurRing2 () |
| virtual const SchurSnRing * | cast_to_SchurSnRing () const |
| virtual SchurSnRing * | cast_to_SchurSnRing () |
| 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 long | discreteLog (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 | 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 | 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 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 |
| | MutableEngineObject () |
| virtual | ~MutableEngineObject () |
| unsigned int | hash () const |
| | our_gc_cleanup () |
| virtual | ~our_gc_cleanup () |
Engine-side finite field GF(p^n) built on top of (Z/p)[t] / f(t) for a primitive element of the resulting field.
- Note
- AI-generated documentation. Verify against the source before relying on it.
Represents non-zero elements by their discrete-logarithm index relative to a chosen primitive primitive_element: index 0 encodes 0, Q-1 encodes 1, and index n encodes primitive^n. _x_exponent is the index of the original generator t. Multiplication / division become mod-Q1 add / sub on indices; addition uses the precomputed _one_table to resolve 1 + primitive^n. _from_int_table maps small integers back into indices. Falls back to Ring for cases not covered by the aring-style ARingGFM2 / ARingGFFlint* specialisations.
Definition at line 61 of file GF.hpp.