Package edu.jas.poly

Class ExpVectorLong

java.lang.Object
edu.jas.poly.ExpVector
edu.jas.poly.ExpVectorLong
All Implemented Interfaces:
AbelianGroupElem<ExpVector>, Element<ExpVector>, Serializable, Comparable<ExpVector>

public final class ExpVectorLong extends ExpVector
ExpVectorLong implements exponent vectors for polynomials using arrays of long as storage unit. This class is used by ExpVector internally, there is no need to use this class directly.
See Also:
  • Field Details

    • val

      final long[] val
      The data structure is an array of longs.
  • Constructor Details

    • ExpVectorLong

      public ExpVectorLong(int n)
      Constructor for ExpVector.
      Parameters:
      n - length of exponent vector.
    • ExpVectorLong

      public ExpVectorLong(int n, int i, long e)
      Constructor for ExpVector. Sets exponent i to e.
      Parameters:
      n - length of exponent vector.
      i - index of exponent to be set.
      e - exponent to be set.
    • ExpVectorLong

      public ExpVectorLong(long[] v)
      Constructor for ExpVector. Sets val.
      Parameters:
      v - representation array.
    • ExpVectorLong

      protected ExpVectorLong(long[] v, boolean alloc)
      Internal constructor for ExpVector. Sets val.
      Parameters:
      v - internal representation array.
      alloc - true if internal representation array is newly allocated, else false.
    • ExpVectorLong

      public ExpVectorLong(String s) throws NumberFormatException
      Constructor for ExpVector. Converts a String representation to an ExpVector. Accepted format = (1,2,3,4,5,6,7).
      Parameters:
      s - String representation.
      Throws:
      NumberFormatException
  • Method Details

    • parse

      public static ExpVectorLong parse(String s) throws NumberFormatException
      parser for ExpVector. Converts a String representation to an ExpVector. Accepted format = (1,2,3,4,5,6,7).
      Parameters:
      s - String representation.
      Returns:
      paresed ExpVector
      Throws:
      NumberFormatException
    • valueOf

      public static ExpVector valueOf(ExpVector e)
      Value of other.
      Parameters:
      e - other ExpVector.
      Returns:
      value in sub class of ExpVector.
    • copy

      public ExpVectorLong copy()
      Clone this.
      Specified by:
      copy in interface Element<ExpVector>
      Specified by:
      copy in class ExpVector
      Returns:
      Creates and returns a copy of this Element.
      See Also:
    • getVal

      public long[] getVal()
      Get the exponent vector.
      Specified by:
      getVal in class ExpVector
      Returns:
      val.
    • getVal

      public long getVal(int i)
      Get the exponent at position i.
      Specified by:
      getVal in class ExpVector
      Parameters:
      i - position.
      Returns:
      val[i].
    • setVal

      protected long setVal(int i, long e)
      Set the exponent at position i to e.
      Specified by:
      setVal in class ExpVector
      Parameters:
      i -
      e -
      Returns:
      old val[i].
    • length

      public int length()
      Get the length of this exponent vector.
      Specified by:
      length in class ExpVector
      Returns:
      val.length.
    • extend

      public ExpVectorLong extend(int i, int j, long e)
      Extend variables. Used e.g. in module embedding. Extend this by i elements and set val[j] to e.
      Specified by:
      extend in class ExpVector
      Parameters:
      i - number of elements to extend.
      j - index of element to be set.
      e - new exponent for val[j].
      Returns:
      extended exponent vector.
    • extendLower

      public ExpVectorLong extendLower(int i, int j, long e)
      Extend lower variables. Extend this by i lower elements and set val[j] to e.
      Specified by:
      extendLower in class ExpVector
      Parameters:
      i - number of elements to extend.
      j - index of element to be set.
      e - new exponent for val[j].
      Returns:
      extended exponent vector.
    • contract

      public ExpVectorLong contract(int i, int len)
      Contract variables. Used e.g. in module embedding. Contract this to len elements.
      Specified by:
      contract in class ExpVector
      Parameters:
      i - position of first element to be copied.
      len - new length.
      Returns:
      contracted exponent vector.
    • reverse

      public ExpVectorLong reverse()
      Reverse variables. Used e.g. in opposite rings.
      Specified by:
      reverse in class ExpVector
      Returns:
      reversed exponent vector.
    • reverse

      public ExpVectorLong reverse(int j)
      Reverse lower j variables. Used e.g. in opposite rings. Reverses the first j-1 variables, the rest is unchanged.
      Specified by:
      reverse in class ExpVector
      Parameters:
      j - index of first variable reversed.
      Returns:
      reversed exponent vector.
    • reverseUpper

      public ExpVectorLong reverseUpper(int j)
      Reverse upper j variables. Reverses the last j-1 variables, the rest is unchanged.
      Parameters:
      j - index of first variable not reversed.
      Returns:
      reversed exponent vector.
    • combine

      public ExpVectorLong combine(ExpVector V)
      Combine with ExpVector. Combine this with the other ExpVector V.
      Specified by:
      combine in class ExpVector
      Parameters:
      V - the other exponent vector.
      Returns:
      combined exponent vector.
    • permutation

      public ExpVectorLong permutation(List<Integer> P)
      Permutation of exponent vector.
      Specified by:
      permutation in class ExpVector
      Parameters:
      P - permutation.
      Returns:
      P(e).
    • toString

      public String toString()
      Get the string representation.
      Overrides:
      toString in class ExpVector
      See Also:
    • equals

      public boolean equals(Object B)
      Comparison with any other object.
      Specified by:
      equals in interface Element<ExpVector>
      Overrides:
      equals in class ExpVector
      Parameters:
      B -
      Returns:
      true if this is equal to b, else false.
      See Also:
    • hashCode

      public int hashCode()
      hashCode for this exponent vector.
      Specified by:
      hashCode in interface Element<ExpVector>
      Overrides:
      hashCode in class ExpVector
      Returns:
      the hashCode.
      See Also:
    • abs

      public ExpVectorLong abs()
      ExpVector absolute value.
      Specified by:
      abs in interface AbelianGroupElem<ExpVector>
      Specified by:
      abs in class ExpVector
      Returns:
      abs(this).
    • negate

      public ExpVectorLong negate()
      ExpVector negate.
      Specified by:
      negate in interface AbelianGroupElem<ExpVector>
      Specified by:
      negate in class ExpVector
      Returns:
      -this.
    • sum

      public ExpVectorLong sum(ExpVector V)
      ExpVector summation.
      Specified by:
      sum in interface AbelianGroupElem<ExpVector>
      Specified by:
      sum in class ExpVector
      Parameters:
      V -
      Returns:
      this+V.
    • subtract

      public ExpVectorLong subtract(ExpVector V)
      ExpVector subtract. Result may have negative entries.
      Specified by:
      subtract in interface AbelianGroupElem<ExpVector>
      Specified by:
      subtract in class ExpVector
      Parameters:
      V -
      Returns:
      this-V.
    • scalarMultiply

      public ExpVectorLong scalarMultiply(long s)
      ExpVector multiply by scalar.
      Specified by:
      scalarMultiply in class ExpVector
      Parameters:
      s - scalar
      Returns:
      s*this.
    • subst

      public ExpVectorLong subst(int i, long d)
      ExpVector substitution. Clone and set exponent to d at position i.
      Overrides:
      subst in class ExpVector
      Parameters:
      i - position.
      d - new exponent.
      Returns:
      substituted ExpVector.
    • signum

      public int signum()
      ExpVector signum.
      Specified by:
      signum in interface AbelianGroupElem<ExpVector>
      Specified by:
      signum in class ExpVector
      Returns:
      0 if this is zero, -1 if some entry is negative, 1 if no entry is negative and at least one entry is positive.
    • totalDeg

      public long totalDeg()
      ExpVector total degree.
      Specified by:
      totalDeg in class ExpVector
      Returns:
      sum of all exponents.
    • maxDeg

      public long maxDeg()
      ExpVector maximal degree.
      Specified by:
      maxDeg in class ExpVector
      Returns:
      maximal exponent.
    • minDeg

      public long minDeg()
      ExpVector minimal degree.
      Specified by:
      minDeg in class ExpVector
      Returns:
      minimal exponent.
    • weightDeg

      public long weightDeg(long[][] w)
      ExpVector weighted degree.
      Specified by:
      weightDeg in class ExpVector
      Parameters:
      w - weights.
      Returns:
      weighted sum of all exponents.
    • weightDeg

      public long weightDeg(long[] w)
      ExpVector weighted degree.
      Specified by:
      weightDeg in class ExpVector
      Parameters:
      w - weights.
      Returns:
      weighted sum of all exponents.
    • lcm

      public ExpVectorLong lcm(ExpVector V)
      ExpVector least common multiple.
      Specified by:
      lcm in class ExpVector
      Parameters:
      V -
      Returns:
      component wise maximum of this and V.
    • gcd

      public ExpVectorLong gcd(ExpVector V)
      ExpVector greatest common divisor.
      Specified by:
      gcd in class ExpVector
      Parameters:
      V -
      Returns:
      component wise minimum of this and V.
    • dependentVariables

      public int dependentVariables()
      ExpVector dependent variables.
      Specified by:
      dependentVariables in class ExpVector
      Returns:
      number of indices where val has positive exponents.
    • dependencyOnVariables

      public int[] dependencyOnVariables()
      ExpVector dependency on variables.
      Specified by:
      dependencyOnVariables in class ExpVector
      Returns:
      array of indices where val has positive exponents.
    • multipleOf

      public boolean multipleOf(ExpVector V)
      ExpVector multiple test. Test if this is component wise greater or equal to V.
      Specified by:
      multipleOf in class ExpVector
      Parameters:
      V -
      Returns:
      true if this is a multiple of V, else false.
    • compareTo

      public int compareTo(ExpVector V)
      ExpVector compareTo.
      Specified by:
      compareTo in interface Comparable<ExpVector>
      Specified by:
      compareTo in interface Element<ExpVector>
      Overrides:
      compareTo in class ExpVector
      Parameters:
      V -
      Returns:
      0 if U == V, -1 if U < V, 1 if U > V.
    • invLexCompareTo

      public int invLexCompareTo(ExpVector V)
      ExpVector inverse lexicographical compareTo.
      Specified by:
      invLexCompareTo in class ExpVector
      Parameters:
      V -
      Returns:
      0 if U == V, -1 if U < V, 1 if U > V.
    • invLexCompareTo

      public int invLexCompareTo(ExpVector V, int begin, int end)
      ExpVector inverse lexicographical compareTo.
      Specified by:
      invLexCompareTo in class ExpVector
      Parameters:
      V -
      begin -
      end -
      Returns:
      0 if U == V, -1 if U < V, 1 if U > V.
    • invGradCompareTo

      public int invGradCompareTo(ExpVector V)
      ExpVector inverse graded lexicographical compareTo.
      Specified by:
      invGradCompareTo in class ExpVector
      Parameters:
      V -
      Returns:
      0 if U == V, -1 if U < V, 1 if U > V.
    • invGradCompareTo

      public int invGradCompareTo(ExpVector V, int begin, int end)
      ExpVector inverse graded lexicographical compareTo.
      Specified by:
      invGradCompareTo in class ExpVector
      Parameters:
      V -
      begin -
      end -
      Returns:
      0 if U == V, -1 if U < V, 1 if U > V.
    • revInvLexCompareTo

      public int revInvLexCompareTo(ExpVector V)
      ExpVector reverse inverse lexicographical compareTo.
      Specified by:
      revInvLexCompareTo in class ExpVector
      Parameters:
      V -
      Returns:
      0 if U == V, -1 if U < V, 1 if U > V.
    • revInvLexCompareTo

      public int revInvLexCompareTo(ExpVector V, int begin, int end)
      ExpVector reverse inverse lexicographical compareTo.
      Specified by:
      revInvLexCompareTo in class ExpVector
      Parameters:
      V -
      begin -
      end -
      Returns:
      0 if U == V, -1 if U < V, 1 if U > V.
    • revInvGradCompareTo

      public int revInvGradCompareTo(ExpVector V)
      ExpVector reverse inverse graded compareTo.
      Specified by:
      revInvGradCompareTo in class ExpVector
      Parameters:
      V -
      Returns:
      0 if U == V, -1 if U < V, 1 if U > V.
    • revInvGradCompareTo

      public int revInvGradCompareTo(ExpVector V, int begin, int end)
      ExpVector reverse inverse graded compareTo.
      Specified by:
      revInvGradCompareTo in class ExpVector
      Parameters:
      V -
      begin -
      end -
      Returns:
      0 if U == V, -1 if U < V, 1 if U > V.
    • invTdegCompareTo

      public int invTdegCompareTo(ExpVector V)
      ExpVector inverse total degree lexicographical compareTo.
      Specified by:
      invTdegCompareTo in class ExpVector
      Parameters:
      V -
      Returns:
      0 if U == V, -1 if U < V, 1 if U > V.
    • revLexInvTdegCompareTo

      public int revLexInvTdegCompareTo(ExpVector V)
      ExpVector reverse lexicographical inverse total degree compareTo.
      Specified by:
      revLexInvTdegCompareTo in class ExpVector
      Parameters:
      V -
      Returns:
      0 if U == V, -1 if U < V, 1 if U > V.
    • invWeightCompareTo

      public int invWeightCompareTo(long[][] w, ExpVector V)
      ExpVector inverse weighted lexicographical compareTo.
      Specified by:
      invWeightCompareTo in class ExpVector
      Parameters:
      w - weight array.
      V -
      Returns:
      0 if U == V, -1 if U < V, 1 if U > V.
    • invWeightCompareTo

      public int invWeightCompareTo(long[][] w, ExpVector V, int begin, int end)
      ExpVector inverse weighted lexicographical compareTo.
      Specified by:
      invWeightCompareTo in class ExpVector
      Parameters:
      w - weight array.
      V -
      begin -
      end -
      Returns:
      0 if U == V, -1 if U < V, 1 if U > V.