001/* 002 * $Id$ 003 */ 004 005package edu.jas.ufd; 006 007 008import java.io.Serializable; 009import java.util.List; 010 011import edu.jas.kern.Scripting; 012import edu.jas.poly.GenPolynomial; 013import edu.jas.structure.RingElem; 014 015 016/** 017 * Container for the evaluation points of a polynomial. 018 * @author Heinz Kredel 019 * @param <C> coefficient type 020 */ 021 022public class EvalPoints<C extends RingElem<C>> implements Serializable { 023 024 025 /** 026 * Original multivariate polynomial to be evaluated. 027 */ 028 public final GenPolynomial<C> poly; 029 030 031 /** 032 * Evaluated univariate polynomial as evaluated. 033 */ 034 public final GenPolynomial<C> upoly; 035 036 037 /** 038 * Evaluation points. 039 */ 040 public final List<C> evalPoints; 041 042 043 /** 044 * Constructor. 045 * @param p given GenPolynomial in r variables, x_{r+1}, x_{r}, ..., x_{1}. 046 * @param u evaluated GenPolynomial = p(x_{r+1}, lr, ..., l1). 047 * @param ep list of evaluation points, (l1, ..., lr). 048 */ 049 public EvalPoints(GenPolynomial<C> p, GenPolynomial<C> u, List<C> ep) { 050 poly = p; 051 upoly = u; 052 evalPoints = ep; 053 } 054 055 056 /** 057 * Get the String representation. 058 * @see java.lang.Object#toString() 059 */ 060 @Override 061 public String toString() { 062 StringBuffer sb = new StringBuffer("EvalPoints("); 063 sb.append(poly.toString()); 064 sb.append(", "); 065 sb.append(upoly.toString()); 066 sb.append(", "); 067 sb.append(evalPoints.toString()); 068 sb.append(")"); 069 return sb.toString(); 070 } 071 072 073 /** 074 * Get a scripting compatible string representation. 075 * @return script compatible representation for this container. 076 * @see edu.jas.structure.ElemFactory#toScript() 077 */ 078 public String toScript() { 079 StringBuffer sb = new StringBuffer(); 080 switch (Scripting.getLang()) { 081 case Python: 082 sb.append("EvalPoints("); 083 break; 084 case Ruby: 085 sb.append("EvalPoints.new("); 086 default: 087 } 088 sb.append(poly.toScript()); 089 sb.append(", "); 090 sb.append(upoly.toScript()); 091 sb.append(", "); 092 sb.append(evalPoints.toString()); 093 sb.append(")"); 094 return sb.toString(); 095 } 096 097}