001
002/*
003 * $Id: Monomial.java 2209 2008-11-15 20:08:23Z kredel $
004 */
005
006package edu.jas.poly;
007
008import java.util.Map;
009import java.util.SortedMap;
010import java.util.Iterator;
011
012import edu.jas.structure.RingElem;
013
014import edu.jas.poly.ExpVector;
015
016
017/**
018 * Monomial class. 
019 * Represents pairs of exponent vectors and coefficients.
020 * Adaptor for Map.Entry.
021 * @author Heinz Kredel
022 */
023
024public final class Monomial<C extends RingElem<C> > {
025
026    /** 
027     * Exponent of monomial.
028     */
029    public final ExpVector e;
030
031
032    /** 
033     * Coefficient of monomial.
034     */
035    public final C c;
036
037
038    /** 
039     * Constructor of monomial.
040     * @param me a MapEntry.
041     */
042    public Monomial(Map.Entry<ExpVector,C> me){
043        this( me.getKey(), me.getValue() );
044    }
045
046
047    /** 
048     * Constructor of monomial.
049     * @param e exponent.
050     * @param c coefficient.
051     */
052    public Monomial(ExpVector e, C c) {
053        this.e = e;
054        this.c = c;
055    }
056
057
058    /** 
059     * Getter for exponent.
060     * @return exponent.
061     */
062    public ExpVector exponent() {
063        return e;
064    }
065
066
067    /** 
068     * Getter for coefficient.
069     * @return coefficient.
070     */
071    public C coefficient() {
072        return c;
073    }
074
075    /**
076     * String representation of Monomial.
077     * @see java.lang.Object#toString()
078     */
079    @Override
080    public String toString() {
081        return c.toString() + " " + e.toString();
082    }
083
084}