private static RealNum simplest_rational2(RealNum x, RealNum y) { RealNum fx = x.toInt(FLOOR); RealNum fy = y.toInt(FLOOR); if (!x.grt(fx)) { return(fx); } else if (fx.Equals(fy)) { RealNum n = (RealNum)IntNum.one().div(y.sub(fy)); RealNum d = (RealNum)IntNum.one().div(x.sub(fx)); return((RealNum)fx.add(IntNum.one().div(simplest_rational2(n, d)), 1)); } else { return((RealNum)fx.add(IntNum.one(), 1)); } }
/** Return the multiplicative identity. */ public virtual Numeric mul_ident() { return(IntNum.one()); }
/** Return the multiplicative inverse. */ public virtual Numeric div_inv() { return(IntNum.one().div(this)); }