Package edu.jas.poly

Class Word

    • Field Detail

      • hash

        protected int hash
        Stored hash code.
    • Constructor Detail

      • Word

        public Word​(WordFactory m)
        Constructor for Word.
        Parameters:
        m - factory for words.
      • Word

        public Word​(WordFactory m,
                    java.lang.String s)
        Constructor for Word.
        Parameters:
        m - factory for words.
        s - String
      • Word

        public Word​(WordFactory m,
                    java.lang.String s,
                    boolean translate)
        Constructor for Word.
        Parameters:
        m - factory for words.
        s - String
        translate - indicator if s needs translation
    • Method Detail

      • getVal

        public char getVal​(int i)
        Get the letter at position i.
        Parameters:
        i - position.
        Returns:
        val[i].
      • length

        public int length()
        Get the length of this word.
        Returns:
        val.length.
      • toString

        public java.lang.String toString()
        Get the string representation.
        Overrides:
        toString in class java.lang.Object
        See Also:
        Object.toString()
      • toScript

        public java.lang.String toScript()
        Get a scripting compatible string representation.
        Specified by:
        toScript in interface Element<Word>
        Returns:
        script compatible representation for this Element.
        See Also:
        Element.toScript()
      • equals

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

        public int hashCode()
        hashCode.
        Specified by:
        hashCode in interface Element<Word>
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        the hashCode.
        See Also:
        Object.hashCode()
      • isONE

        public boolean isONE()
        Is Word one.
        Specified by:
        isONE in interface MonoidElem<Word>
        Returns:
        If this is the empty word then true is returned, else false.
      • isUnit

        public boolean isUnit()
        Is Word unit.
        Specified by:
        isUnit in interface MonoidElem<Word>
        Returns:
        If this is a unit then true is returned, else false.
      • divideLeft

        public Word divideLeft​(Word V)
        Word divide left.
        Parameters:
        V - other word.
        Returns:
        this / V = left, with left * V = this.
      • divideRight

        public Word divideRight​(Word V)
        Word divide right.
        Parameters:
        V - other word.
        Returns:
        this / V = right, with V * right = this.
      • divideWord

        public Word[] divideWord​(Word V)
        Word divide with prefix and suffix.
        Parameters:
        V - other word.
        Returns:
        [left,right] with left * V * right = this.
      • divideWord

        public Word[] divideWord​(Word V,
                                 boolean first)
        Word divide with prefix and suffix.
        Parameters:
        V - other word.
        first - is true for first index, false for last index.
        Returns:
        [left,right] with left * V * right = this.
      • signum

        public int signum()
        Word signum.
        Returns:
        0 if this is one, 1 if it is non empty.
      • degree

        public long degree()
        Word degree.
        Returns:
        total degree of all letters.
      • dependencyOnVariables

        public java.util.SortedMap<java.lang.String,​java.lang.Integer> dependencyOnVariables()
        Word dependency on letters.
        Returns:
        sorted map of letters and the number of its occurrences.
      • histogram

        public static java.util.SortedMap<java.lang.String,​java.lang.Integer> histogram​(java.lang.String v)
        String dependency on letters.
        Parameters:
        v - string.
        Returns:
        sorted map of letters and the number of its occurrences.
      • leadingExpVector

        public ExpVector leadingExpVector()
        Word leading exponent vector.
        Returns:
        an ExpVector for the first power of a letter.
      • reductum

        public Word reductum()
        Word without leading exponent vector.
        Returns:
        an Word without the first power of a letter.
      • multipleOf

        public boolean multipleOf​(Word V)
        Word multiple test.
        Parameters:
        V - other word.
        Returns:
        true if this is a multiple of V, else false.
      • divides

        public boolean divides​(Word V)
        Word divides test.
        Parameters:
        V - other word.
        Returns:
        true if this divides V, else false.
      • compareTo

        public int compareTo​(Word V)
        Word compareTo. Uses String.compareTo.
        Specified by:
        compareTo in interface java.lang.Comparable<Word>
        Specified by:
        compareTo in interface Element<Word>
        Parameters:
        V - other word.
        Returns:
        0 if U == V, -1 if U < V, 1 if U > V.
      • gradCompareTo

        public int gradCompareTo​(Word V)
        Word graded comparison. Compares first be degree, then lexicographical.
        Parameters:
        V - other word.
        Returns:
        0 if U == V, -1 if U < V, 1 if U > V.
      • gradInvlexCompareTo

        public int gradInvlexCompareTo​(Word V)
        Word graded comparison. Compares first be degree, then inverse lexicographical.
        Parameters:
        V - other word.
        Returns:
        0 if U == V, -1 if U < V, 1 if U > V.
      • isOverlap

        public boolean isOverlap​(Overlap ol,
                                 Word V)
        Is word overlap.
        Parameters:
        ol - = [l1,r1,l2,r2] an Overlap container of four words
        V - word
        Returns:
        true if l1 * this * r1 = l2 * V * r2, else false.
      • overlap

        public OverlapList overlap​(Word V)
        Word overlap list.
        Parameters:
        V - other word.
        Returns:
        list of overlaps [l1,r1,l2,r2] with l1 * this * r1 = l2 * V * r2. If no such overlaps exist the empty overlap list is returned.
      • lcm

        public Word lcm​(Word V)
        Word pseudo least common multiple.
        Parameters:
        V - other word.
        Returns:
        w = l1*this*r1, with l1*this*r1 == l2*V*r2, if l1, r1, l2, r2 exist, else null is returned.