Package edu.jas.gbufd

Class GroebnerBasePartial<C extends GcdRingElem<C>>

java.lang.Object
edu.jas.gb.GroebnerBaseAbstract<C>
edu.jas.gbufd.GroebnerBasePartial<C>
Type Parameters:
C - coefficient type
All Implemented Interfaces:
GroebnerBase<C>, Serializable

public class GroebnerBasePartial<C extends GcdRingElem<C>> extends GroebnerBaseAbstract<C>
Partial Groebner Bases for subsets of variables. Let pvars be a subset of variables vars of the polynomial ring K[vars]. Methods compute Groebner bases with coefficients from K[vars \ pvars] in the polynomial ring K[vars \ pvars][pvars].
See Also:
  • Field Details

  • Constructor Details

    • GroebnerBasePartial

      public GroebnerBasePartial()
      Constructor.
    • GroebnerBasePartial

      public GroebnerBasePartial(RingFactory<GenPolynomial<C>> rf)
      Constructor.
      Parameters:
      rf - coefficient ring factory.
    • GroebnerBasePartial

      public GroebnerBasePartial(GroebnerBaseAbstract<C> bb, GroebnerBaseAbstract<GenPolynomial<C>> rbb)
      Constructor.
      Parameters:
      bb - Groebner base engine
      rbb - recursive Groebner base engine
  • Method Details

    • GB

      public List<GenPolynomial<C>> GB(int modv, List<GenPolynomial<C>> F)
      Groebner base using pairlist class.
      Parameters:
      modv - module variable number.
      F - polynomial list.
      Returns:
      GB(F) a Groebner base of F.
    • isGBrec

      public boolean isGBrec(List<GenPolynomial<GenPolynomial<C>>> F)
      Groebner base test.
      Parameters:
      F - polynomial list.
      Returns:
      true, if F is a partial Groebner base, else false.
    • isGBrec

      public boolean isGBrec(int modv, List<GenPolynomial<GenPolynomial<C>>> F)
      Groebner base test.
      Parameters:
      modv - module variable number.
      F - polynomial list.
      Returns:
      true, if F is a partial Groebner base, else false.
    • partialPermutation

      public static List<Integer> partialPermutation(String[] vars, String[] pvars)
      Partial permutation for specific variables. Computes a permutation perm for the variables vars, such that perm(vars) == pvars ... (vars \ pvars). Uses internal (reversed) variable sorting.
      Parameters:
      vars - names for all variables.
      pvars - names for main variables, pvars subseteq vars.
      Returns:
      permutation for vars, such that perm(vars) == pvars ... (vars \ pvars).
    • getPermutation

      public static List<Integer> getPermutation(String[] aname, String[] ename)
      Permutation of variables for elimination.
      Parameters:
      aname - variables for the full polynomial ring.
      ename - variables for the elimination ring, subseteq aname.
      Returns:
      perm({vars \ ename},ename)
    • indexOf

      public static int indexOf(String s, String[] A)
      Index of s in A.
      Parameters:
      s - search string
      A - string array
      Returns:
      i if s == A[i] for some i, else -1.
    • partialPermutation

      public static List<Integer> partialPermutation(String[] vars, String[] pvars, String[] rvars)
      Partial permutation for specific variables. Computes a permutation perm for the variables vars, such that perm(vars) == pvars ... (vars \ pvars). Uses internal (reversed) variable sorting.
      Parameters:
      vars - names for all variables.
      pvars - names for main variables, pvars subseteq vars.
      rvars - names for remaining variables, rvars eq { vars \ pvars }.
      Returns:
      permutation for vars, such that perm(vars) == (pvars, {vars \ pvars}).
    • partialPermutation

      public static List<Integer> partialPermutation(String[] vars, String[] evars, String[] pvars, String[] rvars)
      Partial permutation for specific variables. Computes a permutation perm for the variables vars, such that perm(vars) == (evars, pvars, (vars \ { evars, pvars }). Uses internal (reversed) variable sorting.
      Parameters:
      vars - names for all variables.
      evars - names for elimination variables, evars subseteq vars.
      pvars - names for main variables, pvars subseteq vars.
      rvars - names for remaining variables, rvars eq {vars \ { evars, pvars } }.
      Returns:
      permutation for vars, such that perm(vars) == (evars,pvars, {vars \ {evars,pvars}}.
    • remainingVars

      public static String[] remainingVars(String[] vars, String[] pvars)
      Remaining variables vars \ pvars. Uses internal (reversed) variable sorting, original order is preserved.
      Parameters:
      vars - names for all variables.
      pvars - names for main variables, pvars subseteq vars.
      Returns:
      remaining vars = (vars \ pvars).
    • partialGBrec

      public OptimizedPolynomialList<GenPolynomial<C>> partialGBrec(List<GenPolynomial<C>> F, String[] pvars)
      Partial recursive Groebner base for specific variables. Computes Groebner base in K[vars \ pvars][pvars] with coefficients from K[vars \ pvars].
      Parameters:
      F - polynomial list.
      pvars - names for main variables of partial Groebner base computation.
      Returns:
      a container for a partial Groebner base of F wrt pvars.
    • partialGB

      public OptimizedPolynomialList<C> partialGB(List<GenPolynomial<C>> F, String[] pvars)
      Partial Groebner base for specific variables. Computes Groebner base in K[vars \ pvars][pvars] with coefficients from K[vars \ pvars] but returns polynomials in K[vars \ pvars, pvars].
      Parameters:
      F - polynomial list.
      pvars - names for main variables of partial Groebner base computation.
      Returns:
      a container for a partial Groebner base of F wrt pvars.
    • elimPartialGB

      public OptimizedPolynomialList<C> elimPartialGB(List<GenPolynomial<C>> F, String[] evars, String[] pvars)
      Partial Groebner base for specific variables. Computes Groebner base with coefficients from K[pvars] but returns polynomials in K[pvars, evars].
      Parameters:
      F - polynomial list.
      evars - names for upper main variables of partial Groebner base computation.
      pvars - names for lower main variables of partial Groebner base computation.
      Returns:
      a container for a partial Groebner base of F wrt (pvars,evars).