Top Description Fields Constructors Methods
tech.units.indriya.function

pack-priv final Class PowerOfPiConverter

extends AbstractConverter
implements MultiplyConverter, IntExponentSupplier
Class Inheritance
All Implemented Interfaces
tech.uom.lib.common.function.IntExponentSupplier, tech.units.indriya.function.MultiplyConverter, java.lang.Comparable, java.util.function.DoubleSupplier, tech.uom.lib.common.function.FactorSupplier, tech.uom.lib.common.function.ValueSupplier, tech.uom.lib.common.function.Converter, javax.measure.UnitConverter
Imports
java.math.BigDecimal, java.util.Objects, javax.measure.UnitConverter, tech.units.indriya.internal.function.Calculator, tech.uom.lib.common.function.IntExponentSupplier

This class represents a converter multiplying numeric values by a factor of Pi to the power of an integer exponent (π^exponent).
Authors
Andi Huber, Werner Keil
Since
2.0
Version
2.0, Oct 8, 2020

Field Summary

Modifier and TypeField and Description
private final Object
private final int
private final int
public static final PowerOfPiConverter
ONE

A converter by Pi to the power of 1.

private transient Number
private static final long
Inherited from tech.units.indriya.function.AbstractConverter:
conversionStepsIDENTITYUNIT_COMPOSITION_HANDLER

Constructor Summary

AccessConstructor and Description
protected
PowerOfPiConverter(int exponent)

Method Summary

Modifier and TypeMethod and Description
protected boolean
public int
compareTo(UnitConverter
the object to be compared.
o
)

Implements java.lang.Comparable.compareTo.

Compares this object with the specified object for order.

protected Number
public boolean
equals(Object
the reference object with which to compare.
obj
)

Implements abstract tech.units.indriya.function.AbstractConverter.equals.

Indicates whether some other object is "equal to" this one.

public double
public int
public Number
public int
hashCode()

Implements abstract tech.units.indriya.function.AbstractConverter.hashCode.

Returns a hash code value for this object.

public AbstractConverter
inverseWhenNotIdentity()

Implements abstract tech.units.indriya.function.AbstractConverter.inverseWhenNotIdentity.

Non-API

Returns an AbstractConverter that represents the inverse transformation of this converter, for cases where the transformation is not the identity transformation.

public boolean
isIdentity()

Implements javax.measure.UnitConverter.isIdentity.

Indicates if this converter is an identity converter.

public boolean
isLinear()

Overrides default tech.units.indriya.function.MultiplyConverter.isLinear.

Implements javax.measure.UnitConverter.isLinear.

Indicates whether this converter represents a (one-dimensional) linear transformation, that is a linear map (wikipedia) from a one-dimensional vector space (a scalar) to a one-dimensional vector space.

pack-priv static PowerOfPiConverter
of(int
the exponent for the factor π^exponent.
exponent
)

Creates a converter with the specified exponent.

protected AbstractConverter
public final String
transformationLiteral()

Implements abstract tech.units.indriya.function.AbstractConverter.transformationLiteral.

Non-API

Returns a String describing the transformation that is represented by this converter.

Inherited from tech.units.indriya.function.AbstractConverter:
concatenateconvertconvertgetConversionStepsinverselinearFactortoString

Field Detail

$lock1back to summary
private final Object $lock1
exponentback to summary
private final int exponent
hashCodeback to summary
private final int hashCode
ONEback to summary
public static final PowerOfPiConverter ONE

A converter by Pi to the power of 1.

Since
2.0
scaleFactorback to summary
private transient Number scaleFactor
serialVersionUIDback to summary
private static final long serialVersionUID

Hides tech.units.indriya.function.AbstractConverter.serialVersionUID.

Constructor Detail

PowerOfPiConverterback to summary
protected PowerOfPiConverter(int exponent)

Method Detail

canReduceWithback to summary
protected boolean canReduceWith(AbstractConverter that)

Implements abstract tech.units.indriya.function.AbstractConverter.canReduceWith.

Doc from tech.units.indriya.function.AbstractConverter.canReduceWith.

Non-API Guard for reduce(AbstractConverter)

Returns:boolean

whether or not a composition with given that is possible, such that no additional conversion steps are required, with respect to the steps already in place by this converter

Annotations
@Override
compareToback to summary
public int compareTo(UnitConverter o)

Implements java.lang.Comparable.compareTo.

Doc from java.lang.Comparable.compareTo.

Compares this object with the specified object for order. Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

The implementor must ensure signum(x.compareTo(y)) == -signum(y.compareTo(x)) for all x and y. (This implies that x.compareTo(y) must throw an exception if and only if y.compareTo(x) throws an exception.)

The implementor must also ensure that the relation is transitive: (x.compareTo(y) > 0 && y.compareTo(z) > 0) implies x.compareTo(z) > 0.

Finally, the implementor must ensure that x.compareTo(y)==0 implies that signum(x.compareTo(z)) == signum(y.compareTo(z)), for all z.

Parameters
o:UnitConverter

the object to be compared.

Returns:int

a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.

Annotations
@Override
convertWhenNotIdentityback to summary
protected Number convertWhenNotIdentity(Number value)

Implements abstract tech.units.indriya.function.AbstractConverter.convertWhenNotIdentity.

Doc from tech.units.indriya.function.AbstractConverter.convertWhenNotIdentity.

Non-API

Returns:Number

transformed value

Annotations
@Override
equalsback to summary
public boolean equals(Object obj)

Implements abstract tech.units.indriya.function.AbstractConverter.equals.

Doc from java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
obj:Object

the reference object with which to compare.

Returns:boolean

true if this object is the same as the obj argument; false otherwise.

Annotations
@Override
getAsDoubleback to summary
public double getAsDouble()

Implements java.util.function.DoubleSupplier.getAsDouble.

Doc from java.util.function.DoubleSupplier.getAsDouble.

Gets a result.

Returns:double

a result

Annotations
@Override
getExponentback to summary
public int getExponent()

Implements tech.uom.lib.common.function.IntExponentSupplier.getExponent.

Doc from tech.uom.lib.common.function.IntExponentSupplier.getExponent.

Gets an exponent value.

Returns:int

the exponent value

getValueback to summary
public Number getValue()

Implements tech.uom.lib.common.function.ValueSupplier.getValue.

Doc from tech.uom.lib.common.function.ValueSupplier.getValue.

Gets a value.

Returns:Number

a value

Annotations
@Override
hashCodeback to summary
public int hashCode()

Implements abstract tech.units.indriya.function.AbstractConverter.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for this object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Returns:int

a hash code value for this object

Annotations
@Override
inverseWhenNotIdentityback to summary
public AbstractConverter inverseWhenNotIdentity()

Implements abstract tech.units.indriya.function.AbstractConverter.inverseWhenNotIdentity.

Doc from tech.units.indriya.function.AbstractConverter.inverseWhenNotIdentity.

Non-API

Returns an AbstractConverter that represents the inverse transformation of this converter, for cases where the transformation is not the identity transformation.

Annotations
@Override
isIdentityback to summary
public boolean isIdentity()

Implements javax.measure.UnitConverter.isIdentity.

Doc from javax.measure.UnitConverter.isIdentity.

Indicates if this converter is an identity converter. The identity converter returns its input argument (convert(x) == x).

Note

Identity converters are also always 'linear', see UnitConverter#isLinear().

Returns:boolean

true if this converter is an identity converter.

Annotations
@Override
isLinearback to summary
public boolean isLinear()

Overrides default tech.units.indriya.function.MultiplyConverter.isLinear.

Implements javax.measure.UnitConverter.isLinear.

Doc from javax.measure.UnitConverter.isLinear.

Indicates whether this converter represents a (one-dimensional) linear transformation, that is a linear map (wikipedia) from a one-dimensional vector space (a scalar) to a one-dimensional vector space. Typically from 'R' to 'R', with 'R' the real numbers.

Given such a 'linear' converter 'A', let 'u', 'v' and 'r' be arbitrary numbers, then the following must hold by definition:

  • A(u + v) == A(u) + A(v)
  • A(r * u) == r * A(u)

Given a second 'linear' converter 'B', commutativity of composition follows by above definition:

  • (A o B) (u) == (B o A) (u)
In other words, two 'linear' converters do have the property that A(B(u)) == B(A(u)), meaning for 'A' and 'B' the order of their composition does not matter. Expressed as Java code:

A.concatenate(B).convert(u) == B.concatenate(A).convert(u)

Note: For composing UnitConverters see also UnitConverter#concatenate(UnitConverter).
Returns:boolean

true if this converter represents a linear transformation; false otherwise.

Annotations
@Override
ofback to summary
pack-priv static PowerOfPiConverter of(int exponent)

Creates a converter with the specified exponent.

Parameters
exponent:int

the exponent for the factor π^exponent.

reduceback to summary
protected AbstractConverter reduce(AbstractConverter that)

Overrides tech.units.indriya.function.AbstractConverter.reduce.

Doc from tech.units.indriya.function.AbstractConverter.reduce.

Non-API Guarded by canReduceWith(AbstractConverter)

Returns:AbstractConverter

a new AbstractConverter that adds no additional conversion steps, with respect to the steps already in place by this converter

Annotations
@Override
transformationLiteralback to summary
public final String transformationLiteral()

Implements abstract tech.units.indriya.function.AbstractConverter.transformationLiteral.

Doc from tech.units.indriya.function.AbstractConverter.transformationLiteral.

Non-API

Returns a String describing the transformation that is represented by this converter. Contributes to converter's toString method. If null or empty toString output becomes simplified.

Annotations
@Override