Ignite - In-Memory Database and Caching Platform
org.apache.ignite.ml.math.primitives.vector

## Interface Vector

• ### Nested Class Summary

Nested Classes
Modifier and Type Interface and Description
`static interface ` `Vector.Element`
Holder for vector's element.
• ### Method Summary

All Methods
Modifier and Type Method and Description
`Iterable<Vector.Element>` `all()`
Gets iterator over all elements in this vector.
`Spliterator<Double>` `allSpliterator()`
Gets spliterator for all values in this vector.
`default double[]` `asArray()`
Returns array of doubles corresponds to vector components.
`Vector` `assign(double val)`
Assigns given value to all elements of this vector.
`Vector` `assign(double[] vals)`
Assigns values from given array to this vector.
`Vector` `assign(IntToDoubleFunction fun)`
Assigns each vector element to the value generated by given function.
`Vector` `assign(Vector vec)`
Copies values from the argument vector to this one.
`void` ```compute(int i, IgniteIntDoubleToDoubleBiFunction f)```
Replace vector entry with value oldVal at i with result of computing f(i, oldVal).
`Vector` `copy()`
Creates new copy of this vector.
`Matrix` `cross(Vector vec)`
Gets the cross product of this vector and the other vector.
`Vector` `divide(double x)`
Creates new vector containing values from this vector divided by the argument.
`double` `dot(Vector vec)`
Gets dot product of two vectors.
`<T> T` ```foldMap(IgniteBiFunction<T,Double,T> foldFun, IgniteDoubleFunction<Double> mapFun, T zeroVal)```
Folds this vector into a single value.
`<T> T` ```foldMap(Vector vec, IgniteBiFunction<T,Double,T> foldFun, IgniteBiFunction<Double,Double,Double> combFun, T zeroVal)```
Combines & maps two vector and folds them into a single value.
`double` `get(int idx)`
Gets the value at specified index.
`double` `getDistanceSquared(Vector vec)`
Get the square of the distance between this vector and the argument vector.
`Vector.Element` `getElement(int idx)`
Gets element at the given index.
`double` `getLengthSquared()`
Gets the sum of squares of all elements in this vector.
`VectorStorage` `getStorage()`
Gets vector storage model.
`double` `getX(int idx)`
Gets the value at specified index without checking for index boundaries.
`IgniteUuid` `guid()`
Auto-generated globally unique vector ID.
`Vector` ```increment(int idx, double val)```
Increments value at given index.
`Vector` ```incrementX(int idx, double val)```
Increments value at given index without checking for index boundaries.
`double` `kNorm(double power)`
Gets the k-norm of the vector.
`Vector` `like(int crd)`
Creates new empty vector of the same underlying class but of different cardinality.
`Matrix` ```likeMatrix(int rows, int cols)```
Creates new matrix of compatible flavor with given size.
`Vector` `logNormalize()`
Creates new vector containing the `log(1 + entry) / L_2 norm` values of this vector.
`Vector` `logNormalize(double power)`
Creates new vector with a normalized value calculated as `log_power(1 + entry) / L_power norm`.
`Vector` ```map(IgniteBiFunction<Double,Double,Double> fun, double y)```
Maps all elements of this vector by applying given function to each element with a constant second parameter `y`.
`Vector` `map(IgniteDoubleFunction<Double> fun)`
Maps all values in this vector through a given function.
`Vector` ```map(Vector vec, IgniteBiFunction<Double,Double,Double> fun)```
Maps all values in this vector through a given function.
`Vector.Element` `maxElement()`
Gets maximum element in this vector.
`double` `maxValue()`
Gets maximum value in this vector.
`Vector.Element` `minElement()`
Gets minimal element in this vector.
`Vector` `minus(Vector vec)`
Creates new vector containing element by element difference between this vector and the argument one.
`double` `minValue()`
Gets minimal value in this vector.
`int` `nonZeroElements()`
Gets number of non-zero elements in this vector.
`Iterable<Vector.Element>` `nonZeroes()`
Iterates ove all non-zero elements in this vector.
`Spliterator<Double>` `nonZeroSpliterator()`
Gets spliterator for all non-zero values in this vector.
`Vector` `normalize()`
Creates new vector containing the normalized (L_2 norm) values of this vector.
`Vector` `normalize(double power)`
Creates new vector containing the normalized (L_power norm) values of this vector.
`Vector` `plus(double x)`
Creates new vector containing sum of each element in this vector and argument.
`Vector` `plus(Vector vec)`
Creates new vector containing element by element sum from both vectors.
`Vector` ```set(int idx, double val)```
Sets value.
`Vector` ```setX(int idx, double val)```
Sets value without checking for index boundaries.
`int` `size()`
Gets cardinality of this vector (maximum number of the elements).
`Vector` `sort()`
Sorts this vector in ascending order.
`double` `sum()`
Gets the sum of all elements in this vector.
`Vector` `times(double x)`
Gets a new vector that contains product of each element and the argument.
`Vector` `times(Vector vec)`
Gets a new vector that is an element-wie product of this vector and the argument.
`Matrix` `toMatrix(boolean rowLike)`
Converts this vector into [N x 1] or [1 x N] matrix where N is this vector cardinality.
`Matrix` ```toMatrixPlusOne(boolean rowLike, double zeroVal)```
Converts this vector into [N+1 x 1] or [1 x N+1] matrix where N is this vector cardinality
`Vector` ```viewPart(int off, int len)```
• ### Methods inherited from interface org.apache.ignite.ml.math.MetaAttributes

`getAttribute, getMetaStorage, hasAttribute, removeAttribute, setAttribute`
• ### Methods inherited from interface java.io.Externalizable

`readExternal, writeExternal`
• ### Methods inherited from interface org.apache.ignite.ml.math.StorageOpsMetrics

`isArrayBased, isDense, isDistributed, isRandomAccess, isSequentialAccess`
• ### Methods inherited from interface org.apache.ignite.ml.math.Destroyable

`destroy`
• ### Method Detail

• #### size

`int size()`
Gets cardinality of this vector (maximum number of the elements).
Returns:
This vector's cardinality.
• #### copy

`Vector copy()`
Creates new copy of this vector.
Returns:
New copy vector.
• #### all

`Iterable<Vector.Element> all()`
Gets iterator over all elements in this vector. NOTE: implementation can choose to reuse `Vector.Element` instance so you need to copy it if you want to retain it outside of iteration.
Returns:
Iterator.
• #### nonZeroes

`Iterable<Vector.Element> nonZeroes()`
Iterates ove all non-zero elements in this vector. NOTE: implementation can choose to reuse `Vector.Element` instance so you need to copy it if you want to retain it outside of iteration.
Returns:
Iterator.
• #### allSpliterator

`Spliterator<Double> allSpliterator()`
Gets spliterator for all values in this vector.
Returns:
Spliterator for all values.
• #### nonZeroSpliterator

`Spliterator<Double> nonZeroSpliterator()`
Gets spliterator for all non-zero values in this vector.
Returns:
Spliterator for all non-zero values.
• #### sort

`Vector sort()`
Sorts this vector in ascending order.
• #### getElement

`Vector.Element getElement(int idx)`
Gets element at the given index. NOTE: implementation can choose to reuse `Vector.Element` instance so you need to copy it if you want to retain it outside of iteration.
Parameters:
`idx` - Element's index.
Returns:
Vector's element at the given index.
Throws:
`IndexException` - Throw if index is out of bounds.
• #### assign

`Vector assign(double val)`
Assigns given value to all elements of this vector.
Parameters:
`val` - Value to assign.
Returns:
This vector.
• #### assign

`Vector assign(double[] vals)`
Assigns values from given array to this vector.
Parameters:
`vals` - Values to assign.
Returns:
This vector.
Throws:
`CardinalityException` - Thrown if cardinalities mismatch.
• #### assign

`Vector assign(Vector vec)`
Copies values from the argument vector to this one.
Parameters:
`vec` - Argument vector.
Returns:
This vector.
Throws:
`CardinalityException` - Thrown if cardinalities mismatch.
• #### assign

`Vector assign(IntToDoubleFunction fun)`
Assigns each vector element to the value generated by given function.
Parameters:
`fun` - Function that takes the index and returns value.
Returns:
This vector.
• #### map

`Vector map(IgniteDoubleFunction<Double> fun)`
Maps all values in this vector through a given function.
Parameters:
`fun` - Mapping function.
Returns:
This vector.
• #### map

```Vector map(Vector vec,
IgniteBiFunction<Double,Double,Double> fun)```
Maps all values in this vector through a given function. For this vector `A`, argument vector `B` and the function `F` this method maps every element `x` as: `A(x) = F(A(x), B(x))`
Parameters:
`vec` - Argument vector.
`fun` - Mapping function.
Returns:
This function.
Throws:
`CardinalityException` - Thrown if cardinalities mismatch.
• #### map

```Vector map(IgniteBiFunction<Double,Double,Double> fun,
double y)```
Maps all elements of this vector by applying given function to each element with a constant second parameter `y`.
Parameters:
`fun` - Mapping function.
`y` - Second parameter for mapping function.
Returns:
This vector.
• #### divide

`Vector divide(double x)`
Creates new vector containing values from this vector divided by the argument.
Parameters:
`x` - Division argument.
Returns:
New vector.
• #### dot

`double dot(Vector vec)`
Gets dot product of two vectors.
Parameters:
`vec` - Argument vector.
Returns:
Dot product of two vectors.
• #### get

`double get(int idx)`
Gets the value at specified index.
Parameters:
`idx` - Vector index.
Returns:
Vector value.
Throws:
`IndexException` - Throw if index is out of bounds.
• #### getX

`double getX(int idx)`
Gets the value at specified index without checking for index boundaries.
Parameters:
`idx` - Vector index.
Returns:
Vector value.
• #### like

`Vector like(int crd)`
Creates new empty vector of the same underlying class but of different cardinality.
Parameters:
`crd` - Cardinality for new vector.
Returns:
New vector.
• #### likeMatrix

```Matrix likeMatrix(int rows,
int cols)```
Creates new matrix of compatible flavor with given size.
Parameters:
`rows` - Number of rows.
`cols` - Number of columns.
Returns:
New matrix.
• #### toMatrix

`Matrix toMatrix(boolean rowLike)`
Converts this vector into [N x 1] or [1 x N] matrix where N is this vector cardinality.
Parameters:
`rowLike` - `true` for rowLike [N x 1], or `false` for column [1 x N] matrix.
Returns:
Newly created matrix.
• #### toMatrixPlusOne

```Matrix toMatrixPlusOne(boolean rowLike,
double zeroVal)```
Converts this vector into [N+1 x 1] or [1 x N+1] matrix where N is this vector cardinality. (0,0) element of this matrix will be `zeroVal` parameter.
Parameters:
`rowLike` - `true` for rowLike [N+1 x 1], or `false` for column [1 x N+1] matrix.
Returns:
Newly created matrix.
• #### minus

`Vector minus(Vector vec)`
Creates new vector containing element by element difference between this vector and the argument one.
Parameters:
`vec` - Argument vector.
Returns:
New vector.
Throws:
`CardinalityException` - Thrown if cardinalities mismatch.
• #### normalize

`Vector normalize()`
Creates new vector containing the normalized (L_2 norm) values of this vector.
Returns:
New vector.
• #### normalize

`Vector normalize(double power)`
Creates new vector containing the normalized (L_power norm) values of this vector. See http://en.wikipedia.org/wiki/Lp_space for details.
Parameters:
`power` - The power to use. Must be >= 0. May also be `Double.POSITIVE_INFINITY`.
Returns:
New vector `x` such that `norm(x, power) == 1`
• #### logNormalize

`Vector logNormalize()`
Creates new vector containing the `log(1 + entry) / L_2 norm` values of this vector.
Returns:
New vector.
• #### logNormalize

`Vector logNormalize(double power)`
Creates new vector with a normalized value calculated as `log_power(1 + entry) / L_power norm`.
Parameters:
`power` - The power to use. Must be > 1. Cannot be `Double.POSITIVE_INFINITY`.
Returns:
New vector
• #### kNorm

`double kNorm(double power)`
Gets the k-norm of the vector. See http://en.wikipedia.org/wiki/Lp_space for more details.
Parameters:
`power` - The power to use.
`normalize(double)`
• #### minValue

`double minValue()`
Gets minimal value in this vector.
Returns:
Minimal value.
• #### maxValue

`double maxValue()`
Gets maximum value in this vector.
Returns:
Maximum c.
• #### minElement

`Vector.Element minElement()`
Gets minimal element in this vector.
Returns:
Minimal element.
• #### maxElement

`Vector.Element maxElement()`
Gets maximum element in this vector.
Returns:
Maximum element.
• #### plus

`Vector plus(double x)`
Creates new vector containing sum of each element in this vector and argument.
Parameters:
`x` - Argument value.
Returns:
New vector.
• #### plus

`Vector plus(Vector vec)`
Creates new vector containing element by element sum from both vectors.
Parameters:
`vec` - Other argument vector to add.
Returns:
New vector.
Throws:
`CardinalityException` - Thrown if cardinalities mismatch.
• #### set

```Vector set(int idx,
double val)```
Sets value.
Parameters:
`idx` - Vector index to set value at.
`val` - Value to set.
Returns:
This vector.
Throws:
`IndexException` - Throw if index is out of bounds.
• #### setX

```Vector setX(int idx,
double val)```
Sets value without checking for index boundaries.
Parameters:
`idx` - Vector index to set value at.
`val` - Value to set.
Returns:
This vector.
• #### incrementX

```Vector incrementX(int idx,
double val)```
Increments value at given index without checking for index boundaries.
Parameters:
`idx` - Vector index.
`val` - Increment value.
Returns:
This vector.
• #### increment

```Vector increment(int idx,
double val)```
Increments value at given index.
Parameters:
`idx` - Vector index.
`val` - Increment value.
Returns:
This vector.
Throws:
`IndexException` - Throw if index is out of bounds.
• #### nonZeroElements

`int nonZeroElements()`
Gets number of non-zero elements in this vector.
Returns:
Number of non-zero elements in this vector.
• #### times

`Vector times(double x)`
Gets a new vector that contains product of each element and the argument.
Parameters:
`x` - Multiply argument.
Returns:
New vector.
• #### times

`Vector times(Vector vec)`
Gets a new vector that is an element-wie product of this vector and the argument.
Parameters:
`vec` - Vector to multiply by.
Returns:
New vector.
Throws:
`CardinalityException` - Thrown if cardinalities mismatch.
• #### viewPart

```Vector viewPart(int off,
int len)```
Parameters:
`off` - Offset into parent vector.
`len` - Length of the view.
• #### getStorage

`VectorStorage getStorage()`
Gets vector storage model.
• #### sum

`double sum()`
Gets the sum of all elements in this vector.
Returns:
Vector's sum
• #### cross

`Matrix cross(Vector vec)`
Gets the cross product of this vector and the other vector.
Parameters:
`vec` - Second vector.
Returns:
New matrix as a cross product of two vectors.
• #### foldMap

```<T> T foldMap(IgniteBiFunction<T,Double,T> foldFun,
IgniteDoubleFunction<Double> mapFun,
T zeroVal)```
Folds this vector into a single value.
Type Parameters:
`T` - Type of the folded value.
Parameters:
`foldFun` - Folding function that takes two parameters: accumulator and the current value.
`mapFun` - Mapping function that is called on each vector element before its passed to the accumulator (as its second parameter).
`zeroVal` - Zero value for fold operation.
Returns:
Folded value of this vector.
• #### foldMap

```<T> T foldMap(Vector vec,
IgniteBiFunction<T,Double,T> foldFun,
IgniteBiFunction<Double,Double,Double> combFun,
T zeroVal)```
Combines & maps two vector and folds them into a single value.
Type Parameters:
`T` - Type of the folded value.
Parameters:
`vec` - Another vector to combine with.
`foldFun` - Folding function.
`combFun` - Combine function.
`zeroVal` - Zero value for fold operation.
Returns:
Folded value of these vectors.
Throws:
`CardinalityException` - Thrown when cardinalities mismatch.
• #### getLengthSquared

`double getLengthSquared()`
Gets the sum of squares of all elements in this vector.
Returns:
Length squared value.
• #### getDistanceSquared

`double getDistanceSquared(Vector vec)`
Get the square of the distance between this vector and the argument vector.
Parameters:
`vec` - Another vector.
Returns:
Distance squared.
Throws:
`CardinalityException` - Thrown if cardinalities mismatch.
• #### guid

`IgniteUuid guid()`
Auto-generated globally unique vector ID.
Returns:
Vector GUID.
• #### compute

```void compute(int i,
IgniteIntDoubleToDoubleBiFunction f)```
Replace vector entry with value oldVal at i with result of computing f(i, oldVal).
Parameters:
`i` - Position.
`f` - Function used for replacing.
• #### asArray

`default double[] asArray()`
Returns array of doubles corresponds to vector components.
Returns:
Array of doubles.