Class SubVectorRef
- java.lang.Object
-
- dev.nm.algebra.linear.vector.doubles.SubVectorRef
-
- All Implemented Interfaces:
Vector,AbelianGroup<Vector>,BanachSpace<Vector,Real>,HilbertSpace<Vector,Real>,VectorSpace<Vector,Real>,DeepCopyable
public class SubVectorRef extends Object
Represents a sub-vector backed by the referenced vector, without data copying. Note that changes to the referenced vector will also be reflected in the sub-vector instance.
-
-
Constructor Summary
Constructors Constructor Description SubVectorRef(Vector v, int from, int to)
-
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[].StringtoString()VectorZERO()Get a 0-vector that has the same length as this vector.
-
-
-
Constructor Detail
-
SubVectorRef
public SubVectorRef(Vector v, int from, int to)
-
-
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
-
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)
-
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
-
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.
-
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 \]
-
-