Class AbstractFloatVector<U extends Unit<U>,S extends AbstractFloatScalar<U,S>,V extends AbstractFloatVector<U,S,V>>
java.lang.Object
org.djunits.value.AbstractValue<U,T>
org.djunits.value.AbstractIndexedValue<U,S,V,FloatVectorData>
org.djunits.value.vfloat.vector.base.AbstractFloatVector<U,S,V>
- Type Parameters:
U- the unitS- the scalar with unit UV- the generic vector type
- All Implemented Interfaces:
Serializable,Cloneable,Iterable<S>,Vector<U,S,V>,ValueFunctions<U,V>,IndexedValue<U,S,V>,Value<U,V>,FloatVectorInterface<U,S,V>
- Direct Known Subclasses:
AbstractFloatVectorAbs,AbstractFloatVectorRel
public abstract class AbstractFloatVector<U extends Unit<U>,S extends AbstractFloatScalar<U,S>,V extends AbstractFloatVector<U,S,V>> extends AbstractIndexedValue<U,S,V,FloatVectorData> implements FloatVectorInterface<U,S,V>
The most basic abstract class for the FloatVector.
Copyright (c) 2013-2020 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See DJUNITS License.
- Author:
- Alexander Verbraeck, Peter Knoppers, Wouter Schakel
- See Also:
- Serialized Form
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classAbstractFloatVector.ItrThe iterator class is loosely based in AbstractList.Itr.Nested classes/interfaces inherited from interface org.djunits.value.base.Vector
Vector.Abs<AU extends AbsoluteLinearUnit<AU,RU>,A extends Scalar<AU,A>,AV extends Vector.Abs<AU,A,AV,RU,R,RV>,RU extends Unit<RU>,R extends Scalar<RU,R>,RV extends Vector.RelWithAbs<AU,A,AV,RU,R,RV>>, Vector.Rel<U extends Unit<U>,S extends Scalar<U,S>,RV extends Vector.Rel<U,S,RV>>, Vector.RelWithAbs<AU extends AbsoluteLinearUnit<AU,RU>,A extends Scalar<AU,A>,AV extends Vector.Abs<AU,A,AV,RU,R,RV>,RU extends Unit<RU>,R extends Scalar<RU,R>,RV extends Vector.RelWithAbs<AU,A,AV,RU,R,RV>> -
Field Summary
Fields Modifier and Type Field Description protected FloatVectorDatadataThe stored data as an object, can be sparse or dense. -
Constructor Summary
Constructors Constructor Description AbstractFloatVector(FloatVectorData data, U unit)Construct a new FloatVector. -
Method Summary
Modifier and Type Method Description Vabs()Return a new Scalar/Vector/Matrix with absolute value(s).Vassign(FloatFunction floatFunction)Execute a function on a cell by cell basis.Vceil()Return a new Scalar/Vector/Matrix with the nearest integer value(s) above the current value(s).protected voidcheckIndex(int index)Check that a provided index is valid.protected voidcheckSize(FloatVectorInterface<?,?,?> other)Centralized size equality check.booleanequals(Object obj)Vfloor()Return a new Scalar/Vector/Matrix with the nearest integer value(s) below the current value(s).Sget(int index)Retrieve a value from the vector.protected FloatVectorDatagetData()Retrieve the data object.floatgetInUnit(int index)Retrieve the value stored at a specified position in the original unit.floatgetInUnit(int index, U targetUnit)Retrieve the value stored at a specified position converted into a specified unit.S[]getScalars()Return the vector as an array of scalars.floatgetSI(int index)Retrieve the value stored at a specified position in the standard SI unit.float[]getValuesInUnit()Create a float[] array filled with the values in the original unit.float[]getValuesInUnit(U targetUnit)Create a float[] array filled with the values converted into a specified unit.float[]getValuesSI()Create a float[] array filled with the values in the standard SI unit.inthashCode()Iterator<S>iterator()Create and return an iterator over the scalars in this vector in proper sequence.Vneg()Return a new Scalar/Vector/Matrix with negated value(s).Vrint()Return a new Scalar/Vector/Matrix with the nearest integer value(s).voidset(int index, S value)Set the scalar value at the specified position.protected voidsetData(FloatVectorData data)Set the data object.voidsetInUnit(int index, float valueInUnit)Set the value, specified in the (current) display unit, at the specified position.voidsetInUnit(int index, float valueInUnit, U valueUnit)Set the value, specified in thevalueUnit, at the specified position.voidsetSI(int index, float valueSI)Set the value, specified in the standard SI unit, at the specified position.intsize()Retrieve the size of the vector.VtoDense()Create and return a dense version of this internal storage.VtoSparse()Create and return a sparse version of this internal storage.StringtoString()Concise description of this value.StringtoString(boolean verbose, boolean withUnit)Somewhat verbose description of this value with optional type and unit information.StringtoString(U displayUnit)Somewhat verbose description of this value with the values expressed in the specified unit.StringtoString(U displayUnit, boolean verbose, boolean withUnit)Somewhat verbose description of this value with the values expressed in the specified unit.Methods inherited from class org.djunits.value.AbstractIndexedValue
cardinality, checkCopyOnWrite, clone, getStorageType, immutable, isCopyOnWrite, isDense, isMutable, isSparse, mutable, setCopyOnWrite, setMutableMethods inherited from class org.djunits.value.AbstractValue
getDisplayUnit, isAbsolute, isRelative, setDisplayUnitMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.djunits.value.vfloat.vector.base.FloatVectorInterface
instantiateScalarSI, instantiateVectorMethods inherited from interface org.djunits.value.IndexedValue
cardinality, getScalarClass, getStorageType, immutable, isDense, isMutable, isSparse, mutableMethods inherited from interface org.djunits.value.Value
getDisplayUnit, isAbsolute, isRelative, setDisplayUnit
-
Field Details
-
data
The stored data as an object, can be sparse or dense.
-
-
Constructor Details
-
AbstractFloatVector
AbstractFloatVector(FloatVectorData data, U unit)Construct a new FloatVector.- Parameters:
data- FloatVectorData; an internal data objectunit- U; the unit
-
-
Method Details
-
getData
Retrieve the data object. Method can only be used within package and by subclasses.- Specified by:
getDatain classAbstractIndexedValue<U extends Unit<U>,S extends AbstractFloatScalar<U,S>,V extends AbstractFloatVector<U,S,V>,FloatVectorData>- Returns:
- D; the internal data
-
setData
Set the data object. Method can only be used within package and by subclasses.- Specified by:
setDatain classAbstractIndexedValue<U extends Unit<U>,S extends AbstractFloatScalar<U,S>,V extends AbstractFloatVector<U,S,V>,FloatVectorData>- Parameters:
data- D; the internal data
-
getValuesSI
public final float[] getValuesSI()Create a float[] array filled with the values in the standard SI unit.- Specified by:
getValuesSIin interfaceFloatVectorInterface<U extends Unit<U>,S extends AbstractFloatScalar<U,S>,V extends AbstractFloatVector<U,S,V>>- Returns:
- float[]; array of values in the standard SI unit
-
getValuesInUnit
public final float[] getValuesInUnit()Create a float[] array filled with the values in the original unit.- Specified by:
getValuesInUnitin interfaceFloatVectorInterface<U extends Unit<U>,S extends AbstractFloatScalar<U,S>,V extends AbstractFloatVector<U,S,V>>- Returns:
- float[]; the values in the original unit
-
getValuesInUnit
Create a float[] array filled with the values converted into a specified unit.- Specified by:
getValuesInUnitin interfaceFloatVectorInterface<U extends Unit<U>,S extends AbstractFloatScalar<U,S>,V extends AbstractFloatVector<U,S,V>>- Parameters:
targetUnit- U; the unit into which the values are converted for use- Returns:
- float[]; the values converted into the specified unit
-
size
public final int size()Retrieve the size of the vector. -
checkIndex
Check that a provided index is valid.- Parameters:
index- int; the value to check- Throws:
ValueRuntimeException- when index is invalid
-
getSI
Retrieve the value stored at a specified position in the standard SI unit.- Specified by:
getSIin interfaceFloatVectorInterface<U extends Unit<U>,S extends AbstractFloatScalar<U,S>,V extends AbstractFloatVector<U,S,V>>- Parameters:
index- int; index of the value to retrieve- Returns:
- float; value at position index in the standard SI unit
- Throws:
ValueRuntimeException- when index out of range (index < 0 or index >= size())
-
get
Retrieve a value from the vector.- Specified by:
getin interfaceVector<U extends Unit<U>,S extends AbstractFloatScalar<U,S>,V extends AbstractFloatVector<U,S,V>>- Parameters:
index- int; the index to retrieve the value at- Returns:
- S; the value as a Scalar
- Throws:
ValueRuntimeException- in case index is out of bounds
-
getInUnit
Retrieve the value stored at a specified position in the original unit.- Specified by:
getInUnitin interfaceFloatVectorInterface<U extends Unit<U>,S extends AbstractFloatScalar<U,S>,V extends AbstractFloatVector<U,S,V>>- Parameters:
index- int; index of the value to retrieve- Returns:
- float; value at position index in the original unit
- Throws:
ValueRuntimeException- when index out of range (index < 0 or index >= size())
-
getInUnit
Retrieve the value stored at a specified position converted into a specified unit.- Specified by:
getInUnitin interfaceFloatVectorInterface<U extends Unit<U>,S extends AbstractFloatScalar<U,S>,V extends AbstractFloatVector<U,S,V>>- Parameters:
index- int; index of the value to retrievetargetUnit- U; the unit for the result- Returns:
- float; value at position index converted into the specified unit
- Throws:
ValueRuntimeException- when index out of range (index < 0 or index >= size())
-
setSI
Set the value, specified in the standard SI unit, at the specified position.- Specified by:
setSIin interfaceFloatVectorInterface<U extends Unit<U>,S extends AbstractFloatScalar<U,S>,V extends AbstractFloatVector<U,S,V>>- Parameters:
index- int; the index of the value to setvalueSI- float; the value, specified in the standard SI unit- Throws:
ValueRuntimeException- when index out of range (index < 0 or index >= size())
-
setInUnit
Set the value, specified in the (current) display unit, at the specified position.- Specified by:
setInUnitin interfaceFloatVectorInterface<U extends Unit<U>,S extends AbstractFloatScalar<U,S>,V extends AbstractFloatVector<U,S,V>>- Parameters:
index- int; the index of the value to setvalueInUnit- float; the value, specified in the (current) display unit- Throws:
ValueRuntimeException- when index out of range (index < 0 or index >= size())
-
setInUnit
Set the value, specified in thevalueUnit, at the specified position.- Specified by:
setInUnitin interfaceFloatVectorInterface<U extends Unit<U>,S extends AbstractFloatScalar<U,S>,V extends AbstractFloatVector<U,S,V>>- Parameters:
index- int; the index of the value to setvalueInUnit- float; the value, specified in the (current) display unitvalueUnit- U; the unit in which thevalueInUnitis expressed- Throws:
ValueRuntimeException- when index out of range (index < 0 or index >= size())
-
set
Set the scalar value at the specified position.- Specified by:
setin interfaceFloatVectorInterface<U extends Unit<U>,S extends AbstractFloatScalar<U,S>,V extends AbstractFloatVector<U,S,V>>- Parameters:
index- int; the index of the value to setvalue- S; the value to set- Throws:
ValueRuntimeException- when index out of range (index < 0 or index >= size())
-
getScalars
Return the vector as an array of scalars.- Specified by:
getScalarsin interfaceVector<U extends Unit<U>,S extends AbstractFloatScalar<U,S>,V extends AbstractFloatVector<U,S,V>>- Returns:
- S[]; the vector as an array of scalars
-
toSparse
Create and return a sparse version of this internal storage. When the data was already sparse, the current version is returned and no copy will be made of the data.- Specified by:
toSparsein interfaceIndexedValue<U extends Unit<U>,S extends AbstractFloatScalar<U,S>,V extends AbstractFloatVector<U,S,V>>- Returns:
- T; a sparse version of this internal storage
-
toDense
Create and return a dense version of this internal storage. When the data was already dense, the current version is returned and no copy will be made of the data.- Specified by:
toDensein interfaceIndexedValue<U extends Unit<U>,S extends AbstractFloatScalar<U,S>,V extends AbstractFloatVector<U,S,V>>- Returns:
- T; a dense version of this internal storage
-
assign
Execute a function on a cell by cell basis. Note: May be expensive when used on sparse data.- Specified by:
assignin interfaceFloatVectorInterface<U extends Unit<U>,S extends AbstractFloatScalar<U,S>,V extends AbstractFloatVector<U,S,V>>- Parameters:
floatFunction- FloatFunction; the function to apply- Returns:
- V; this updated vector
-
abs
Return a new Scalar/Vector/Matrix with absolute value(s).- Specified by:
absin interfaceValueFunctions<U extends Unit<U>,S extends AbstractFloatScalar<U,S>>- Returns:
- R; a new R with absolute value(s)
-
ceil
Return a new Scalar/Vector/Matrix with the nearest integer value(s) above the current value(s).- Specified by:
ceilin interfaceValueFunctions<U extends Unit<U>,S extends AbstractFloatScalar<U,S>>- Returns:
- R; a new R with absolute value(s)
-
floor
Return a new Scalar/Vector/Matrix with the nearest integer value(s) below the current value(s).- Specified by:
floorin interfaceValueFunctions<U extends Unit<U>,S extends AbstractFloatScalar<U,S>>- Returns:
- R; a new R with absolute value(s)
-
neg
Return a new Scalar/Vector/Matrix with negated value(s).- Specified by:
negin interfaceValueFunctions<U extends Unit<U>,S extends AbstractFloatScalar<U,S>>- Returns:
- R; a new R with negated value(s)
-
rint
Return a new Scalar/Vector/Matrix with the nearest integer value(s). When the value is exactly in the middle between two integer values, the even one is returned.- Specified by:
rintin interfaceValueFunctions<U extends Unit<U>,S extends AbstractFloatScalar<U,S>>- Returns:
- R; a new R with absolute value(s)
-
toString
Concise description of this value. -
toString
Somewhat verbose description of this value with the values expressed in the specified unit. -
toString
Somewhat verbose description of this value with optional type and unit information.- Specified by:
toStringin interfaceValue<U extends Unit<U>,S extends AbstractFloatScalar<U,S>>- Parameters:
verbose- boolean; if true; include type info; if false; exclude type infowithUnit- boolean; if true; include the unit; of false; exclude the unit- Returns:
- String; printable string with the value contents
-
toString
Somewhat verbose description of this value with the values expressed in the specified unit.- Specified by:
toStringin interfaceValue<U extends Unit<U>,S extends AbstractFloatScalar<U,S>>- Parameters:
displayUnit- U; the unit into which the values are converted for displayverbose- boolean; if true; include type info; if false; exclude type infowithUnit- boolean; if true; include the unit; of false; exclude the unit- Returns:
- String; printable string with the value contents
-
checkSize
Centralized size equality check.- Parameters:
other- FloatVectorInterface<?, ?, ?>; other FloatVector- Throws:
NullPointerException- when other vector is nullValueRuntimeException- when vectors have unequal size
-
hashCode
public int hashCode() -
equals
-
iterator
Create and return an iterator over the scalars in this vector in proper sequence.
-