001/*
002 * $Id$
003 */
004
005package edu.jas.poly;
006
007
008import java.util.List;
009
010import edu.jas.structure.RingElem;
011
012
013/**
014 * Container for optimization results.
015 * @author Heinz Kredel
016 */
017
018public class OptimizedPolynomialList<C extends RingElem<C>> extends PolynomialList<C> {
019
020
021    /**
022     * Permutation vector used to optimize term order.
023     */
024    public final List<Integer> perm;
025
026
027    /**
028     * Constructor.
029     */
030    public OptimizedPolynomialList(List<Integer> P, GenPolynomialRing<C> R, List<GenPolynomial<C>> L) {
031        super(R, L);
032        perm = P;
033    }
034
035
036    /**
037     * String representation.
038     */
039    @Override
040    public String toString() {
041        return "permutation = " + perm + "\n" + super.toString();
042    }
043
044
045    /**
046     * Comparison with any other object.
047     * @see java.lang.Object#equals(java.lang.Object)
048     */
049    @Override
050    public boolean equals(Object B) {
051        if (!(B instanceof OptimizedPolynomialList)) {
052            return false;
053        }
054        return super.equals(B);
055    }
056
057
058    /**
059     * Hash code for this polynomial list.
060     * @see java.lang.Object#hashCode()
061     */
062    @Override
063    public int hashCode() {
064        return super.hashCode();
065    }
066
067}