001
002 /*
003 * $Id: Monomial.java 2209 2008-11-15 20:08:23Z kredel $
004 */
005
006 package edu.jas.poly;
007
008 import java.util.Map;
009 import java.util.SortedMap;
010 import java.util.Iterator;
011
012 import edu.jas.structure.RingElem;
013
014 import 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
024 public 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 }