Class AbstractDoubleVectorRelWithAbs<AU extends AbsoluteLinearUnit<AU,RU>,A extends AbstractDoubleScalarAbs<AU,A,RU,R>,AV extends AbstractDoubleVectorAbs<AU,A,AV,RU,R,RV>,RU extends Unit<RU>,R extends AbstractDoubleScalarRelWithAbs<AU,A,RU,R>,RV extends AbstractDoubleVectorRelWithAbs<AU,A,AV,RU,R,RV>>
- java.lang.Object
-
- org.djunits.value.AbstractValue<U,T>
-
- org.djunits.value.AbstractIndexedValue<U,S,V,DoubleVectorData>
-
- org.djunits.value.vdouble.vector.base.AbstractDoubleVector<U,S,RV>
-
- org.djunits.value.vdouble.vector.base.AbstractDoubleVectorRel<RU,R,RV>
-
- org.djunits.value.vdouble.vector.base.AbstractDoubleVectorRelWithAbs<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<R>
,Vector<RU,R,RV>
,Vector.Rel<RU,R,RV>
,Vector.RelWithAbs<AU,A,AV,RU,R,RV>
,ValueFunctions<RU,RV>
,IndexedValue<RU,R,RV>
,Relative<RU,RV>
,Value<RU,RV>
,DoubleVectorInterface<RU,R,RV>
- Direct Known Subclasses:
AngleVector
,DurationVector
,LengthVector
,TemperatureVector
public abstract class AbstractDoubleVectorRelWithAbs<AU extends AbsoluteLinearUnit<AU,RU>,A extends AbstractDoubleScalarAbs<AU,A,RU,R>,AV extends AbstractDoubleVectorAbs<AU,A,AV,RU,R,RV>,RU extends Unit<RU>,R extends AbstractDoubleScalarRelWithAbs<AU,A,RU,R>,RV extends AbstractDoubleVectorRelWithAbs<AU,A,AV,RU,R,RV>> extends AbstractDoubleVectorRel<RU,R,RV> implements Vector.RelWithAbs<AU,A,AV,RU,R,RV>
AbstractMutableDoubleVectorRelWithAbs.java.Copyright (c) 2019-2023 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.vdouble.vector.base.AbstractDoubleVector
AbstractDoubleVector.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 inherited from class org.djunits.value.vdouble.vector.base.AbstractDoubleVector
data
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractDoubleVectorRelWithAbs(DoubleVectorData data, RU unit)
Construct a new Relative Mutable DoubleVector.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract A
instantiateScalarAbsSI(double valueSI, AU displayUnit)
Instantiate a new absolute scalar for the class of this relative vector.abstract AV
instantiateVectorAbs(DoubleVectorData dvd, AU displayUnit)
Instantiate a new absolute vector of the class of this relative vector.AV
plus(AV increment)
Add an absolute vector to this relative vector.-
Methods inherited from class org.djunits.value.vdouble.vector.base.AbstractDoubleVectorRel
decrementBy, decrementBy, divide, divide, divide, divideBy, incrementBy, incrementBy, minus, multiplyBy, plus, times, times, times, zSum
-
Methods inherited from class org.djunits.value.vdouble.vector.base.AbstractDoubleVector
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, toString
-
Methods inherited from class org.djunits.value.AbstractIndexedValue
cardinality, checkCopyOnWrite, clone, getStorageType, immutable, isCopyOnWrite, isDense, isMutable, isSparse, mutable, setCopyOnWrite, setMutable
-
Methods inherited from class org.djunits.value.AbstractValue
getDisplayUnit, isAbsolute, isRelative, setDisplayUnit
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.djunits.value.vdouble.vector.base.DoubleVectorInterface
instantiateScalarSI, instantiateVector
-
Methods inherited from interface org.djunits.value.IndexedValue
cardinality, getScalarClass, getStorageType, immutable, isDense, isMutable, isSparse, mutable, toDense, toSparse
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Methods inherited from interface org.djunits.value.Value
getDisplayUnit, isAbsolute, isRelative, setDisplayUnit, toString, toString, toString, toString
-
Methods inherited from interface org.djunits.value.function.ValueFunctions
abs, ceil, floor, neg, rint
-
Methods inherited from interface org.djunits.value.base.Vector
get, getScalars, iterator, size
-
Methods inherited from interface org.djunits.value.base.Vector.Rel
divideBy, minus, multiplyBy, plus
-
-
-
-
Constructor Detail
-
AbstractDoubleVectorRelWithAbs
protected AbstractDoubleVectorRelWithAbs(DoubleVectorData data, RU unit)
Construct a new Relative Mutable DoubleVector.- Parameters:
data
- DoubleVectorData; an internal data objectunit
- RU; the unit
-
-
Method Detail
-
plus
public AV plus(AV increment)
Add an absolute vector to this relative vector. A new vector is returned. When the vector itself needs to be changed, use the increaseBy(V) method instead. 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:
plus
in interfaceVector.RelWithAbs<AU extends AbsoluteLinearUnit<AU,RU>,A extends AbstractDoubleScalarAbs<AU,A,RU,R>,AV extends AbstractDoubleVectorAbs<AU,A,AV,RU,R,RV>,RU extends Unit<RU>,R extends AbstractDoubleScalarRelWithAbs<AU,A,RU,R>,RV extends AbstractDoubleVectorRelWithAbs<AU,A,AV,RU,R,RV>>
- Parameters:
increment
- AV; the absolute vector (mutable or immutable, sparse or dense) to add to this relative vector- Returns:
- AMV; the sum of this vector and the operand as a new absolute, mutable vector
-
instantiateVectorAbs
public abstract AV instantiateVectorAbs(DoubleVectorData dvd, AU displayUnit)
Instantiate a new absolute vector of the class of this relative vector. This can be used instead of the DoubleVector.instiantiate() methods in case another vector of this relative with absolute class is known. The method is faster than DoubleVector.instantiate, and it will also work if the vector is user-defined.- Parameters:
dvd
- DoubleVectorData; the data used to instantiate the vectordisplayUnit
- AU; the display unit of the absolute vector- Returns:
- AV; an absolute vector of the correct type, belonging to this relative vector type
-
instantiateScalarAbsSI
public abstract A instantiateScalarAbsSI(double valueSI, AU displayUnit)
Instantiate a new absolute scalar for the class of this relative vector. This can be used instead of the DoubleScalar.instiantiate() methods in case a vector of this class is known. The method is faster than DoubleScalar.instantiate, and it will also work if the vector and/or scalar are user-defined.- Parameters:
valueSI
- double; the SI value of the absolute scalardisplayUnit
- AU; the unit in which the absolute value will be displayed- Returns:
- A; an absolute scalar of the correct type, belonging to this relative vector type
-
-