Class DenseVector
- java.lang.Object
-
- dev.nm.algebra.linear.vector.doubles.dense.DenseVector
-
- All Implemented Interfaces:
Vector,AbelianGroup<Vector>,BanachSpace<Vector,Real>,HilbertSpace<Vector,Real>,VectorSpace<Vector,Real>,DeepCopyable
public class DenseVector extends Object implements Vector
This class implements the standard, dense,doublebased vector representation.- See Also:
- Wikipedia: Euclidean vector
-
-
Constructor Summary
Constructors Constructor Description DenseVector(double... data)Constructs a vector, initialized by adouble[].DenseVector(int length)Constructs a vector.DenseVector(int[] data)Constructs a vector, initialized by aint[].DenseVector(int length, double value)Constructs a vector, initialized by repeating a value.DenseVector(Matrix A)Constructs a vector from a column or row matrix.DenseVector(DenseVector vector)Copy constructor.DenseVector(Vector v)Casts any vector to aDenseVector.DenseVector(Double[] data)Constructs a vector, initialized by aDouble[].DenseVector(Collection<? extends Number> data)Constructs a vector, initialized by a collection, with order defined by its iterator.DenseVector(List<Double> data)Constructs a vector, initialized by aList<Double>.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DenseVectoradd(double scalar)Add a constant to all entries in this vector.DenseVectoradd(DenseVector that)Vectoradd(Vector that)\(this + that\)doubleangle(Vector that)Measure the angle, \(\theta\), betweenthisandthat.DenseVectordeepCopy()The implementation returns an instance created fromthisby the copy constructor of the class, or justthisif the instance itself is immutable.DenseVectordivide(DenseVector that)Vectordivide(Vector that)Dividethisbythat, entry-by-entry.booleanequals(Object obj)doubleget(int i)Get the value at position i.inthashCode()doubleinnerProduct(DenseVector that)doubleinnerProduct(Vector that)Inner product in the Euclidean space is the dot product.DenseVectorminus(double scalar)Subtract a constant from all entries in this vector.DenseVectorminus(DenseVector that)Vectorminus(Vector that)\(this - that\)DenseVectormultiply(DenseVector 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.DenseVectoropposite()Get the opposite of this vector.DenseVectorpow(double scalar)Take the exponentiation of all entries in this vector, entry-by-entry.DenseVectorscaled(double c)Scale this vector by a constant, entry-by-entry.DenseVectorscaled(Real c)Scale this vector by a constant, entry-by-entry.voidset(int i, double value)Change the value of an entry in this vector.voidset(int from, DenseVector replacement)Replaces a sub-vectorv[from : replacement.length]by a replacement starting at positionfrom.intsize()Get the length of this vector.double[]toArray()Cast this vector into a 1Ddouble[].StringtoString()DenseVectorZERO()Get a 0-vector that has the same length as this vector.
-
-
-
Constructor Detail
-
DenseVector
public DenseVector(int length)
Constructs a vector.- Parameters:
length- the length of this vector
-
DenseVector
public DenseVector(int length, double value)Constructs a vector, initialized by repeating a value.- Parameters:
length- the length of this vectorvalue- the initial value
-
DenseVector
public DenseVector(double... data)
Constructs a vector, initialized by adouble[].- Parameters:
data- an 1D array
-
DenseVector
public DenseVector(Double[] data)
Constructs a vector, initialized by aDouble[].- Parameters:
data- an 1D array
-
DenseVector
public DenseVector(List<Double> data)
Constructs a vector, initialized by aList<Double>.- Parameters:
data- an 1D array
-
DenseVector
public DenseVector(Collection<? extends Number> data)
Constructs a vector, initialized by a collection, with order defined by its iterator. Only the real/double part is used, by calling Number.doubleValue().- Parameters:
data- a collection of Number
-
DenseVector
public DenseVector(int[] data)
Constructs a vector, initialized by aint[].- Parameters:
data- an 1D array
-
DenseVector
public DenseVector(Matrix A)
Constructs a vector from a column or row matrix.- Parameters:
A- a column or row matrix
-
DenseVector
public DenseVector(Vector v)
Casts any vector to aDenseVector.- Parameters:
v- a vector
-
DenseVector
public DenseVector(DenseVector vector)
Copy constructor.- Parameters:
vector- a vector
-
-
Method Detail
-
size
public int size()
Description copied from interface:VectorGet the length of this vector.
-
set
public void set(int i, double value)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.
-
set
public void set(int from, DenseVector replacement)Replaces a sub-vectorv[from : replacement.length]by a replacement starting at positionfrom.- Parameters:
from- the starting position of the replacementreplacement- a vector for substitution- Throws:
IllegalArgumentException- if the replacement length exceeds the end of this vector
-
get
public double get(int i)
Description copied from interface:VectorGet the value at position i.
-
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\)
-
add
public DenseVector add(DenseVector 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\)
-
minus
public DenseVector minus(DenseVector that)
-
scaled
public DenseVector 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 DenseVector 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
-
opposite
public DenseVector 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
-
multiply
public Vector multiply(Vector that)
Description copied from interface:VectorMultiplythisbythat, entry-by-entry.
-
multiply
public DenseVector multiply(DenseVector that)
-
divide
public Vector divide(Vector that)
Description copied from interface:VectorDividethisbythat, entry-by-entry.
-
divide
public DenseVector divide(DenseVector that)
-
add
public DenseVector add(double scalar)
Description copied from interface:VectorAdd a constant to all entries in this vector.
-
minus
public DenseVector minus(double scalar)
Description copied from interface:VectorSubtract a constant from all entries in this vector.
-
pow
public DenseVector pow(double scalar)
Description copied from interface:VectorTake the exponentiation of all entries in this vector, 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)
-
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)
-
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 \]
-
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
-
innerProduct
public double innerProduct(DenseVector that)
-
ZERO
public DenseVector ZERO()
Description copied from interface:VectorGet a 0-vector that has the same length as this vector.- Specified by:
ZEROin interfaceAbelianGroup<Vector>- Specified by:
ZEROin interfaceVector- Returns:
- the 0-vector
-
toArray
public double[] toArray()
Description copied from interface:VectorCast this vector into a 1Ddouble[].
-
deepCopy
public DenseVector 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.- Specified by:
deepCopyin interfaceDeepCopyable- Specified by:
deepCopyin interfaceVector- Returns:
- an independent (deep) copy of the instance
-
-