## Class 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
Modifier and Type Method Description
Vector add​(double c)
Add a constant to all entries in this vector.
Vector add​(Vector that)
$$this + that$$
double angle​(Vector that)
Measure the angle, $$\theta$$, between this and that.
Vector deepCopy()
The implementation returns an instance created from this by the copy constructor of the class, or just this if the instance itself is immutable.
Vector divide​(Vector that)
Divide this by that, entry-by-entry.
double get​(int i)
Get the value at position i.
double innerProduct​(Vector that)
Inner product in the Euclidean space is the dot product.
Vector minus​(double c)
Subtract a constant from all entries in this vector.
Vector minus​(Vector that)
$$this - that$$
Vector multiply​(Vector that)
Multiply this by that, entry-by-entry.
double norm()
Compute the length or magnitude or Euclidean norm of a vector, namely, $$\|v\|$$.
double norm​(double p)
Gets the $$L^p$$-norm $$\|v\|_p$$ of this vector.
Vector opposite()
Get the opposite of this vector.
Vector pow​(double c)
Take the exponentiation of all entries in this vector, entry-by-entry.
Vector scaled​(double c)
Scale this vector by a constant, entry-by-entry.
Vector scaled​(Real c)
Scale this vector by a constant, entry-by-entry.
void set​(int i, double value)
Deprecated.
int size()
Get the length of this vector.
double[] toArray()
Cast this vector into a 1D double[].
String toString()
Vector ZERO()
Get a 0-vector that has the same length as this vector.
• ### Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
• ### Constructor Detail

• #### SubVectorRef

public SubVectorRef​(Vector v,
int from,
int to)
• ### Method Detail

• #### size

public int size()
Description copied from interface: Vector
Get the length of this vector.
Returns:
the vector length
• #### get

public double get​(int i)
Description copied from interface: Vector
Get 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: Vector
Change 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

public Vector add​(double c)
Description copied from interface: Vector
Add a constant to all entries in this vector.
Specified by:
add in interface Vector
Parameters:
c - a constant
Returns:
$$v + c$$
• #### minus

public Vector minus​(double c)
Description copied from interface: Vector
Subtract a constant from all entries in this vector.
Specified by:
minus in interface Vector
Parameters:
c - a constant
Returns:
$$v - c$$
• #### innerProduct

public double innerProduct​(Vector that)
Description copied from interface: Vector
Inner product in the Euclidean space is the dot product.
Specified by:
innerProduct in interface HilbertSpace<Vector,​Real>
Specified by:
innerProduct in interface Vector
Parameters:
that - a vector
Returns:
$$this \cdot that$$
Wikipedia: Dot product
• #### pow

public Vector pow​(double c)
Description copied from interface: Vector
Take the exponentiation of all entries in this vector, entry-by-entry.
Specified by:
pow in interface Vector
Parameters:
c - a constant
Returns:
$$v ^ c$$
• #### scaled

public Vector scaled​(double c)
Description copied from interface: Vector
Scale 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:
scaled in interface Vector
Parameters:
c - a constant
Returns:
$$c \times this$$
• #### scaled

public Vector scaled​(Real c)
Description copied from interface: Vector
Scale 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:
scaled in interface Vector
Specified by:
scaled in interface VectorSpace<Vector,​Real>
Parameters:
c - a constant
Returns:
$$c \times this$$
Wikipedia: Scalar multiplication
• #### norm

public double norm()
Description copied from interface: Vector
Compute the length or magnitude or Euclidean norm of a vector, namely, $$\|v\|$$.
Specified by:
norm in interface BanachSpace<Vector,​Real>
Specified by:
norm in interface Vector
Returns:
the Euclidean norm
Wikipedia: Norm (mathematics)
• #### opposite

public Vector opposite()
Description copied from interface: Vector
Get the opposite of this vector.
Specified by:
opposite in interface AbelianGroup<Vector>
Specified by:
opposite in interface Vector
Returns:
-v
• #### toArray

public double[] toArray()
Description copied from interface: Vector
Cast this vector into a 1D double[].
Returns:
a copy of all vector entries as a double[]
• #### deepCopy

public Vector deepCopy()
Description copied from interface: DeepCopyable
The implementation returns an instance created from this by the copy constructor of the class, or just this if the instance itself is immutable.
Returns:
an independent (deep) copy of the instance
• #### toString

public String toString()
Overrides:
toString in class Object

public Vector add​(Vector that)
Description copied from interface: Vector
$$this + that$$
Specified by:
add in interface AbelianGroup<Vector>
Specified by:
add in interface Vector
Parameters:
that - a vector
Returns:
$$this + that$$
• #### minus

public Vector minus​(Vector that)
Description copied from interface: Vector
$$this - that$$
Specified by:
minus in interface AbelianGroup<Vector>
Specified by:
minus in interface Vector
Parameters:
that - a vector
Returns:
$$this - that$$
• #### multiply

public Vector multiply​(Vector that)
Description copied from interface: Vector
Multiply this by that, entry-by-entry.
Specified by:
multiply in interface Vector
Parameters:
that - a vector
Returns:
$$this \cdot that$$
• #### divide

public Vector divide​(Vector that)
Description copied from interface: Vector
Divide this by that, entry-by-entry.
Specified by:
divide in interface Vector
Parameters:
that - a vector
Returns:
$$this / that$$
• #### angle

public double angle​(Vector that)
Description copied from interface: Vector
Measure the angle, $$\theta$$, between this and that. That is, $this \cdot that = \|this\| \times \|that\| \times \cos \theta$
Specified by:
angle in interface HilbertSpace<Vector,​Real>
Specified by:
angle in interface Vector
Parameters:
that - a vector
Returns:
the angle, $$\theta$$, between this and that
• #### ZERO

public Vector ZERO()
Description copied from interface: Vector
Get a 0-vector that has the same length as this vector.
Specified by:
ZERO in interface AbelianGroup<Vector>
Specified by:
ZERO in interface Vector
Returns:
the 0-vector