Class RationalConverter
java.lang.Object
org.episteme.core.measure.converters.RationalConverter
- All Implemented Interfaces:
UnitConverter
This class represents a converter multiplying numeric values by an
exact scaling factor (represented as the quotient of two
long numbers).
Instances of this class are immutable.
- Since:
- 1.0
- Author:
- Silvere Martin-Michiellot
-
Constructor Summary
ConstructorsConstructorDescriptionRationalConverter(long dividend, long divisor) Creates a rational converter with the specified dividend and divisor. -
Method Summary
Modifier and TypeMethodDescriptionconcatenate(UnitConverter converter) Returns a converter that first applies this converter, then the other.Converts a value from the source unit to the target unit.derivative(Real value) Returns the derivative of the conversion function at the given value.longReturns the dividend for this rational converter.longReturns the positive divisor for this rational converter.inverse()Returns the inverse of this converter.booleanChecks if this converter is an identity converter (no conversion).booleanisLinear()Checks if this converter is linear (scale only, no offset).Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface UnitConverter
convert
-
Constructor Details
-
RationalConverter
public RationalConverter(long dividend, long divisor) Creates a rational converter with the specified dividend and divisor.- Parameters:
dividend- the dividend.divisor- the positive divisor.- Throws:
IllegalArgumentException- ifdivisor < 0IllegalArgumentException- ifdividend == divisor
-
-
Method Details
-
getDividend
public long getDividend()Returns the dividend for this rational converter.- Returns:
- this converter dividend.
-
getDivisor
public long getDivisor()Returns the positive divisor for this rational converter.- Returns:
- this converter divisor.
-
inverse
Description copied from interface:UnitConverterReturns the inverse of this converter.The inverse converter performs the reverse transformation.
- Specified by:
inversein interfaceUnitConverter- Returns:
- the inverse converter
-
convert
Description copied from interface:UnitConverterConverts a value from the source unit to the target unit.- Specified by:
convertin interfaceUnitConverter- Parameters:
value- the value to convert- Returns:
- the converted value
-
isLinear
public boolean isLinear()Description copied from interface:UnitConverterChecks if this converter is linear (scale only, no offset).Linear converters satisfy: f(x + y) = f(x) + f(y) and f(ax) = aâ‹…f(x).
- Specified by:
isLinearin interfaceUnitConverter- Returns:
- true if this converter is linear
-
isIdentity
public boolean isIdentity()Description copied from interface:UnitConverterChecks if this converter is an identity converter (no conversion).- Specified by:
isIdentityin interfaceUnitConverter- Returns:
- true if this is the identity converter
-
derivative
Description copied from interface:UnitConverterReturns the derivative of the conversion function at the given value.For linear converters, this is constant. For affine converters (like temperature), this is also constant.
- Specified by:
derivativein interfaceUnitConverter- Parameters:
value- the value at which to evaluate the derivative- Returns:
- the derivative (conversion rate)
-
concatenate
Description copied from interface:UnitConverterReturns a converter that first applies this converter, then the other.For example, if this converts meters to feet and
otherconverts feet to miles, the result converts meters to miles.- Specified by:
concatenatein interfaceUnitConverter- Parameters:
converter- the converter to apply after this one- Returns:
- the concatenated converter
-