Example usage for org.apache.commons.math3.fraction Fraction getDenominator

List of usage examples for org.apache.commons.math3.fraction Fraction getDenominator

Introduction

In this page you can find the example usage for org.apache.commons.math3.fraction Fraction getDenominator.

Prototype

public int getDenominator() 

Source Link

Document

Access the denominator.

Usage

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();
}