001 /* 002 * $Id: IdealWithRealRoots.java 3111 2010-05-05 21:05:56Z kredel $ 003 */ 004 005 package edu.jas.application; 006 007 008 import java.io.Serializable; 009 import java.util.List; 010 011 import edu.jas.arith.BigDecimal; 012 import edu.jas.poly.GenPolynomial; 013 import edu.jas.structure.GcdRingElem; 014 015 016 /** 017 * Container for Ideals together with univariate polynomials and real roots. 018 * @author Heinz Kredel 019 */ 020 public class IdealWithRealRoots<C extends GcdRingElem<C>> extends IdealWithUniv<C> implements Serializable { 021 022 023 /** 024 * The list of real roots. 025 */ 026 public final List<List<BigDecimal>> rroots; 027 028 029 /** 030 * Constructor not for use. 031 */ 032 protected IdealWithRealRoots() { 033 throw new IllegalArgumentException("do not use this constructor"); 034 } 035 036 037 /** 038 * Constructor. 039 * @param id the ideal 040 * @param up the list of univaraite polynomials 041 * @param rr the list of real roots 042 */ 043 public IdealWithRealRoots(Ideal<C> id, List<GenPolynomial<C>> up, List<List<BigDecimal>> rr) { 044 super(id, up); 045 rroots = rr; 046 } 047 048 049 /** 050 * Constructor. 051 * @param iu the ideal with univariate polynomials 052 * @param rr the list of real roots 053 */ 054 public IdealWithRealRoots(IdealWithUniv<C> iu, List<List<BigDecimal>> rr) { 055 super(iu.ideal, iu.upolys); 056 rroots = rr; 057 } 058 059 060 /** 061 * String representation of the ideal. 062 * @see java.lang.Object#toString() 063 */ 064 @Override 065 public String toString() { 066 return super.toString() + "\nreal roots: " + rroots.toString(); 067 } 068 069 070 /** 071 * Get a scripting compatible string representation. 072 * @return script compatible representation for this Element. 073 * @see edu.jas.structure.Element#toScript() 074 */ 075 @Override 076 public String toScript() { 077 // Python case 078 return super.toScript() + ", " + rroots.toString(); 079 } 080 081 }