List of usage examples for org.apache.commons.math3.fraction Fraction getDenominator
public int getDenominator()
From source file:unikl.disco.misc.NumberObj.java
public static NumberObj max(NumberObj num1, NumberObj num2) { if (performTypeChecks) { TypeCheck(num1, num2);//from ww w. j ava 2 s. com } switch (num1.getType()) { case DOUBLE: Double double1 = (Double) num1.getValue(); Double double2 = (Double) num2.getValue(); return new NumberObj(Math.max(double1.doubleValue(), double2.doubleValue())); case RATIONAL: Fraction frac1 = (Fraction) num1.getValue(); Fraction frac2 = (Fraction) num2.getValue(); // operate on Doubles to prevent getting out of Integer's range double frac1_numerator = new Double(frac1.getNumerator()) * new Double(frac2.getDenominator()); double frac2_numerator = new Double(frac2.getNumerator()) * new Double(frac1.getDenominator()); if (frac1_numerator >= frac2_numerator) { return new NumberObj(frac1); } else { return new NumberObj(frac2); } default: return null; } }
From source file:unikl.disco.misc.NumberObj.java
public static NumberObj min(NumberObj num1, NumberObj num2) { if (performTypeChecks) { TypeCheck(num1, num2);//from w ww. j a v a 2s. co m } switch (num1.getType()) { case DOUBLE: Double double1 = (Double) num1.getValue(); Double double2 = (Double) num2.getValue(); return new NumberObj(Math.min(double1.doubleValue(), double2.doubleValue())); case RATIONAL: Fraction frac1 = (Fraction) num1.getValue(); Fraction frac2 = (Fraction) num2.getValue(); // operate on Doubles to prevent getting out of Integer's range double frac1_numerator = new Double(frac1.getNumerator()) * new Double(frac2.getDenominator()); double frac2_numerator = new Double(frac2.getNumerator()) * new Double(frac1.getDenominator()); if (frac1_numerator < frac2_numerator) { return new NumberObj(frac1); } else { return new NumberObj(frac2); } default: return null; } }
From source file:unikl.disco.misc.NumberObj.java
public boolean equals(NumberObj num2) { if (performTypeChecks) { TypeCheck(this, num2); }/* ww w . j ava 2 s .c o m*/ if (this == NaN & num2 == NaN) { return true; } if (this == POSITIVE_INFINITY & num2 == POSITIVE_INFINITY) { return true; } if (this == NEGATIVE_INFINITY & num2 == NEGATIVE_INFINITY) { return true; } switch (type) { case DOUBLE: Double double2 = (Double) num2.getValue(); return value.doubleValue() == double2.doubleValue(); case RATIONAL: //Fractions's equals() method is inherited from java.lang.Object Fraction frac1 = (Fraction) value; Fraction frac2 = (Fraction) num2.getValue(); // operate on Doubles to prevent getting out of Integer's range double frac1_num = new Double(frac1.getNumerator()) * new Double(frac2.getDenominator()); double frac2_num = new Double(frac2.getNumerator()) * new Double(frac1.getDenominator()); if (frac1_num == frac2_num) { return true; } else { return false; } default: return false; } }
From source file:unikl.disco.misc.NumberObj.java
public boolean greater(NumberObj num2) { if (performTypeChecks) { TypeCheck(this, num2); }//from w ww .j a v a 2 s. co m if (this == NaN || num2 == NaN) { return false; } if (this == POSITIVE_INFINITY & num2 == POSITIVE_INFINITY) { return false; } if (this == NEGATIVE_INFINITY & num2 == NEGATIVE_INFINITY) { return false; } switch (type) { case DOUBLE: Double double2 = (Double) num2.getValue(); return value.doubleValue() > double2.doubleValue(); case RATIONAL: Fraction frac1 = (Fraction) value; Fraction frac2 = (Fraction) num2.getValue(); // operate on Doubles to prevent getting out of Integer's range double frac1_num = new Double(frac1.getNumerator()) * new Double(frac2.getDenominator()); double frac2_num = new Double(frac2.getNumerator()) * new Double(frac1.getDenominator()); if (frac1_num > frac2_num) { return true; } else { return false; } default: return false; } }
From source file:unikl.disco.misc.NumberObj.java
public boolean ge(NumberObj num2) { if (performTypeChecks) { TypeCheck(this, num2); }/*from w w w . jav a 2 s. c o m*/ if (this == NaN || num2 == NaN) { return false; } if (this == POSITIVE_INFINITY & num2 == POSITIVE_INFINITY) { return true; } if (this == NEGATIVE_INFINITY & num2 == NEGATIVE_INFINITY) { return true; } switch (type) { case DOUBLE: Double double2 = (Double) num2.getValue(); return value.doubleValue() >= double2.doubleValue(); case RATIONAL: Fraction frac1 = (Fraction) value; Fraction frac2 = (Fraction) num2.getValue(); // operate on Doubles to prevent getting out of Integer's range double frac1_num = new Double(frac1.getNumerator()) * new Double(frac2.getDenominator()); double frac2_num = new Double(frac2.getNumerator()) * new Double(frac1.getDenominator()); if (frac1_num >= frac2_num) { return true; } else { return false; } default: return false; } }
From source file:unikl.disco.misc.NumberObj.java
public boolean less(NumberObj num2) { if (performTypeChecks) { TypeCheck(this, num2); }/*from ww w .jav a 2 s . c o m*/ if (this == NaN || num2 == NaN) { return false; } if (this == POSITIVE_INFINITY & num2 == POSITIVE_INFINITY) { return false; } if (this == NEGATIVE_INFINITY & num2 == NEGATIVE_INFINITY) { return false; } switch (type) { case DOUBLE: Double double2 = (Double) num2.getValue(); return value.doubleValue() < double2.doubleValue(); case RATIONAL: Fraction frac1 = (Fraction) value; Fraction frac2 = (Fraction) num2.getValue(); // operate on Doubles to prevent getting out of Integer's range double frac1_num = new Double(frac1.getNumerator()) * new Double(frac2.getDenominator()); double frac2_num = new Double(frac2.getNumerator()) * new Double(frac1.getDenominator()); if (frac1_num < frac2_num) { return true; } else { return false; } default: return false; } }
From source file:unikl.disco.misc.NumberObj.java
public boolean le(NumberObj num2) { if (performTypeChecks) { TypeCheck(this, num2); }//from ww w.j av a 2 s.com if (this == NaN || num2 == NaN) { return false; } if (this == POSITIVE_INFINITY & num2 == POSITIVE_INFINITY) { return true; } if (this == NEGATIVE_INFINITY & num2 == NEGATIVE_INFINITY) { return true; } switch (type) { case DOUBLE: Double double2 = (Double) num2.getValue(); return value.doubleValue() <= double2.doubleValue(); case RATIONAL: Fraction frac1 = (Fraction) value; Fraction frac2 = (Fraction) num2.getValue(); // operate on Doubles to prevent getting out of Integer's range double frac1_num = new Double(frac1.getNumerator()) * new Double(frac2.getDenominator()); double frac2_num = new Double(frac2.getNumerator()) * new Double(frac1.getDenominator()); if (frac1_num <= frac2_num) { return true; } else { return false; } default: return false; } }
From source file:unikl.disco.numbers.NumFraction.java
private NumFraction(Fraction frac) { value = new Fraction(frac.getNumerator(), frac.getDenominator()); checkInftyNaN(); }