Class CombinedVectorByRef
- java.lang.Object
-
- dev.nm.algebra.linear.vector.doubles.CombinedVectorByRef
-
- All Implemented Interfaces:
Vector,AbelianGroup<Vector>,BanachSpace<Vector,Real>,HilbertSpace<Vector,Real>,VectorSpace<Vector,Real>,DeepCopyable
public class CombinedVectorByRef extends Object
For efficiency, this wrapper concatenates two or more vectors by references (without data copying). Note that changes to the referenced vectors will also be reflected in the combined instance.
-
-
Constructor Summary
Constructors Constructor Description CombinedVectorByRef(Vector v1, Vector v2, Vector... others)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description Vectoradd(double c)Add a constant to all entries in this vector.Vectoradd(Vector that)\(this + that\)doubleangle(Vector that)Measure the angle, \(\theta\), betweenthisandthat.VectordeepCopy()The implementation returns an instance created fromthisby the copy constructor of the class, or justthisif the instance itself is immutable.Vectordivide(Vector that)Dividethisbythat, entry-by-entry.doubleget(int i)Get the value at position i.doubleinnerProduct(Vector that)Inner product in the Euclidean space is the dot product.Vectorminus(double c)Subtract a constant from all entries in this vector.Vectorminus(Vector that)\(this - that\)Vectormultiply(Vector that)Multiplythisbythat, entry-by-entry.doublenorm()Compute the length or magnitude or Euclidean norm of a vector, namely, \(\|v\|\).doublenorm(double p)Gets the \(L^p\)-norm \(\|v\|_p\) of this vector.Vectoropposite()Get the opposite of this vector.Vectorpow(double c)Take the exponentiation of all entries in this vector, entry-by-entry.Vectorscaled(double c)Scale this vector by a constant, entry-by-entry.Vectorscaled(Real c)Scale this vector by a constant, entry-by-entry.voidset(int i, double value)Deprecated.intsize()Get the length of this vector.double[]toArray()Cast this vector into a 1Ddouble[].VectorZERO()Get a 0-vector that has the same length as this vector.
-
-
-
Method Detail
-
size
public int size()
Description copied from interface:VectorGet the length of this vector.- Returns:
- the vector length
-
get
public double get(int i)
Description copied from interface:VectorGet the value at position i.- Parameters:
i- the position of a vector entry- Returns:
- v[i]
-
set
@Deprecated public void set(int i, double value)
Deprecated.Description copied from interface:VectorChange the value of an entry in this vector. This is the only method that may change the entries of a vector.- Parameters:
i- the index of the entry to change. The indices are counting from 1, NOT 0.value- the value to change to
-
toArray
public double[] toArray()
Description copied from interface:VectorCast this vector into a 1Ddouble[].- Returns:
- a copy of all vector entries as a
double[]
-
deepCopy
public Vector deepCopy()
Description copied from interface:DeepCopyableThe implementation returns an instance created fromthisby the copy constructor of the class, or justthisif the instance itself is immutable.- Returns:
- an independent (deep) copy of the instance
-
add
public Vector add(Vector that)
Description copied from interface:Vector\(this + that\)- Specified by:
addin interfaceAbelianGroup<Vector>- Specified by:
addin interfaceVector- Parameters:
that- a vector- Returns:
- \(this + that\)
-
minus
public Vector minus(Vector that)
Description copied from interface:Vector\(this - that\)- Specified by:
minusin interfaceAbelianGroup<Vector>- Specified by:
minusin interfaceVector- Parameters:
that- a vector- Returns:
- \(this - that\)
-
multiply
public Vector multiply(Vector that)
Description copied from interface:VectorMultiplythisbythat, entry-by-entry.
-
divide
public Vector divide(Vector that)
Description copied from interface:VectorDividethisbythat, entry-by-entry.
-
add
public Vector add(double c)
Description copied from interface:VectorAdd a constant to all entries in this vector.
-
minus
public Vector minus(double c)
Description copied from interface:VectorSubtract a constant from all entries in this vector.
-
innerProduct
public double innerProduct(Vector that)
Description copied from interface:VectorInner product in the Euclidean space is the dot product.- Specified by:
innerProductin interfaceHilbertSpace<Vector,Real>- Specified by:
innerProductin interfaceVector- Parameters:
that- a vector- Returns:
- \(this \cdot that\)
- See Also:
- Wikipedia: Dot product
-
pow
public Vector pow(double c)
Description copied from interface:VectorTake the exponentiation of all entries in this vector, entry-by-entry.
-
scaled
public Vector scaled(double c)
Description copied from interface:VectorScale this vector by a constant, entry-by-entry. Here is a way to get a unit version of the vector:vector.scaled(1. / vector.norm())
-
scaled
public Vector scaled(Real c)
Description copied from interface:VectorScale this vector by a constant, entry-by-entry. Here is a way to get a unit version of the vector:vector.scaled(1. / vector.norm())- Specified by:
scaledin interfaceVector- Specified by:
scaledin interfaceVectorSpace<Vector,Real>- Parameters:
c- a constant- Returns:
- \(c \times this\)
- See Also:
- Wikipedia: Scalar multiplication
-
norm
public double norm()
Description copied from interface:VectorCompute the length or magnitude or Euclidean norm of a vector, namely, \(\|v\|\).- Specified by:
normin interfaceBanachSpace<Vector,Real>- Specified by:
normin interfaceVector- Returns:
- the Euclidean norm
- See Also:
- Wikipedia: Norm (mathematics)
-
norm
public double norm(double p)
Description copied from interface:VectorGets the \(L^p\)-norm \(\|v\|_p\) of this vector.- When p is finite, \(\|v\|_p = \sum_{i}|v_i^p|^\frac{1}{p}\).
- When p is \(+\infty\) (
Double.POSITIVE_INFINITY), \(\|v\|_p = \max|v_i|\). - When p is \(-\infty\) (
Double.NEGATIVE_INFINITY), \(\|v\|_p = \min|v_i|\).
- Specified by:
normin interfaceVector- Parameters:
p- p ≥ 1, orDouble.POSITIVE_INFINITYorDouble.NEGATIVE_INFINITY- Returns:
- \(\|v\|_p\)
- See Also:
- Wikipedia: Norm (mathematics)
-
angle
public double angle(Vector that)
Description copied from interface:VectorMeasure the angle, \(\theta\), betweenthisandthat. That is, \[ this \cdot that = \|this\| \times \|that\| \times \cos \theta \]
-
opposite
public Vector opposite()
Description copied from interface:VectorGet the opposite of this vector.- Specified by:
oppositein interfaceAbelianGroup<Vector>- Specified by:
oppositein interfaceVector- Returns:
- -v
- See Also:
- Wikipedia: Additive inverse
-
-