Class RationalBigInt
- java.lang.Object
-
- org.networkcalculus.num.implementations.RationalBigInt
-
- All Implemented Interfaces:
Num
public class RationalBigInt extends java.lang.Object implements Num
Wrapper class around org.apache.commons.math3.BigFraction.BigFraction introducing special values like positive / negative infinity and NaN as well as operators like min, max, ==, >, >=, <, and <= that are not part of BigFraction but needed by the network calculator.For the ease of converting from the primitive data type double to BigFraction objects, copy by value semantic are is applied.
-
-
Field Summary
Fields Modifier and Type Field Description private static RationalBigIntinstanceprivate NumNaNprivate NumNEGATIVE_INFINITYprivate NumPOSITIVE_INFINITYprivate org.apache.commons.math3.fraction.BigFractionvalueprivate NumZERO
-
Constructor Summary
Constructors Modifier Constructor Description privateRationalBigInt()RationalBigInt(double value)RationalBigInt(int num)RationalBigInt(int num, int den)privateRationalBigInt(java.math.BigInteger num, java.math.BigInteger den)privateRationalBigInt(org.apache.commons.math3.fraction.BigFraction frac)RationalBigInt(RationalBigInt num)
-
Method Summary
Modifier and Type Method Description Numabs(Num num)Numadd(Num num1, Num num2)Numcopy()Numcreate(double value)Numcreate(int num)Numcreate(int num, int den)Numcreate(java.lang.String num_str)NumcreateNaN()NumcreateNegativeInfinity()NumcreatePositiveInfinity()NumcreateZero()Numdiff(Num num1, Num num2)Numdiv(Num num1, Num num2)doubledoubleValue()booleaneq(double num)booleaneq(Num num)booleanequals(java.lang.Object obj)booleaneqZero()booleangeq(Num num)booleangeqZero()static RationalBigIntgetInstance()NumgetNaN()NumgetNegativeInfinity()NumgetPositiveInfinity()org.apache.commons.math3.fraction.BigFractiongetValue()NumgetZero()booleangt(Num num)booleangtZero()inthashCode()booleanisFinite()booleanisInfinite()booleanisNaN()booleanleq(Num num)booleanleqZero()booleanlt(Num num)booleanltZero()Nummax(Num num1, Num num2)Nummin(Num num1, Num num2)Nummult(Num num1, Num num2)Numnegate(Num num)Numsub(Num num1, Num num2)java.lang.StringtoString()
-
-
-
Field Detail
-
instance
private static RationalBigInt instance
-
value
private org.apache.commons.math3.fraction.BigFraction value
-
POSITIVE_INFINITY
private Num POSITIVE_INFINITY
-
NEGATIVE_INFINITY
private Num NEGATIVE_INFINITY
-
NaN
private Num NaN
-
ZERO
private Num ZERO
-
-
Constructor Detail
-
RationalBigInt
private RationalBigInt()
-
RationalBigInt
public RationalBigInt(int num)
-
RationalBigInt
public RationalBigInt(double value)
-
RationalBigInt
public RationalBigInt(int num, int den)
-
RationalBigInt
public RationalBigInt(RationalBigInt num)
-
RationalBigInt
private RationalBigInt(java.math.BigInteger num, java.math.BigInteger den)
-
RationalBigInt
private RationalBigInt(org.apache.commons.math3.fraction.BigFraction frac)
-
-
Method Detail
-
getInstance
public static RationalBigInt getInstance()
-
doubleValue
public double doubleValue()
- Specified by:
doubleValuein interfaceNum
-
getValue
public org.apache.commons.math3.fraction.BigFraction getValue()
-
hashCode
public int hashCode()
-
toString
public java.lang.String toString()
-
getPositiveInfinity
public Num getPositiveInfinity()
- Specified by:
getPositiveInfinityin interfaceNum
-
createPositiveInfinity
public Num createPositiveInfinity()
- Specified by:
createPositiveInfinityin interfaceNum
-
getNegativeInfinity
public Num getNegativeInfinity()
- Specified by:
getNegativeInfinityin interfaceNum
-
createNegativeInfinity
public Num createNegativeInfinity()
- Specified by:
createNegativeInfinityin interfaceNum
-
createZero
public Num createZero()
- Specified by:
createZeroin interfaceNum
-
create
public Num create(java.lang.String num_str) throws java.lang.Exception
-
equals
public boolean equals(java.lang.Object obj)
-
isInfinite
public boolean isInfinite()
- Specified by:
isInfinitein interfaceNum
-
-