public class ParameterVector<Q extends Quantity> extends AbstractParamVector<Q,ParameterVector<Q>> implements javolution.lang.ValueType, javolution.xml.XMLSerializable
This class represents an n-dimensional vector
of Parameter
elements sharing the same units.
Modified by: Joseph A. Huwaldt
Modifier and Type | Field and Description |
---|---|
static int |
X
Constant used to identify the X (0) coordinate in the vector.
|
static int |
Y
Constant used to identify the Y (1) coordinate in the vector.
|
static int |
Z
Constant used to identify the Z (2) coordinate in the vector.
|
Modifier and Type | Method and Description |
---|---|
<T extends Quantity> |
asType(java.lang.Class<T> type)
Casts this ParameterVector to a parameterized unit of specified nature or
throw a
ClassCastException if the dimension of the
specified quantity and this parameter's unit dimension do not match. |
ParameterVector<Q> |
copy()
Returns a copy of this vector
allocated
by the calling thread (possibly on the stack). |
ParameterVector |
cross(Vector that)
Returns the cross product of two vectors.
|
ParameterVector<?> |
divide(Parameter<?> that)
Returns this vector with each element divided by the specified divisor.
|
boolean |
equals(java.lang.Object obj)
Compares this ParameterVector against the specified object for strict
equality (same values and same units).
|
ParameterVector<Q> |
fromVector3D(Vector3D<Q> vector)
Return the specified
Vector3D object as a ParameterVector instance. |
Parameter<Q> |
get(int i)
Returns the value of a Parameter from this vector.
|
int |
getDimension()
Returns the number of elements held by this vector.
|
Unit<Q> |
getUnit()
Returns the unit in which the
values in this vector
are stated in. |
double |
getValue(int i)
Returns the value of the Parameter in this vector as a
double ,
stated in this vector's unit . |
int |
hashCode()
Returns the hash code for this parameter.
|
static void |
main(java.lang.String[] args)
Tests the methods in this class.
|
ParameterVector<Q> |
minus(Parameter<Q> that)
Subtracts the supplied Parameter from each element of this vector and returns
the result.
|
ParameterVector<Q> |
minus(Vector<Parameter<Q>> that)
Returns the difference between this vector and the one specified.
|
double |
normValue()
Returns the
AbstractParamVector.norm() , magnitude, or length value of this vector. |
ParameterVector<Q> |
opposite()
Returns the negation of this vector.
|
ParameterVector<Q> |
plus(Parameter<Q> that)
Returns the sum of this vector with the parameter specified.
|
ParameterVector<Q> |
plus(Vector<Parameter<Q>> that)
Returns the sum of this vector with the one specified.
|
ParameterVector<Q> |
times(double k)
Returns the product of this vector with the specified coefficient.
|
ParameterVector |
times(Parameter k)
Returns the product of this vector with the specified coefficient.
|
Parameter |
times(Vector that)
Returns the dot product of this vector with the one specified.
|
ParameterVector |
timesEBE(Vector that)
Returns the element-by-element product of this vector with the one specified.
|
<R extends Quantity> |
to(Unit<R> unit)
Returns the equivalent to this vector but stated in the
specified unit.
|
Float64Vector |
toFloat64Vector()
Returns the values stored in this vector, stated in this vector's
unit , as a Float64Vector. |
ParameterVector<Dimensionless> |
toUnitVector()
Returns this vector converted to a unit vector by dividing all the
vector's elements by the length (
AbstractParamVector.norm() ) of this vector. |
Vector3D<Q> |
toVector3D()
Returns a Vector3D representation of this vector if possible.
|
static <Q extends Quantity> |
valueOf(double x,
double y,
double z,
Unit<Q> unit)
Returns a
ParameterVector instance holding the specified double values
stated in the specified units. |
static <Q extends Quantity> |
valueOf(double x,
double y,
Unit<Q> unit)
Returns a 2D
ParameterVector instance holding the specified double values
stated in the specified units. |
static <Q extends Quantity> |
valueOf(java.util.List<Parameter<Q>> values)
Returns a
ParameterVector instance holding the specified Parameter values. |
static <Q extends Quantity> |
valueOf(Parameter<Q>... values)
Returns a
ParameterVector instance holding the specified Parameter values. |
static <Q extends Quantity> |
valueOf(Parameter<Q> x,
Parameter<Q> y,
Parameter<Q> z)
Returns a
ParameterVector instance holding the specified Parameter values. |
static <Q extends Quantity> |
valueOf(Unit<Q> unit,
double... values)
Returns a
ParameterVector instance holding the specified double values
stated in the specified units. |
static <Q extends Quantity> |
valueOf(Vector<Float64> vector,
Unit<Q> unit)
Returns a
ParameterVector instance containing the specified vector of Float64 values
stated in the specified units. |
static <Q extends Quantity> |
valueOf(Vector<Parameter<Q>> vector)
Returns a
ParameterVector instance containing the
specified vector of Parameter values with compatible units. |
public static final int X
public static final int Y
public static final int Z
public static <Q extends Quantity> ParameterVector<Q> valueOf(double x, double y, Unit<Q> unit)
ParameterVector
instance holding the specified double
values
stated in the specified units.x
- the x value stated in the specified unit.y
- the y value stated in the specified unit.unit
- the unit in which the coordinates are stated.public static <Q extends Quantity> ParameterVector<Q> valueOf(double x, double y, double z, Unit<Q> unit)
ParameterVector
instance holding the specified double
values
stated in the specified units.x
- the x value stated in the specified unit.y
- the y value stated in the specified unit.z
- the z value stated in the specified unit.unit
- the unit in which the coordinates are stated.public static <Q extends Quantity> ParameterVector<Q> valueOf(Unit<Q> unit, double... values)
ParameterVector
instance holding the specified double
values
stated in the specified units.unit
- the unit in which the coordinates are stated.values
- A list of values to store in the vector.public static <Q extends Quantity> ParameterVector<Q> valueOf(Parameter<Q> x, Parameter<Q> y, Parameter<Q> z)
ParameterVector
instance holding the specified Parameter
values.
All the values are converted to the same units as the x value.x
- the x value.y
- the y value.z
- the z value.public static <Q extends Quantity> ParameterVector<Q> valueOf(java.util.List<Parameter<Q>> values)
ParameterVector
instance holding the specified Parameter
values.
All the values are converted to the same units as the first value.values
- A list of values to store in the vector.public static <Q extends Quantity> ParameterVector<Q> valueOf(Parameter<Q>... values)
ParameterVector
instance holding the specified Parameter
values.
All the values are converted to the same units as the first value.values
- A list of values to store in the vector.public static <Q extends Quantity> ParameterVector<Q> valueOf(Vector<Float64> vector, Unit<Q> unit)
ParameterVector
instance containing the specified vector of Float64 values
stated in the specified units.vector
- the vector of Float64 values stated in the specified unit.unit
- the unit in which the coordinates are stated.public static <Q extends Quantity> ParameterVector<Q> valueOf(Vector<Parameter<Q>> vector)
ParameterVector
instance containing the
specified vector of Parameter values with compatible units.
All the values are converted to the same units as the 1st value.vector
- the vector of Parameter values stated in the specified unit.public Vector3D<Q> toVector3D()
toVector3D
in class AbstractParamVector<Q extends Quantity,ParameterVector<Q extends Quantity>>
DimensionException
- if this vector has any number of dimensions
other than 3.public ParameterVector<Q> fromVector3D(Vector3D<Q> vector)
Vector3D
object as a ParameterVector
instance.fromVector3D
in class AbstractParamVector<Q extends Quantity,ParameterVector<Q extends Quantity>>
vector
- The Vector3D
object to be converted to a ParameterVector
.ParameterVector
instance that is equivalent to the
supplied Vector3D
object.public int getDimension()
getDimension
in class Vector<Parameter<Q extends Quantity>>
public double getValue(int i)
double
,
stated in this vector's unit
.getValue
in class AbstractParamVector<Q extends Quantity,ParameterVector<Q extends Quantity>>
i
- the dimension index.i
.java.lang.IndexOutOfBoundsException
- (i < 0) || (i >= dimension())
public double normValue()
AbstractParamVector.norm()
, magnitude, or length value of this vector.normValue
in class AbstractParamVector<Q extends Quantity,ParameterVector<Q extends Quantity>>
this.norm().doubleValue()
.public ParameterVector<Q> opposite()
public ParameterVector<Q> plus(Vector<Parameter<Q>> that)
plus
in interface GroupAdditive<Vector<Parameter<Q extends Quantity>>>
plus
in class Vector<Parameter<Q extends Quantity>>
that
- the vector to be added.this + that
.DimensionException
- if vector dimensions are different.ConversionException
- if the input vector is not in units
consistent with this vector.public ParameterVector<Q> plus(Parameter<Q> that)
plus
in class AbstractParamVector<Q extends Quantity,ParameterVector<Q extends Quantity>>
that
- the parameter to be added to each element of this vector.this + that
.public ParameterVector<Q> minus(Vector<Parameter<Q>> that)
minus
in class Vector<Parameter<Q extends Quantity>>
that
- the vector to be subtracted.this - that
.DimensionException
- if vector dimensions are different.ConversionException
- if the input vector is not in units
consistent with this vector.public ParameterVector<Q> minus(Parameter<Q> that)
minus
in class AbstractParamVector<Q extends Quantity,ParameterVector<Q extends Quantity>>
that
- the Parameter to be subtracted from each element of this vector.this - that
.public ParameterVector times(Parameter k)
public ParameterVector<Q> times(double k)
times
in class AbstractParamVector<Q extends Quantity,ParameterVector<Q extends Quantity>>
k
- the coefficient multiplier.this times k
public Parameter times(Vector that)
times
in class Vector<Parameter<Q extends Quantity>>
that
- the vector multiplier.this times that
DimensionException
- if this.dimension() != that.dimension()
public ParameterVector timesEBE(Vector that)
that
- the vector multiplier.this .* that
DimensionException
- if this.dimension() != that.dimension()
public ParameterVector cross(Vector that)
cross
in class Vector<Parameter<Q extends Quantity>>
that
- the vector multiplier.this x that
DimensionException
- if (that.getDimension() != this.getDimension())
public ParameterVector<?> divide(Parameter<?> that)
that
- the divisor.this / that
.public ParameterVector<Dimensionless> toUnitVector()
AbstractParamVector.norm()
) of this vector.public ParameterVector<Q> copy()
allocated
by the calling thread (possibly on the stack).public Unit<Q> getUnit()
values
in this vector
are stated in.getUnit
in class AbstractParamVector<Q extends Quantity,ParameterVector<Q extends Quantity>>
public <R extends Quantity> ParameterVector<R> to(Unit<R> unit)
to
in class AbstractParamVector<Q extends Quantity,ParameterVector<Q extends Quantity>>
R
- The Quantity (unit type) of the vector being output.unit
- the unit of the vector to be returned.ConversionException
- if the current model does not allows for
conversion to the specified unit.public <T extends Quantity> ParameterVector<T> asType(java.lang.Class<T> type) throws java.lang.ClassCastException
ClassCastException
if the dimension of the
specified quantity and this parameter's unit dimension do not match.type
- the quantity class identifying the nature of the unit.java.lang.ClassCastException
- if the dimension of this parameter's unit is different
from the specified quantity dimension.java.lang.UnsupportedOperationException
- if the specified quantity class
does not have a public static field named "UNIT" holding the
standard unit for the quantity.public Float64Vector toFloat64Vector()
unit
, as a Float64Vector.public boolean equals(java.lang.Object obj)
public int hashCode()
public static void main(java.lang.String[] args)