Class AbstractFloatVectorAbs<AU extends AbsoluteLinearUnit<AU,RU>,A extends AbstractFloatScalarAbs<AU,A,RU,R>,AV extends AbstractFloatVectorAbs<AU,A,AV,RU,R,RV>,RU extends Unit<RU>,R extends AbstractFloatScalarRelWithAbs<AU,A,RU,R>,RV extends AbstractFloatVectorRelWithAbs<AU,A,AV,RU,R,RV>>
java.lang.Object
org.djunits.value.AbstractValue<U,T>
org.djunits.value.AbstractIndexedValue<U,S,V,FloatVectorData>
org.djunits.value.vfloat.vector.base.AbstractFloatVector<AU,A,AV>
org.djunits.value.vfloat.vector.base.AbstractFloatVectorAbs<AU,A,AV,RU,R,RV>
- Type Parameters:
AU- the absolute unit belonging to the relative unitA- the absolute scalar type belonging to the absolute vector typeAV- the (immutable or mutable) absolute vector typeRU- the relative unit belonging to the absolute unitR- the relative scalar type belonging to the relative vector typeRV- the relative (immutable or mutable) vector type with this unit
- All Implemented Interfaces:
Serializable,Cloneable,Iterable<A>,Absolute,Vector<AU,A,AV>,Vector.Abs<AU,A,AV,RU,R,RV>,ValueFunctions<AU,AV>,IndexedValue<AU,A,AV>,Value<AU,AV>,FloatVectorInterface<AU,A,AV>
- Direct Known Subclasses:
FloatAbsoluteTemperatureVector,FloatDirectionVector,FloatPositionVector,FloatTimeVector
public abstract class AbstractFloatVectorAbs<AU extends AbsoluteLinearUnit<AU,RU>,A extends AbstractFloatScalarAbs<AU,A,RU,R>,AV extends AbstractFloatVectorAbs<AU,A,AV,RU,R,RV>,RU extends Unit<RU>,R extends AbstractFloatScalarRelWithAbs<AU,A,RU,R>,RV extends AbstractFloatVectorRelWithAbs<AU,A,AV,RU,R,RV>> extends AbstractFloatVector<AU,A,AV> implements Vector.Abs<AU,A,AV,RU,R,RV>, Absolute
AbstractMutableFloatVectorRelWithAbs.java.
Copyright (c) 2019-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
- See Also:
- Serialized Form
-
Nested Class Summary
Nested classes/interfaces inherited from class org.djunits.value.vfloat.vector.base.AbstractFloatVector
AbstractFloatVector.ItrNested 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
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractFloatVectorAbs(FloatVectorData data, AU unit)Construct a new Relative Mutable FloatVector. -
Method Summary
Modifier and Type Method Description AVdecrementBy(R decrement)Decrement all values of this vector by the decrement.AVdecrementBy(RV decrement)Decrement all values of this vector by the decrement on a value by value basis.abstract RinstantiateScalarRelSI(float valueSI, RU displayUnit)Instantiate a new relative scalar for the class of this absolute vector.abstract RVinstantiateVectorRel(FloatVectorData dvd, RU displayUnit)Instantiate a new relative vector of the class of this absolute vector.RVminus(AV decrement)Subtract an absolute vector from this absolute vector.AVminus(RV decrement)Subtract a relative vector from this absolute vector.AVplus(RV increment)Add a relative vector to this absolute vector.Methods inherited from class org.djunits.value.vfloat.vector.base.AbstractFloatVector
abs, assign, ceil, checkIndex, checkSize, equals, floor, get, getData, getInUnit, getInUnit, getScalars, getSI, getValuesInUnit, getValuesInUnit, getValuesSI, hashCode, iterator, neg, rint, set, setData, setInUnit, setInUnit, setSI, size, toDense, toSparse, toString, toString, toString, toStringMethods 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, mutable, toDense, toSparseMethods inherited from interface org.djunits.value.Value
getDisplayUnit, isAbsolute, isRelative, setDisplayUnit, toString, toString, toString, toString
-
Constructor Details
-
AbstractFloatVectorAbs
Construct a new Relative Mutable FloatVector.- Parameters:
data- FloatVectorData; an internal data objectunit- AU; the unit
-
-
Method Details
-
plus
Add a relative vector to this absolute vector. A new absolute vector is returned. The display unit of the new vector is the display unit of this absolute vector. The addition is done value by value and the result is stored in a new vector. If both operands are sparse, the result is a sparse vector, otherwise the result is a dense vector.- Specified by:
plusin interfaceVector.Abs<AU extends AbsoluteLinearUnit<AU,RU>,A extends AbstractFloatScalarAbs<AU,A,RU,R>,AV extends AbstractFloatVectorAbs<AU,A,AV,RU,R,RV>,RU extends Unit<RU>,R extends AbstractFloatScalarRelWithAbs<AU,A,RU,R>,RV extends AbstractFloatVectorRelWithAbs<AU,A,AV,RU,R,RV>>- Parameters:
increment- RV; the relative vector (mutable or immutable, sparse or dense) to add to this absolute vector- Returns:
- AIV; the sum of this value and the operand as a new absolute, immutable vector
- Throws:
ValueRuntimeException- in case this vector and the operand have a different size
-
minus
Subtract a relative vector from this absolute vector. A new absolute vector is returned. The display unit of the new vector is the display unit of this absolute vector. The subtraction is done value by value and the result is stored in a new vector. If both operands are sparse, the result is a sparse vector, otherwise the result is a dense vector.- Specified by:
minusin interfaceVector.Abs<AU extends AbsoluteLinearUnit<AU,RU>,A extends AbstractFloatScalarAbs<AU,A,RU,R>,AV extends AbstractFloatVectorAbs<AU,A,AV,RU,R,RV>,RU extends Unit<RU>,R extends AbstractFloatScalarRelWithAbs<AU,A,RU,R>,RV extends AbstractFloatVectorRelWithAbs<AU,A,AV,RU,R,RV>>- Parameters:
decrement- RV; the relative vector (mutable or immutable, sparse or dense) to subtract from this absolute vector- Returns:
- AIV; the difference of this value and the operand as a new absolute, immutable vector
- Throws:
ValueRuntimeException- in case this vector and the operand have a different size
-
minus
Subtract an absolute vector from this absolute vector. A new relative vector is returned. The display unit of the new vector is the display unit of relative counterpart of the display unit of this absolute vector. The subtraction is done value by value and the result is stored in a new vector. If both operands are sparse, the result is a sparse vector, otherwise the result is a dense vector.- Specified by:
minusin interfaceVector.Abs<AU extends AbsoluteLinearUnit<AU,RU>,A extends AbstractFloatScalarAbs<AU,A,RU,R>,AV extends AbstractFloatVectorAbs<AU,A,AV,RU,R,RV>,RU extends Unit<RU>,R extends AbstractFloatScalarRelWithAbs<AU,A,RU,R>,RV extends AbstractFloatVectorRelWithAbs<AU,A,AV,RU,R,RV>>- Parameters:
decrement- AV; the absolute vector (mutable or immutable, sparse or dense) to subtract from this absolute vector- Returns:
- RIV; the difference of this value and the operand as a new relative, immutable vector
- Throws:
ValueRuntimeException- in case this vector and the operand have a different size
-
decrementBy
Decrement all values of this vector by the decrement. This only works if the vector is mutable.- Parameters:
decrement- R; the scalar by which to decrement all values- Returns:
- AV; this modified vector
- Throws:
ValueRuntimeException- in case this vector is immutable
-
decrementBy
Decrement all values of this vector by the decrement on a value by value basis. This only works if this vector is mutable.- Parameters:
decrement- RV; the vector that contains the values by which to decrement the corresponding values- Returns:
- AV; this modified vector
- Throws:
ValueRuntimeException- in case this vector is immutable or when the sizes of the vectors differ
-
instantiateVectorRel
Instantiate a new relative vector of the class of this absolute vector. This can be used instead of the FloatVector.instiantiate() methods in case another vector of this absolute vector class is known. The method is faster than FloatVector.instantiate, and it will also work if the vector is user-defined.- Parameters:
dvd- FloatVectorData; the data used to instantiate the vectordisplayUnit- RU; the display unit of the relative vector- Returns:
- RV; a relative vector of the correct type, belonging to this absolute vector type
-
instantiateScalarRelSI
Instantiate a new relative scalar for the class of this absolute vector. This can be used instead of the FloatScalar.instiantiate() methods in case a vector of this class is known. The method is faster than FloatScalar.instantiate, and it will also work if the vector and/or scalar are user-defined.- Parameters:
valueSI- float; the SI value of the relative scalardisplayUnit- RU; the unit in which the relative value will be displayed- Returns:
- R; a relative scalar of the correct type, belonging to this absolute vector type
-