visad
Class DerivedUnit
- java.lang.Object
-
- visad.Unit
-
- visad.DerivedUnit
-
- All Implemented Interfaces:
- java.io.Serializable
public final class DerivedUnit extends Unit implements java.io.Serializable
A class that represents a unit consisting of zero or more base units. Instances are immutable.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor and Description DerivedUnit()Construct a dimensionless derived unit.DerivedUnit(BaseUnit baseUnit)Construct a derived unit from a base unit.DerivedUnit(BaseUnit[] baseUnits, int[] powers)Construct a derived unit from an array base units and powers.DerivedUnit(BaseUnit[] baseUnits, int[] powers, java.lang.String identifier)Construct a derived unit from an array base units, powers, and an identifier.DerivedUnit(DerivedUnit that, java.lang.String identifier)Construct a derived unit from a derived unit and an identifier.DerivedUnit(java.lang.String identifier)Construct a dimensionless derived unit with an identifier.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and Description Unitdivide(Unit that)Divide a derived unit by another unit.booleanequals(Unit unit)Indicates if this instance equals a unit.java.lang.StringgetDefinition()Return the definition of this unit.DerivedUnitgetDerivedUnit()Returns the derived unit that underlies this unit.inthashCode()Returns the hash code of this instance.booleanisConvertible(Unit unit)Indicate whether this unit is convertible with another unit.booleanisDimensionless()Indicates if this instance is dimensionless.Unitlog(double base)Returns the logarithmic unit that has this unit as its reference level.static voidmain(java.lang.String[] args)Test this class.Unitmultiply(DerivedUnit that)Multiply a derived unit by a derived unit.Unitmultiply(Unit that)Multiply a derived unit by another unit.Unitpow(double power)Raise a derived unit to a power.Unitpow(int power)Raise a derived unit to a power.Unitroot(int root)Returns the N-th root of this unit.Unitscale(double amount)Scale this unit by an amount.Unitshift(double offset)Shift this unit by an amount.double[]toThat(double[] values, Unit that)Convert values from this unit to another unit.double[]toThat(double[] values, Unit that, boolean copy)Convert values from this unit to another unit.float[]toThat(float[] values, Unit that)Convert values from this unit to another unit.float[]toThat(float[] values, Unit that, boolean copy)Convert values from this unit to another unit.double[]toThis(double[] values, Unit that)Convert values to this unit from another unit.double[]toThis(double[] values, Unit that, boolean copy)Convert values to this unit from another unit.float[]toThis(float[] values, Unit that)Convert values to this unit from another unit.float[]toThis(float[] values, Unit that, boolean copy)Convert values to this unit from another unit.-
Methods inherited from class visad.Unit
canConvert, canConvertArray, clone, convertTuple, convertTuple, convertTuple, convertTuple, copyUnitsArray, equals, getAbsoluteUnit, getIdentifier, sqrt, toString, toThat, toThis, transformUnits, transformUnits, transformUnits, transformUnits
-
-
-
-
Constructor Detail
-
DerivedUnit
public DerivedUnit()
Construct a dimensionless derived unit. The identifier of the unit will be empty.
-
DerivedUnit
public DerivedUnit(java.lang.String identifier)
Construct a dimensionless derived unit with an identifier.- Parameters:
identifier- Name or abbreviation for the unit. May benullor empty.
-
DerivedUnit
public DerivedUnit(BaseUnit baseUnit)
Construct a derived unit from a base unit. The identifier of the unit will be that of the base unit.- Parameters:
baseUnit- The base unit.
-
DerivedUnit
public DerivedUnit(BaseUnit[] baseUnits, int[] powers)
Construct a derived unit from an array base units and powers. The identifier of the unit with be that of the base unit if there's only one base unit; otherwise, the identifier will benull.- Parameters:
baseUnits- The array of base units (e.g. {m, s}).powers- The array of powers (e.g. {1, -1} to create a m/s unit).
-
DerivedUnit
public DerivedUnit(BaseUnit[] baseUnits, int[] powers, java.lang.String identifier)
Construct a derived unit from an array base units, powers, and an identifier.- Parameters:
baseUnits- The array of base units (e.g. {m, s}).powers- The array of powers (e.g. {1, -1} to create a m/s unit).identifier- Name or abbreviation for the unit. May benullor empty.
-
DerivedUnit
public DerivedUnit(DerivedUnit that, java.lang.String identifier)
Construct a derived unit from a derived unit and an identifier.- Parameters:
that- The derived unit.identifier- Name or abbreviation for the unit. May benullor empty.
-
-
Method Detail
-
isDimensionless
public boolean isDimensionless()
Indicates if this instance is dimensionless. A unit is dimensionless if it is a measure of a dimensionless quantity like angle or concentration. Examples of dimensionless units include radian, degree, steradian, and "g/kg".
- Specified by:
isDimensionlessin classUnit- Returns:
- True if an only if this unit is dimensionless.
-
scale
public Unit scale(double amount) throws UnitException
Scale this unit by an amount.- Specified by:
scalein classUnit- Parameters:
amount- The amount by which to scale this unit. E.g. Unit yard = meter.scale(0.9144);- Returns:
- A unit equal this this unit scaled by the given amount.
- Throws:
UnitException- This unit cannot be scaled.
-
shift
public Unit shift(double offset) throws UnitException
Shift this unit by an amount.- Specified by:
shiftin classUnit- Parameters:
offset- The amount by which to shift this unit. E.g. Unit celsius = kelvin.shift(273.15);- Returns:
- A unit equal to this unit with the origin shifted to the given point.
- Throws:
UnitException- The unit subclass is unknown.
-
log
public Unit log(double base)
Description copied from class:UnitReturns the logarithmic unit that has this unit as its reference level. Not all units can be used as a reference level.
-
pow
public Unit pow(int power)
Raise a derived unit to a power.
-
root
public Unit root(int root) throws java.lang.IllegalArgumentException
Returns the N-th root of this unit.
-
pow
public Unit pow(double power) throws java.lang.IllegalArgumentException
Raise a derived unit to a power.- Specified by:
powin classUnit- Parameters:
power- The power to raise this unit by. If this unit is not dimensionless, then the value must be an integer or the reciprocal of an integer.- Returns:
- The unit resulting from raising this unit to
power. - Throws:
java.lang.IllegalArgumentException- This unit is not dimensionless andpoweris neither an integer nor the reciprocal of an integer.
-
getDefinition
public java.lang.String getDefinition()
Return the definition of this unit.- Specified by:
getDefinitionin classUnit- Returns:
- The definition of this unit (e.g. "m.s-1").
-
main
public static void main(java.lang.String[] args) throws UnitExceptionTest this class.- Parameters:
args- Arguments (ignored).- Throws:
UnitException- A problem occurred.
-
multiply
public Unit multiply(Unit that) throws UnitException
Multiply a derived unit by another unit.- Specified by:
multiplyin classUnit- Parameters:
that- The unit with which to multiply this unit.- Returns:
- The product of the two units.
- Throws:
UnitException- Meaningless operation.
-
multiply
public Unit multiply(DerivedUnit that)
Multiply a derived unit by a derived unit.- Parameters:
that- The derived unit with which to multiply this unit.- Returns:
- The product of the two units.
-
divide
public Unit divide(Unit that) throws UnitException
Divide a derived unit by another unit.- Specified by:
dividein classUnit- Parameters:
that- The unit to divide into this unit.- Returns:
- The quotient of the two units.
- Throws:
UnitException- Meaningless operation.
-
toThis
public double[] toThis(double[] values, Unit that) throws UnitExceptionConvert values to this unit from another unit.- Specified by:
toThisin classUnit- Parameters:
values- The values to be converted.that- The unit ofvalues.- Returns:
- The converted values in units of this unit.
- Throws:
UnitException- The units are not convertible.
-
toThis
public float[] toThis(float[] values, Unit that) throws UnitExceptionConvert values to this unit from another unit.- Specified by:
toThisin classUnit- Parameters:
values- The values to be converted.that- The unit ofvalues.- Returns:
- The converted values in units of this unit.
- Throws:
UnitException- The units are not convertible.
-
toThis
public double[] toThis(double[] values, Unit that, boolean copy) throws UnitExceptionConvert values to this unit from another unit.- Overrides:
toThisin classUnit- Parameters:
values- The values to be converted.that- The unit ofvalues.copy- if false andthatequals this, returnvalues, else return a new array- Returns:
- The converted values in units of this unit.
- Throws:
UnitException- The units are not convertible.
-
toThis
public float[] toThis(float[] values, Unit that, boolean copy) throws UnitExceptionConvert values to this unit from another unit.- Overrides:
toThisin classUnit- Parameters:
values- The values to be converted.that- The unit ofvalues.copy- if false andthatequals this, returnvalues, else return a new array- Returns:
- The converted values in units of this unit.
- Throws:
UnitException- The units are not convertible.
-
toThat
public double[] toThat(double[] values, Unit that) throws UnitExceptionConvert values from this unit to another unit.- Specified by:
toThatin classUnit- Parameters:
values- The values to be converted in units of this unit.that- The unit to which to convert the values.- Returns:
- The converted values.
- Throws:
UnitException- The units are not convertible.
-
toThat
public float[] toThat(float[] values, Unit that) throws UnitExceptionConvert values from this unit to another unit.- Specified by:
toThatin classUnit- Parameters:
values- The values to be converted in units of this unit.that- The unit to which to convert the values.- Returns:
- The converted values.
- Throws:
UnitException- The units are not convertible.
-
toThat
public double[] toThat(double[] values, Unit that, boolean copy) throws UnitExceptionConvert values from this unit to another unit.- Overrides:
toThatin classUnit- Parameters:
values- The values to be converted in units of this unit.that- The unit to which to convert the values.copy- if false andthatequals this, returnvalues, else return a new array- Returns:
- The converted values.
- Throws:
UnitException- The units are not convertible.
-
toThat
public float[] toThat(float[] values, Unit that, boolean copy) throws UnitExceptionConvert values from this unit to another unit.- Overrides:
toThatin classUnit- Parameters:
values- The values to be converted in units of this unit.that- The unit to which to convert the values.copy- if false andthatequals this, returnvalues, else return a new array- Returns:
- The converted values.
- Throws:
UnitException- The units are not convertible.
-
isConvertible
public boolean isConvertible(Unit unit)
Indicate whether this unit is convertible with another unit. If one unit is convertible with another, then thetoThis(...)/ andtoThat(...)methods will not throw a UnitException. Unit A is convertible with unit B if and only if unit B is convertible with unit A; hence, calling-order is irrelevant.- Specified by:
isConvertiblein classUnit- Parameters:
unit- The other unit.- Returns:
- True if and only if this unit is convertible with the other unit.
-
equals
public boolean equals(Unit unit)
Indicates if this instance equals a unit.
-
hashCode
public int hashCode()
Returns the hash code of this instance.Object.hashCode()should be overridden wheneverObject.equals(Object)is.
-
getDerivedUnit
public DerivedUnit getDerivedUnit()
Description copied from class:UnitReturns the derived unit that underlies this unit.- Specified by:
getDerivedUnitin classUnit- Returns:
- The derived unit that underlies this unit.
-
-
DMelt 3.0 © DataMelt by jWork.ORG