001 /*
002 * $Id: AlgebraicNotInvertibleException.java 3472 2011-01-07 17:19:22Z kredel $
003 */
004
005 package edu.jas.poly;
006
007
008 import edu.jas.structure.NotInvertibleException;
009
010
011 /**
012 * Algebraic number NotInvertibleException class.
013 * Runtime Exception to be thrown for not invertible algebraic numbers.
014 * Container for the non-trivial factors found by the inversion algorithm.
015 * <b>Note: </b> cannot be generic because of Throwable.
016 * @author Heinz Kredel
017 */
018 public class AlgebraicNotInvertibleException extends NotInvertibleException {
019
020
021 public final GenPolynomial f; // = f1 * f2
022
023 public final GenPolynomial f1;
024
025 public final GenPolynomial f2;
026
027
028 public AlgebraicNotInvertibleException() {
029 this(null,null,null);
030 }
031
032
033 public AlgebraicNotInvertibleException(String c) {
034 this(c,null,null,null);
035 }
036
037
038 public AlgebraicNotInvertibleException(String c, Throwable t) {
039 this(c,t,null,null,null);
040 }
041
042
043 public AlgebraicNotInvertibleException(Throwable t) {
044 this(t,null,null,null);
045 }
046
047
048 /**
049 * Constructor.
050 * @param f polynomial with f = f1 * f2.
051 * @param f1 polynomial.
052 * @param f2 polynomial.
053 */
054 public AlgebraicNotInvertibleException(GenPolynomial f, GenPolynomial f1, GenPolynomial f2) {
055 super("AlgebraicNotInvertibleException");
056 this.f = f;
057 this.f1 = f1;
058 this.f2 = f2;
059 }
060
061
062 /**
063 * Constructor.
064 * @param f polynomial with f = f1 * f2.
065 * @param f1 polynomial.
066 * @param f2 polynomial.
067 */
068 public AlgebraicNotInvertibleException(String c, GenPolynomial f, GenPolynomial f1, GenPolynomial f2) {
069 super(c);
070 this.f = f;
071 this.f1 = f1;
072 this.f2 = f2;
073 }
074
075
076 /**
077 * Constructor.
078 * @param f polynomial with f = f1 * f2.
079 * @param f1 polynomial.
080 * @param f2 polynomial.
081 */
082 public AlgebraicNotInvertibleException(String c, Throwable t, GenPolynomial f, GenPolynomial f1, GenPolynomial f2) {
083 super(c,t);
084 this.f = f;
085 this.f1 = f1;
086 this.f2 = f2;
087 }
088
089
090 /**
091 * Constructor.
092 * @param f polynomial with f = f1 * f2.
093 * @param f1 polynomial.
094 * @param f2 polynomial.
095 */
096 public AlgebraicNotInvertibleException(Throwable t, GenPolynomial f, GenPolynomial f1, GenPolynomial f2) {
097 super("AlgebraicNotInvertibleException",t);
098 this.f = f;
099 this.f1 = f1;
100 this.f2 = f2;
101 }
102
103
104 /**
105 * Get the String representation.
106 * @see java.lang.Object#toString()
107 */
108 @Override
109 public String toString() {
110 String s = super.toString();
111 if ( f != null || f1 != null || f2 != null) {
112 s += ", f = " + f + ", f1 = " + f1 + ", f2 = " + f2;
113 }
114 return s;
115 }
116
117 }