Пример #1
0
 /**
  * ComplexAlgebraicNumber signum.
  *
  * @see edu.jas.structure.RingElem#signum()
  * @return signum(this).
  */
 public int signum() {
   try {
     Rectangle<C> v = ring.engine.invariantRectangle(ring.root, ring.algebraic.modul, number.val);
     ring.setRoot(v);
     Complex<C> c = v.getCenter();
     return c.signum();
   } catch (InvalidBoundaryException e) { // should not happen
     e.printStackTrace();
     throw new RuntimeException(e);
   }
 }
Пример #2
0
 /**
  * ComplexAlgebraicNumber magnitude.
  *
  * @return |this| as complex rational number.
  */
 public Complex<BigRational> magnitude() {
   try {
     Rectangle<C> v =
         ring.engine.invariantMagnitudeRectangle(
             ring.root, ring.algebraic.modul, number.val, ring.getEps());
     ring.setRoot(v);
     // System.out.println("new v = " + v);
     Complex<C> ev =
         ring.engine.complexRectangleMagnitude(
             v, ring.algebraic.modul, number.val); // , ring.eps);
     // C re = ev.getRe();
     // if ( (Object) re instanceof Rational) { // true by type parameter
     BigRational er = ev.getRe().getRational();
     BigRational ei = ev.getIm().getRational();
     ComplexRing<BigRational> cr = new ComplexRing<BigRational>(er.factory());
     return new Complex<BigRational>(cr, er, ei);
     // } else {
     //    throw new RuntimeException("Rational expected, but was " + ev.getClass());
     // }
   } catch (InvalidBoundaryException e) { // should not happen
     e.printStackTrace();
     throw new RuntimeException(e);
   }
 }
Пример #3
0
 /**
  * Comparison with any other object.
  *
  * @see java.lang.Object#equals(java.lang.Object)
  */
 @Override
 @SuppressWarnings("unchecked")
 public boolean equals(Object b) {
   if (!(b instanceof ComplexAlgebraicNumber)) {
     return false;
   }
   ComplexAlgebraicNumber<C> a = null;
   try {
     a = (ComplexAlgebraicNumber<C>) b;
   } catch (ClassCastException e) {
   }
   if (a == null) {
     return false;
   }
   if (!ring.equals(a.ring)) {
     return false;
   }
   return number.equals(a.number);
 }
Пример #4
0
 /**
  * Hash code for this ComplexAlgebraicNumber.
  *
  * @see java.lang.Object#hashCode()
  */
 @Override
 public int hashCode() {
   return 37 * number.val.hashCode() + ring.hashCode();
 }