Repository: ignite Updated Branches: refs/heads/ignite-2.0 1968e4f59 -> 7378bc38a
IGNITE-5018 review and improve javadocs in ML module Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/33079fc9 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/33079fc9 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/33079fc9 Branch: refs/heads/ignite-2.0 Commit: 33079fc9c6fb6970ff24e88466e5edbf41ff1a28 Parents: 1968e4f Author: Oleg Ignatenko <[email protected]> Authored: Mon Apr 24 13:18:40 2017 +0300 Committer: Anton Vinogradov <[email protected]> Committed: Mon Apr 24 13:18:40 2017 +0300 ---------------------------------------------------------------------- .../java/org/apache/ignite/ml/math/Algebra.java | 89 +++++++++------- .../ignite/ml/math/IdentityValueMapper.java | 3 +- .../java/org/apache/ignite/ml/math/Matrix.java | 33 +++--- .../org/apache/ignite/ml/math/MurmurHash.java | 16 +-- .../java/org/apache/ignite/ml/math/Tracer.java | 4 +- .../java/org/apache/ignite/ml/math/Vector.java | 3 +- .../decompositions/CholeskyDecomposition.java | 8 +- .../math/decompositions/EigenDecomposition.java | 4 +- .../ml/math/decompositions/LUDecomposition.java | 8 +- .../ignite/ml/math/functions/Functions.java | 21 +++- .../ml/math/impls/matrix/PivotedMatrixView.java | 3 +- .../impls/matrix/SparseDistributedMatrix.java | 12 +-- .../storage/matrix/CacheMatrixStorage.java | 16 ++- .../matrix/DenseOffHeapMatrixStorage.java | 15 ++- .../storage/matrix/FunctionMatrixStorage.java | 17 +-- .../matrix/SparseLocalOnHeapMatrixStorage.java | 20 ++-- .../storage/vector/CacheVectorStorage.java | 13 +-- .../storage/vector/ConstantVectorStorage.java | 10 +- .../storage/vector/DelegateVectorStorage.java | 1 + .../storage/vector/FunctionVectorStorage.java | 17 +-- .../storage/vector/MatrixVectorStorage.java | 19 ++-- .../storage/vector/PivotedVectorStorage.java | 16 +-- .../SingleElementVectorDelegateStorage.java | 13 +-- .../vector/SingleElementVectorStorage.java | 11 +- .../vector/SparseLocalOffHeapVectorStorage.java | 3 + .../vector/SparseLocalOnHeapVectorStorage.java | 11 +- .../ml/math/impls/vector/AbstractVector.java | 1 + .../ml/math/impls/vector/DelegatingVector.java | 1 + .../ml/math/impls/vector/MatrixVectorView.java | 20 ++-- .../ml/math/impls/vector/PivotedVectorView.java | 14 +-- .../ml/math/impls/vector/RandomVector.java | 4 +- .../math/impls/vector/SingleElementVector.java | 103 +------------------ .../org/apache/ignite/ml/math/TracerTest.java | 12 ++- .../ml/math/impls/matrix/CacheMatrixTest.java | 10 +- .../impls/matrix/MatrixKeyMapperForTests.java | 19 ++-- .../storage/matrix/MatrixStorageFixtures.java | 19 ++-- .../SparseLocalOffHeapVectorStorageTest.java | 3 +- .../math/impls/vector/AbstractVectorTest.java | 42 ++++---- .../ml/math/impls/vector/CacheVectorTest.java | 5 +- 39 files changed, 331 insertions(+), 308 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/Algebra.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/Algebra.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/Algebra.java index b13d9fc..c54e390 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/Algebra.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/Algebra.java @@ -31,7 +31,8 @@ package org.apache.ignite.ml.math; * Lifted from Apache Mahout. */ public class Algebra extends Constants { - /** */ private static final double[] STIRLING_CORRECTION = { + /** */ + private static final double[] STIRLING_CORRECTION = { 0.0, 8.106146679532726e-02, 4.134069595540929e-02, 2.767792568499834e-02, 2.079067210376509e-02, @@ -50,7 +51,8 @@ public class Algebra extends Constants { 2.873449362352470e-03, 2.777674929752690e-03, }; - /** */ private static final double[] LOG_FACTORIALS = { + /** */ + private static final double[] LOG_FACTORIALS = { 0.00000000000000000, 0.00000000000000000, 0.69314718055994531, 1.79175946922805500, 3.17805383034794562, 4.78749174278204599, 6.57925121201010100, 8.52516136106541430, 10.60460290274525023, @@ -63,7 +65,8 @@ public class Algebra extends Constants { 64.55753862700633106, 67.88974313718153498, 71.25703896716800901 }; - /** */ private static final long[] LONG_FACTORIALS = { + /** */ + private static final long[] LONG_FACTORIALS = { 1L, 1L, 2L, @@ -87,7 +90,8 @@ public class Algebra extends Constants { 2432902008176640000L }; - /** */ private static final double[] DOUBLE_FACTORIALS = { + /** */ + private static final double[] DOUBLE_FACTORIALS = { 5.109094217170944E19, 1.1240007277776077E21, 2.585201673888498E22, @@ -337,19 +341,27 @@ public class Algebra extends Constants { /** * Evaluates the series of Chebyshev polynomials Ti at argument x/2. The series is given by - * <pre> - * N-1 - * - ' - * y = > coef[i] T (x/2) - * - i - * i=0 + * <pre class="snippet"> + * N-1 + * - ' + * y = > coef[i] T (x/2) + * - i + * i=0 * </pre> * Coefficients are stored in reverse order, i.e. the zero order term is last in the array. Note N is the number of - * coefficients, not the order. <p> If coefficients are for the interval a to b, x must have been transformed to x + * coefficients, not the order. + * <p> + * If coefficients are for the interval a to b, x must have been transformed to x * -< 2(2x - b - a)/(b-a) before entering the routine. This maps x from (a, b) to (-1, 1), over which the - * Chebyshev polynomials are defined. <p> If the coefficients are for the inverted interval, in which (a, b) is + * Chebyshev polynomials are defined.</p> + * <p> + * If the coefficients are for the inverted interval, in which (a, b) is * mapped to (1/b, 1/a), the transformation required is {@code x -> 2(2ab/x - b - a)/(b-a)}. If b is infinity, this - * becomes {@code x -> 4a/x - 1}. <p> SPEED: <p> Taking advantage of the recurrence properties of the Chebyshev + * becomes {@code x -> 4a/x - 1}.</p> + * <p> + * SPEED: + * </p> + * Taking advantage of the recurrence properties of the Chebyshev * polynomials, the routine requires one more addition per loop than evaluating a nested polynomial of the same * degree. * @@ -466,11 +478,11 @@ public class Algebra extends Constants { /** * Returns the StirlingCorrection. - * + * <p> * Correction term of the Stirling approximation for {@code log(k!)} (series in - * 1/k, or table values for small k) with int parameter k. </p> {@code log k! = (k + 1/2)log(k + 1) - (k + 1) + + * 1/k, or table values for small k) with int parameter k. {@code log k! = (k + 1/2)log(k + 1) - (k + 1) + * (1/2)log(2Pi) + STIRLING_CORRECTION(k + 1) log k! = (k + 1/2)log(k) - k + (1/2)log(2Pi) + - * STIRLING_CORRECTION(k) } + * STIRLING_CORRECTION(k) } </p> */ public static double stirlingCorrection(int k) { if (k > 30) { @@ -490,21 +502,24 @@ public class Algebra extends Constants { /** * Evaluates the given polynomial of degree {@code N} at {@code x}, assuming coefficient of N is 1.0. Otherwise same * as {@link #evalPoly(double, double[], int)}. - * <pre> - * 2 N + * <pre class="snippet"> + * 2 N * y = C + C x + C x +...+ C x - * 0 1 2 N - * - * where C = 1 and hence is omitted from the array. - * N - * - * Coefficients are stored in reverse order: - * + * 0 1 2 N + * </pre> + * where <pre class="snippet"> + * C = 1 + * N + * </pre> + * and hence is omitted from the array. + * <p> + * Coefficients are stored in reverse order:</p> + * <pre class="snippet"> * coef[0] = C , ..., coef[N-1] = C . - * N-1 0 - * - * Calling arguments are otherwise the same as {@link #evalPoly(double, double[], int)}. + * N-1 0 * </pre> + * Calling arguments are otherwise the same as {@link #evalPoly(double, double[], int)}. + * <p> * In the interest of speed, there are no checks for out of bounds arithmetic. * * @param x Argument to the polynomial. @@ -522,17 +537,19 @@ public class Algebra extends Constants { /** * Evaluates the given polynomial of degree {@code N} at {@code x}. - * <pre> - * 2 N + * <pre class="snippet"> + * 2 N * y = C + C x + C x +...+ C x - * 0 1 2 N - * - * Coefficients are stored in reverse order: - * + * 0 1 2 N + * </pre> + * <p> + * Coefficients are stored in reverse order:</p> + * <pre class="snippet"> * coef[0] = C , ..., coef[N] = C . - * N 0 + * N 0 * </pre> - * In the interest of speed, there are no checks for out of bounds arithmetic. + * <p> + * In the interest of speed, there are no checks for out of bounds arithmetic.</p> * * @param x Argument to the polynomial. * @param coef Coefficients of the polynomial. http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/IdentityValueMapper.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/IdentityValueMapper.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/IdentityValueMapper.java index 00bf915..3c94edd 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/IdentityValueMapper.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/IdentityValueMapper.java @@ -21,7 +21,8 @@ package org.apache.ignite.ml.math; * Identity value mapper. */ public class IdentityValueMapper implements ValueMapper<Double> { - /** */ private static final long serialVersionUID = -8010078306142216389L; + /** */ + private static final long serialVersionUID = -8010078306142216389L; /** {@inheritDoc} */ @Override public Double fromDouble(double v) { http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/Matrix.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/Matrix.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/Matrix.java index cc858b7..798d831 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/Matrix.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/Matrix.java @@ -18,6 +18,7 @@ package org.apache.ignite.ml.math; import java.io.Externalizable; + import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.ml.math.exceptions.CardinalityException; import org.apache.ignite.ml.math.exceptions.IndexException; @@ -29,17 +30,17 @@ import org.apache.ignite.ml.math.functions.IntIntToDoubleFunction; /** * A matrix interface. - * + * <p> * Based on its flavor it can have vastly different implementations tailored for * for different types of data (e.g. dense vs. sparse), different sizes of data or different operation - * optimizations. - * + * optimizations.</p> + * <p> * Note also that not all operations can be supported by all underlying implementations. If an operation is not * supported a {@link UnsupportedOperationException} is thrown. This exception can also be thrown in partial cases * where an operation is unsupported only in special cases, e.g. where a given operation cannot be deterministically - * completed in polynomial time. - * - * Based on ideas from <a href="http://mahout.apache.org/">Apache Mahout</a>. + * completed in polynomial time.</p> + * <p> + * Based on ideas from <a href="http://mahout.apache.org/">Apache Mahout</a>.</p> */ public interface Matrix extends MetaAttributes, Externalizable, StorageOpsMetrics, Destroyable { /** @@ -174,10 +175,10 @@ public interface Matrix extends MetaAttributes, Externalizable, StorageOpsMetric /** * Maps all values in this matrix through a given function. - * - * For this matrix <code>A</code>, argument matrix <code>B</code> and the - * function <code>F</code> this method maps every cell <code>x, y</code> as: - * <code>A(x,y) = fun(A(x,y), B(x,y))</code> + * <p> + * For this matrix {@code A}, argument matrix {@code B} and the + * function {@code F} this method maps every cell {@code x, y} as: + * {@code A(x,y) = fun(A(x,y), B(x,y))}.</p> * * @param mtx Argument matrix. * @param fun Mapping function. @@ -306,8 +307,8 @@ public interface Matrix extends MetaAttributes, Externalizable, StorageOpsMetric /** * Clones this matrix. - * - * NOTE: new matrix will have the same flavor as the this matrix but a different ID. + * <p> + * NOTE: new matrix will have the same flavor as the this matrix but a different ID.</p> * * @return New matrix of the same underlying class, the same size and the same values. */ @@ -315,8 +316,8 @@ public interface Matrix extends MetaAttributes, Externalizable, StorageOpsMetric /** * Creates new empty matrix of the same underlying class but of different size. - * - * NOTE: new matrix will have the same flavor as the this matrix but a different ID. + * <p> + * NOTE: new matrix will have the same flavor as the this matrix but a different ID.</p> * * @param rows Number of rows for new matrix. * @param cols Number of columns for new matrix. @@ -463,8 +464,8 @@ public interface Matrix extends MetaAttributes, Externalizable, StorageOpsMetric /** * Creates new view into this matrix. Changes to the view will be propagated to this matrix. * - * @param off View offset as <code>int[x,y]</code>. - * @param size View size as <code>int[rows, cols]</code> + * @param off View offset as {@code int[x,y]}. + * @param size View size as {@code int[rows, cols]}. * @return New view. * @throws CardinalityException Thrown if cardinalities mismatch. * @throws IndexException Thrown in case of offset is out of bound. http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/MurmurHash.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/MurmurHash.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/MurmurHash.java index c7dd36b..d1ebf53 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/MurmurHash.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/MurmurHash.java @@ -22,8 +22,8 @@ import java.nio.ByteOrder; /** * This is a very fast, non-cryptographic hash suitable for general hash-based lookup. - * - * See http://murmurhash.googlepages.com/ for mre details. + * <p> + * See http://murmurhash.googlepages.com/ for mre details.</p> */ public class MurmurHash { /** Hide it. */ @@ -33,13 +33,13 @@ public class MurmurHash { /** * This produces exactly the same hash values as the final C+ version of MurmurHash3 and is * thus suitable for producing the same hash values across platforms. - * - * The 32 bit x86 version of this hash should be the fastest variant for relatively short keys like IDs. - * + * <p> + * The 32 bit x86 version of this hash should be the fastest variant for relatively short keys like IDs.</p> + * <p> * Note - The x86 and x64 versions do _not_ produce the same results, as the algorithms are - * optimized for their respective platforms. - * - * See also http://github.com/yonik/java_util for future updates to this method. + * optimized for their respective platforms.</p> + * <p> + * See also http://github.com/yonik/java_util for future updates to this method.</p> * * @param data Data to hash. * @param off Where to start munging. http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/Tracer.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/Tracer.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/Tracer.java index 007a8fe..07cc63c 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/Tracer.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/Tracer.java @@ -71,8 +71,10 @@ public class Tracer { return defaultColorMapper(vec.minValue(), vec.maxValue()); } - /** Default matrix color mapper implementation that map given double value + /** + * Default matrix color mapper implementation that map given double value * to continuous red-blue (R_B) specter. + * * @param mtx Matrix to be mapped. * @return Color mapper for given matrix. */ http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/Vector.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/Vector.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/Vector.java index b5e1d69..e1c5df0 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/Vector.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/Vector.java @@ -470,7 +470,8 @@ public interface Vector extends MetaAttributes, Externalizable, StorageOpsMetric * @return Folded value of these vectors. * @throws CardinalityException Thrown when cardinalities mismatch. */ - public <T> T foldMap(Vector vec, IgniteBiFunction<T, Double, T> foldFun, IgniteBiFunction<Double, Double, Double> combFun, + public <T> T foldMap(Vector vec, IgniteBiFunction<T, Double, T> foldFun, + IgniteBiFunction<Double, Double, Double> combFun, T zeroVal); /** http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/decompositions/CholeskyDecomposition.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/decompositions/CholeskyDecomposition.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/decompositions/CholeskyDecomposition.java index 59ebbe0..6053e1c 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/decompositions/CholeskyDecomposition.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/decompositions/CholeskyDecomposition.java @@ -25,8 +25,8 @@ import org.apache.ignite.ml.math.exceptions.NonSymmetricMatrixException; /** * Calculates the Cholesky decomposition of a matrix. - * - * This class inspired by class from Apache Common Math with similar name. + * <p> + * This class inspired by class from Apache Common Math with similar name.</p> * * @see <a href="http://mathworld.wolfram.com/CholeskyDecomposition.html">MathWorld</a> * @see <a href="http://en.wikipedia.org/wiki/Cholesky_decomposition">Wikipedia</a> @@ -55,10 +55,10 @@ public class CholeskyDecomposition extends DecompositionSupport { /** * Calculates the Cholesky decomposition of the given matrix. - * + * <p> * Calling this constructor is equivalent to call {@link #CholeskyDecomposition(Matrix, double, double)} with the * thresholds set to the default values {@link #DFLT_REL_SYMMETRY_THRESHOLD} and - * {@link #DFLT_ABS_POSITIVITY_THRESHOLD}. + * {@link #DFLT_ABS_POSITIVITY_THRESHOLD}.</p> * * @param mtx the matrix to decompose. * @throws CardinalityException if matrix is not square. http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/decompositions/EigenDecomposition.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/decompositions/EigenDecomposition.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/decompositions/EigenDecomposition.java index 0353bff..698cbef 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/decompositions/EigenDecomposition.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/decompositions/EigenDecomposition.java @@ -24,8 +24,8 @@ import org.apache.ignite.ml.math.functions.Functions; /** * This class provides EigenDecomposition of given matrix. The class is based on * class with similar name from <a href="http://mahout.apache.org/">Apache Mahout</a> library. - * <p> - * @see <a href=http://mathworld.wolfram.com/EigenDecomposition.html>MathWorld</a></p> + * + * @see <a href=http://mathworld.wolfram.com/EigenDecomposition.html>MathWorld</a> */ public class EigenDecomposition extends DecompositionSupport { /** Row and column dimension (square matrix). */ http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/decompositions/LUDecomposition.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/decompositions/LUDecomposition.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/decompositions/LUDecomposition.java index 4e9730c..02a3123 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/decompositions/LUDecomposition.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/decompositions/LUDecomposition.java @@ -25,8 +25,8 @@ import org.apache.ignite.ml.math.exceptions.SingularMatrixException; /** * Calculates the LU-decomposition of a square matrix. * <p> - * This class is inspired by class from Apache Common Math with similar name. - * </p> + * This class is inspired by class from Apache Common Math with similar name.</p> + * * @see <a href="http://mathworld.wolfram.com/LUDecomposition.html">MathWorld</a> * @see <a href="http://en.wikipedia.org/wiki/LU_decomposition">Wikipedia</a> */ @@ -36,18 +36,22 @@ public class LUDecomposition extends DecompositionSupport { /** Pivot permutation associated with LU decomposition. */ private final Vector pivot; + /** Parity of the permutation associated with the LU decomposition. */ private boolean even; /** Singularity indicator. */ private boolean singular; + /** Cached value of L. */ private Matrix cachedL; /** Cached value of U. */ private Matrix cachedU; /** Cached value of P. */ private Matrix cachedP; + /** Original matrix. */ private Matrix matrix; + /** Entries of LU decomposition. */ private Matrix lu; http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/functions/Functions.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/functions/Functions.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/functions/Functions.java index 2693fce..2f97067 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/functions/Functions.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/functions/Functions.java @@ -78,15 +78,14 @@ public final class Functions { /** Function that returns {@code (a - b) * (a - b)} */ public static final IgniteBiFunction<Double, Double, Double> MINUS_SQUARED = (a, b) -> (a - b) * (a - b); - /** - * Function that returns {@code a < b ? -1 : a > b ? 1 : 0}. - */ + /** Function that returns {@code a < b ? -1 : a > b ? 1 : 0}. */ public static final IgniteBiFunction<Double, Double, Double> COMPARE = (a, b) -> a < b ? -1.0 : a > b ? 1.0 : 0.0; /** * Function that returns {@code a + b}. {@code a} is a variable, {@code b} is fixed. * * @param b Value to add. + * @return Function for this operation. */ public static IgniteDoubleFunction<Double> plus(final double b) { return (a) -> a + b; @@ -96,12 +95,18 @@ public final class Functions { * Function that returns {@code a * b}. {@code a} is a variable, {@code b} is fixed. * * @param b Value to multiply to. + * @return Function for this operation. */ public static IgniteDoubleFunction<Double> mult(final double b) { return (a) -> a * b; } - /** Function that returns {@code a / b}. {@code a} is a variable, {@code b} is fixed. */ + /** + * Function that returns {@code a / b}. {@code a} is a variable, {@code b} is fixed. + * + * @param b Value to divide to. + * @return Function for this operation. + */ public static IgniteDoubleFunction<Double> div(double b) { return mult(1 / b); } @@ -109,6 +114,9 @@ public final class Functions { /** * Function that returns {@code a + b*constant}. {@code a} and {@code b} are variables, * {@code constant} is fixed. + * + * @param constant Value to use in multiply. + * @return Function for this operation. */ public static IgniteBiFunction<Double, Double, Double> plusMult(double constant) { return (a, b) -> a + b * constant; @@ -117,12 +125,17 @@ public final class Functions { /** * Function that returns {@code a - b*constant}. {@code a} and {@code b} are variables, * {@code constant} is fixed. + * + * @param constant Value to use in multiply. + * @return Function for this operation. */ public static IgniteBiFunction<Double, Double, Double> minusMult(double constant) { return (a, b) -> a - b * constant; } /** + * Function that returns {@code Math.pow(a, b)}. + * * @param b Power value. * @return Function for given power. */ http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/matrix/PivotedMatrixView.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/matrix/PivotedMatrixView.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/matrix/PivotedMatrixView.java index 334291e..16bdc3e 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/matrix/PivotedMatrixView.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/matrix/PivotedMatrixView.java @@ -20,6 +20,7 @@ package org.apache.ignite.ml.math.impls.matrix; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; + import org.apache.ignite.ml.math.Matrix; import org.apache.ignite.ml.math.MatrixStorage; import org.apache.ignite.ml.math.Vector; @@ -63,7 +64,7 @@ public class PivotedMatrixView extends AbstractMatrix { } /** - * @param mtx Parent matrix. + * @param mtx Parent matrix. * @param pivot Pivot array for rows and columns. */ public PivotedMatrixView(Matrix mtx, int[] pivot) { http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/matrix/SparseDistributedMatrix.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/matrix/SparseDistributedMatrix.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/matrix/SparseDistributedMatrix.java index cd75b83..10ebdd0 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/matrix/SparseDistributedMatrix.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/matrix/SparseDistributedMatrix.java @@ -37,14 +37,14 @@ import org.apache.ignite.ml.math.impls.storage.matrix.SparseDistributedMatrixSto /** * Sparse distributed matrix implementation based on data grid. - * + * <p> * Unlike {@link CacheMatrix} that is based on existing cache, this implementation creates distributed - * cache internally and doesn't rely on pre-existing cache. - * + * cache internally and doesn't rely on pre-existing cache.</p> + * <p> * You also need to call {@link #destroy()} to remove the underlying cache when you no longer need this - * matrix. - * - * <b>Currently fold supports only commutative operations.<b/> + * matrix.</p> + * <p> + * <b>Currently fold supports only commutative operations.<b/></p> */ public class SparseDistributedMatrix extends AbstractMatrix implements StorageConstants { /** http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/CacheMatrixStorage.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/CacheMatrixStorage.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/CacheMatrixStorage.java index 1eec6f5..687216b 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/CacheMatrixStorage.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/CacheMatrixStorage.java @@ -20,6 +20,7 @@ package org.apache.ignite.ml.math.impls.storage.matrix; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; + import org.apache.ignite.IgniteCache; import org.apache.ignite.Ignition; import org.apache.ignite.ml.math.MatrixKeyMapper; @@ -30,11 +31,16 @@ import org.apache.ignite.ml.math.ValueMapper; * Matrix storage based on arbitrary cache and key and value mapping functions. */ public class CacheMatrixStorage<K, V> implements MatrixStorage { - /** */ private int rows; - /** */ private int cols; - /** */ private IgniteCache<K, V> cache; - /** */ private MatrixKeyMapper<K> keyMapper; - /** */ private ValueMapper<V> valMapper; + /** */ + private int rows; + /** */ + private int cols; + /** */ + private IgniteCache<K, V> cache; + /** */ + private MatrixKeyMapper<K> keyMapper; + /** */ + private ValueMapper<V> valMapper; /** * http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/DenseOffHeapMatrixStorage.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/DenseOffHeapMatrixStorage.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/DenseOffHeapMatrixStorage.java index c9e8de8..410da47 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/DenseOffHeapMatrixStorage.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/DenseOffHeapMatrixStorage.java @@ -20,6 +20,7 @@ package org.apache.ignite.ml.math.impls.storage.matrix; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; + import org.apache.ignite.internal.util.GridUnsafe; import org.apache.ignite.ml.math.MatrixStorage; @@ -27,11 +28,15 @@ import org.apache.ignite.ml.math.MatrixStorage; * Local, dense off-heap matrix storage. */ public class DenseOffHeapMatrixStorage implements MatrixStorage { - /** */ private int rows; - /** */ private int cols; - /** */ private transient long ptr; + /** */ + private int rows; + /** */ + private int cols; + /** */ + private transient long ptr; //TODO: temp solution. - /** */ private int ptrInitHash; + /** */ + private int ptrInitHash; /** */ public DenseOffHeapMatrixStorage() { @@ -152,7 +157,7 @@ public class DenseOffHeapMatrixStorage implements MatrixStorage { GridUnsafe.freeMemory(ptr); } - /** {@inheritDoc} */ + /** */ private long pointerOffset(int x, int y) { return ptr + x * cols * Double.BYTES + y * Double.BYTES; } http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/FunctionMatrixStorage.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/FunctionMatrixStorage.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/FunctionMatrixStorage.java index acd7c29..5bb2569 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/FunctionMatrixStorage.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/FunctionMatrixStorage.java @@ -20,6 +20,7 @@ package org.apache.ignite.ml.math.impls.storage.matrix; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; + import org.apache.ignite.ml.math.MatrixStorage; import org.apache.ignite.ml.math.exceptions.UnsupportedOperationException; import org.apache.ignite.ml.math.functions.IntIntDoubleToVoidFunction; @@ -29,11 +30,15 @@ import org.apache.ignite.ml.math.functions.IntIntToDoubleFunction; * Read-only or read-write function-based matrix storage. */ public class FunctionMatrixStorage implements MatrixStorage { - /** */ private int rows; - /** */ private int cols; + /** */ + private int rows; + /** */ + private int cols; - /** */ private IntIntToDoubleFunction getFunc; - /** */ private IntIntDoubleToVoidFunction setFunc; + /** */ + private IntIntToDoubleFunction getFunc; + /** */ + private IntIntDoubleToVoidFunction setFunc; /** * @@ -83,14 +88,14 @@ public class FunctionMatrixStorage implements MatrixStorage { } /** - * + * @return Getter function. */ public IntIntToDoubleFunction getFunction() { return getFunc; } /** - * + * @return Setter function. */ public IntIntDoubleToVoidFunction setFunction() { return setFunc; http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/SparseLocalOnHeapMatrixStorage.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/SparseLocalOnHeapMatrixStorage.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/SparseLocalOnHeapMatrixStorage.java index 4530900..db85b0f 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/SparseLocalOnHeapMatrixStorage.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/matrix/SparseLocalOnHeapMatrixStorage.java @@ -19,11 +19,13 @@ package org.apache.ignite.ml.math.impls.storage.matrix; import it.unimi.dsi.fastutil.ints.Int2DoubleOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2DoubleRBTreeMap; + import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; import java.util.HashMap; import java.util.Map; + import org.apache.ignite.ml.math.MatrixStorage; import org.apache.ignite.ml.math.StorageConstants; @@ -34,11 +36,15 @@ public class SparseLocalOnHeapMatrixStorage implements MatrixStorage, StorageCon /** Default zero value. */ private static final double DEFAULT_VALUE = 0.0; - /** */ private int rows; - /** */ private int cols; + /** */ + private int rows; + /** */ + private int cols; - /** */ private int acsMode; - /** */ private int stoMode; + /** */ + private int acsMode; + /** */ + private int stoMode; /** Actual map storage. */ private Map<Integer, Map<Integer, Double>> sto; @@ -64,16 +70,14 @@ public class SparseLocalOnHeapMatrixStorage implements MatrixStorage, StorageCon } /** - * - * + * @return Matrix elements storage mode. */ public int getStorageMode() { return stoMode; } /** - * - * + * @return Matrix elements access mode. */ public int getAccessMode() { return acsMode; http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/CacheVectorStorage.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/CacheVectorStorage.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/CacheVectorStorage.java index f99a216..bec232d 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/CacheVectorStorage.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/CacheVectorStorage.java @@ -20,6 +20,7 @@ package org.apache.ignite.ml.math.impls.storage.vector; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; + import org.apache.ignite.IgniteCache; import org.apache.ignite.Ignition; import org.apache.ignite.ml.math.ValueMapper; @@ -32,10 +33,12 @@ import org.apache.ignite.ml.math.VectorStorage; public class CacheVectorStorage<K, V> implements VectorStorage { /** Storage size. */ private int size; + /** Key mapper. */ private VectorKeyMapper<K> keyMapper; /** Value mapper. */ private ValueMapper<V> valMapper; + /** Underlying ignite cache. */ private IgniteCache<K, V> cache; @@ -66,24 +69,21 @@ public class CacheVectorStorage<K, V> implements VectorStorage { } /** - * - * + * @return Ignite cache. */ public IgniteCache<K, V> cache() { return cache; } /** - * - * + * @return Key mapper to validate cache keys. */ public VectorKeyMapper<K> keyMapper() { return keyMapper; } /** - * - * + * @return Value mapper to obtain vector element values. */ public ValueMapper<V> valueMapper() { return valMapper; @@ -113,6 +113,7 @@ public class CacheVectorStorage<K, V> implements VectorStorage { } /** {@inheritDoc} */ + @SuppressWarnings("unchecked") @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { size = in.readInt(); keyMapper = (VectorKeyMapper<K>)in.readObject(); http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/ConstantVectorStorage.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/ConstantVectorStorage.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/ConstantVectorStorage.java index 31469ea..1b899a1 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/ConstantVectorStorage.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/ConstantVectorStorage.java @@ -20,6 +20,7 @@ package org.apache.ignite.ml.math.impls.storage.vector; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; + import org.apache.ignite.ml.math.VectorStorage; import org.apache.ignite.ml.math.exceptions.UnsupportedOperationException; @@ -27,8 +28,10 @@ import org.apache.ignite.ml.math.exceptions.UnsupportedOperationException; * Constant read-only vector storage. */ public class ConstantVectorStorage implements VectorStorage { - /** */ private int size; - /** */ private double val; + /** */ + private int size; + /** */ + private double val; /** * @@ -49,8 +52,7 @@ public class ConstantVectorStorage implements VectorStorage { } /** - * - * + * @return Constant stored in Vector elements. */ public double constant() { return val; http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/DelegateVectorStorage.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/DelegateVectorStorage.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/DelegateVectorStorage.java index 6775d44..2a48653 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/DelegateVectorStorage.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/DelegateVectorStorage.java @@ -20,6 +20,7 @@ package org.apache.ignite.ml.math.impls.storage.vector; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; + import org.apache.ignite.ml.math.VectorStorage; /** http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/FunctionVectorStorage.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/FunctionVectorStorage.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/FunctionVectorStorage.java index 0f13bb6..a17eb0b 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/FunctionVectorStorage.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/FunctionVectorStorage.java @@ -20,6 +20,7 @@ package org.apache.ignite.ml.math.impls.storage.vector; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; + import org.apache.ignite.ml.math.VectorStorage; import org.apache.ignite.ml.math.exceptions.UnsupportedOperationException; import org.apache.ignite.ml.math.functions.IgniteFunction; @@ -29,9 +30,12 @@ import org.apache.ignite.ml.math.functions.IntDoubleToVoidFunction; * Read-only or read-write function-based vector storage. */ public class FunctionVectorStorage implements VectorStorage { - /** */ private IgniteFunction<Integer, Double> getFunc; - /** */ private IntDoubleToVoidFunction setFunc; - /** */ private int size; + /** */ + private IgniteFunction<Integer, Double> getFunc; + /** */ + private IntDoubleToVoidFunction setFunc; + /** */ + private int size; /** * @@ -57,16 +61,14 @@ public class FunctionVectorStorage implements VectorStorage { } /** - * - * + * @return Getter function. */ public IgniteFunction<Integer, Double> getFunction() { return getFunc; } /** - * - * + * @return Setter function. */ public IntDoubleToVoidFunction setFunction() { return setFunc; @@ -108,6 +110,7 @@ public class FunctionVectorStorage implements VectorStorage { } /** {@inheritDoc} */ + @SuppressWarnings("unchecked") @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { setFunc = (IntDoubleToVoidFunction)in.readObject(); getFunc = (IgniteFunction<Integer, Double>)in.readObject(); http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/MatrixVectorStorage.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/MatrixVectorStorage.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/MatrixVectorStorage.java index 66aa049..59545a4 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/MatrixVectorStorage.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/MatrixVectorStorage.java @@ -20,6 +20,7 @@ package org.apache.ignite.ml.math.impls.storage.vector; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; + import org.apache.ignite.ml.math.Matrix; import org.apache.ignite.ml.math.VectorStorage; import org.apache.ignite.ml.math.exceptions.IndexException; @@ -28,15 +29,21 @@ import org.apache.ignite.ml.math.exceptions.IndexException; * Row, column or diagonal vector-based view of the matrix */ public class MatrixVectorStorage implements VectorStorage { - /** */ private Matrix parent; + /** */ + private Matrix parent; - /** */ private int row; - /** */ private int col; + /** */ + private int row; + /** */ + private int col; - /** */ private int rowStride; - /** */ private int colStride; + /** */ + private int rowStride; + /** */ + private int colStride; - /** */ private int size; + /** */ + private int size; /** * http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/PivotedVectorStorage.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/PivotedVectorStorage.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/PivotedVectorStorage.java index a524838..537d651 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/PivotedVectorStorage.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/PivotedVectorStorage.java @@ -21,16 +21,20 @@ import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; import java.util.Arrays; + import org.apache.ignite.ml.math.VectorStorage; /** * Pivoted (index mapped) view over another vector storage implementation. */ public class PivotedVectorStorage implements VectorStorage { - /** */ private VectorStorage sto; + /** */ + private VectorStorage sto; - /** */ private int[] pivot; - /** */ private int[] unpivot; + /** */ + private int[] pivot; + /** */ + private int[] unpivot; /** * @param pivot Pivot array. @@ -45,16 +49,14 @@ public class PivotedVectorStorage implements VectorStorage { } /** - * - * + * @return Pivot array for this vector view. */ public int[] pivot() { return pivot; } /** - * - * + * @return Unpivot array for this vector view. */ public int[] unpivot() { return unpivot; http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SingleElementVectorDelegateStorage.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SingleElementVectorDelegateStorage.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SingleElementVectorDelegateStorage.java index d472e3a..453c0f7 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SingleElementVectorDelegateStorage.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SingleElementVectorDelegateStorage.java @@ -20,6 +20,7 @@ package org.apache.ignite.ml.math.impls.storage.vector; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; + import org.apache.ignite.ml.math.Vector; import org.apache.ignite.ml.math.VectorStorage; import org.apache.ignite.ml.math.exceptions.UnsupportedOperationException; @@ -28,8 +29,10 @@ import org.apache.ignite.ml.math.exceptions.UnsupportedOperationException; * Single value view storage over another vector. */ public class SingleElementVectorDelegateStorage implements VectorStorage { - /** */ private int idx; - /** */ private Vector vec; + /** */ + private int idx; + /** */ + private Vector vec; /** * @@ -51,16 +54,14 @@ public class SingleElementVectorDelegateStorage implements VectorStorage { } /** - * - * + * @return Index of the element in the parent vector. */ public int index() { return idx; } /** - * - * + * @return Parent vector. */ public Vector delegate() { return vec; http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SingleElementVectorStorage.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SingleElementVectorStorage.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SingleElementVectorStorage.java index 854b732..6378399 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SingleElementVectorStorage.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SingleElementVectorStorage.java @@ -20,6 +20,7 @@ package org.apache.ignite.ml.math.impls.storage.vector; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; + import org.apache.ignite.ml.math.VectorStorage; import org.apache.ignite.ml.math.exceptions.UnsupportedOperationException; @@ -27,9 +28,12 @@ import org.apache.ignite.ml.math.exceptions.UnsupportedOperationException; * Vector storage holding a single non-zero value at some index. */ public class SingleElementVectorStorage implements VectorStorage { - /** */ private int idx; - /** */ private double val; - /** */ private int size; + /** */ + private int idx; + /** */ + private double val; + /** */ + private int size; /** * @@ -53,7 +57,6 @@ public class SingleElementVectorStorage implements VectorStorage { } /** - * * @return Index of the element in the parent vector. */ public int index() { http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SparseLocalOffHeapVectorStorage.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SparseLocalOffHeapVectorStorage.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SparseLocalOffHeapVectorStorage.java index 035a565..fe70fbd 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SparseLocalOffHeapVectorStorage.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SparseLocalOffHeapVectorStorage.java @@ -21,6 +21,7 @@ import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; import java.nio.ByteBuffer; + import org.apache.ignite.internal.util.offheap.GridOffHeapMap; import org.apache.ignite.internal.util.offheap.GridOffHeapMapFactory; import org.apache.ignite.ml.math.VectorStorage; @@ -33,8 +34,10 @@ import org.apache.ignite.ml.math.impls.vector.SparseLocalOffHeapVector; public class SparseLocalOffHeapVectorStorage implements VectorStorage { /** Assume 10% density. */ private static final int INIT_DENSITY = 10; + /** Storage capacity. */ private int size; + /** Local off heap map. */ private GridOffHeapMap gridOffHeapMap; http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SparseLocalOnHeapVectorStorage.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SparseLocalOnHeapVectorStorage.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SparseLocalOnHeapVectorStorage.java index 75318d6..d3dba8e 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SparseLocalOnHeapVectorStorage.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/storage/vector/SparseLocalOnHeapVectorStorage.java @@ -19,10 +19,12 @@ package org.apache.ignite.ml.math.impls.storage.vector; import it.unimi.dsi.fastutil.ints.Int2DoubleOpenHashMap; import it.unimi.dsi.fastutil.ints.Int2DoubleRBTreeMap; + import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; import java.util.Map; + import org.apache.ignite.ml.math.StorageConstants; import org.apache.ignite.ml.math.VectorStorage; @@ -30,8 +32,10 @@ import org.apache.ignite.ml.math.VectorStorage; * Sparse, local, on-heap vector storage. */ public class SparseLocalOnHeapVectorStorage implements VectorStorage, StorageConstants { - /** */ private int size; - /** */ private int acsMode; + /** */ + private int size; + /** */ + private int acsMode; /** Actual map storage. */ private Map<Integer, Double> sto; @@ -61,8 +65,7 @@ public class SparseLocalOnHeapVectorStorage implements VectorStorage, StorageCon } /** - * - * + * @return Vector elements access mode. */ public int getAccessMode() { return acsMode; http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/AbstractVector.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/AbstractVector.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/AbstractVector.java index 83ac837..d59964b 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/AbstractVector.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/AbstractVector.java @@ -28,6 +28,7 @@ import java.util.NoSuchElementException; import java.util.Spliterator; import java.util.function.Consumer; import java.util.function.IntToDoubleFunction; + import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.ml.math.Matrix; import org.apache.ignite.ml.math.Vector; http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/DelegatingVector.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/DelegatingVector.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/DelegatingVector.java index c868160..545d728 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/DelegatingVector.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/DelegatingVector.java @@ -24,6 +24,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Spliterator; import java.util.function.IntToDoubleFunction; + import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.ml.math.Matrix; import org.apache.ignite.ml.math.Vector; http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/MatrixVectorView.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/MatrixVectorView.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/MatrixVectorView.java index 1eda7d8..e479945 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/MatrixVectorView.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/MatrixVectorView.java @@ -20,6 +20,7 @@ package org.apache.ignite.ml.math.impls.vector; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; + import org.apache.ignite.ml.math.Matrix; import org.apache.ignite.ml.math.Vector; import org.apache.ignite.ml.math.exceptions.IndexException; @@ -29,13 +30,18 @@ import org.apache.ignite.ml.math.impls.storage.vector.MatrixVectorStorage; * Row or column vector view off the matrix. */ public class MatrixVectorView extends AbstractVector { - /** */ private Matrix parent; - - /** */ private int row; - /** */ private int col; - - /** */ private int rowStride; - /** */ private int colStride; + /** */ + private Matrix parent; + + /** */ + private int row; + /** */ + private int col; + + /** */ + private int rowStride; + /** */ + private int colStride; /** * http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/PivotedVectorView.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/PivotedVectorView.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/PivotedVectorView.java index 5ad6b89..0d53e71 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/PivotedVectorView.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/PivotedVectorView.java @@ -20,6 +20,7 @@ package org.apache.ignite.ml.math.impls.vector; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; + import org.apache.ignite.ml.math.Matrix; import org.apache.ignite.ml.math.Vector; import org.apache.ignite.ml.math.exceptions.UnsupportedOperationException; @@ -30,7 +31,8 @@ import org.apache.ignite.ml.math.impls.storage.vector.PivotedVectorStorage; * Pivoted (index mapped) view over another vector. */ public class PivotedVectorView extends AbstractVector { - /** */ private Vector vec; + /** */ + private Vector vec; /** * @param vec Parent vector. @@ -47,7 +49,7 @@ public class PivotedVectorView extends AbstractVector { } /** - * @param vec Parent vector. + * @param vec Parent vector. * @param pivot Mapping from external index to internal. */ public PivotedVectorView(Vector vec, int[] pivot) { @@ -79,7 +81,7 @@ public class PivotedVectorView extends AbstractVector { /** * @param i Index to pivot. - * @return Mapping from external index to internal for given index. + * @return Mapping from external index to internal for given index. */ public int pivot(int i) { return storage().pivot()[i]; @@ -104,17 +106,17 @@ public class PivotedVectorView extends AbstractVector { int exIdx = storage().pivot()[idx]; return new Vector.Element() { - /** {@inheritDoc */ + /** {@inheritDoc} */ @Override public double get() { return storageGet(idx); } - /** {@inheritDoc */ + /** {@inheritDoc} */ @Override public int index() { return exIdx; } - /** {@inheritDoc */ + /** {@inheritDoc} */ @Override public void set(double val) { storageSet(idx, val); } http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/RandomVector.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/RandomVector.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/RandomVector.java index d216a90..df6f791 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/RandomVector.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/RandomVector.java @@ -21,6 +21,7 @@ import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; import java.util.Map; + import org.apache.ignite.ml.math.Matrix; import org.apache.ignite.ml.math.VectorStorage; import org.apache.ignite.ml.math.exceptions.UnsupportedOperationException; @@ -33,7 +34,8 @@ import org.apache.ignite.ml.math.Vector; * that by default, the value is determined by a relatively simple hash of the index. */ public class RandomVector extends AbstractReadOnlyVector { - /** */ private boolean fastHash; + /** */ + private boolean fastHash; /** * @param size Vector cardinality. http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/SingleElementVector.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/SingleElementVector.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/SingleElementVector.java index b47dad8..21e8141 100644 --- a/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/SingleElementVector.java +++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/impls/vector/SingleElementVector.java @@ -1,102 +1 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ignite.ml.math.impls.vector; - -import java.util.Map; -import org.apache.ignite.ml.math.Matrix; -import org.apache.ignite.ml.math.Vector; -import org.apache.ignite.ml.math.exceptions.UnsupportedOperationException; -import org.apache.ignite.ml.math.impls.storage.vector.SingleElementVectorStorage; - -/** - * Read-write vector holding a single non-zero value at some index. - */ -public class SingleElementVector extends AbstractVector { - /** - * - */ - public SingleElementVector() { - // No-op - } - - /** - * @param size Parent vector size. - * @param idx Index of the parent vector element. - * @param val Value of the vector element. - */ - public SingleElementVector(int size, int idx, double val) { - super(new SingleElementVectorStorage(size, idx, val)); - } - - /** - * @param args Parameters to create new vector instance. - */ - public SingleElementVector(Map<String, Object> args) { - assert args != null; - - if (args.containsKey("size") && args.containsKey("index") && args.containsKey("value")) { - int size = (int)args.get("size"); - int idx = (int)args.get("index"); - double val = (double)args.get("value"); - - setStorage(new SingleElementVectorStorage(size, idx, val)); - } - else - throw new UnsupportedOperationException("Invalid constructor argument(s)."); - } - - /** - * - * - */ - private SingleElementVectorStorage storage() { - return (SingleElementVectorStorage)getStorage(); - } - - /** {@inheritDoc} */ - @Override public Element minElement() { - return makeElement(storage().index()); - } - - /** {@inheritDoc} */ - @Override public Element maxElement() { - return makeElement(storage().index()); - } - - /** {@inheritDoc} */ - @Override public double sum() { - return getX(storage().index()); - } - - /** {@inheritDoc} */ - @Override public int nonZeroElements() { - return isZero(get(storage().index())) ? 0 : 1; - } - - /** {@inheritDoc} */ - @Override public Vector like(int crd) { - int idx = storage().index(); - - return new SingleElementVector(crd, idx, getX(idx)); - } - - /** {@inheritDoc} */ - @Override public Matrix likeMatrix(int rows, int cols) { - throw new UnsupportedOperationException(); - } -} +/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.ignite.ml.math.impls.vector; import java.util.Map; import org.apache.ignite.ml.math.Matrix; import org.apache.ignite.ml.math.Vector; import org.apache.ignite.ml.math.except ions.UnsupportedOperationException; import org.apache.ignite.ml.math.impls.storage.vector.SingleElementVectorStorage; /** * Read-write vector holding a single non-zero value at some index. */ public class SingleElementVector extends AbstractVector { /** * */ public SingleElementVector() { // No-op } /** * @param size Parent vector size. * @param idx Index of the parent vector element. * @param val Value of the vector element. */ public SingleElementVector(int size, int idx, double val) { super(new SingleElementVectorStorage(size, idx, val)); } /** * @param args Parameters to create new vector instance. */ public SingleElementVector(Map<String, Object> args) { assert args != null; if (args.containsKey("size") && args.containsKey("index") && args.containsKey("value")) { int size = (int)args.get("size"); int idx = (int)args.get("index"); doub le val = (double)args.get("value"); setStorage(new SingleElementVectorStorage(size, idx, val)); } else throw new UnsupportedOperationException("Invalid constructor argument(s)."); } /** * * */ private SingleElementVectorStorage storage() { return (SingleElementVectorStorage)getStorage(); } /** {@inheritDoc} */ @Override public Element minElement() { return makeElement(storage().index()); } /** {@inheritDoc} */ @Override public Element maxElement() { return makeElement(storage().index()); } /** {@inheritDoc} */ @Override public double sum() { return getX(storage().index()); } /** {@inheritDoc} */ @Override public int nonZeroElements() { return isZero(get(storage().index())) ? 0 : 1; } /** {@inheritDoc} */ @Override public Vector like(int crd) { int idx = storage().index(); return new SingleElemen tVector(crd, idx, getX(idx)); } /** {@inheritDoc} */ @Override public Matrix likeMatrix(int rows, int cols) { throw new UnsupportedOperationException(); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/test/java/org/apache/ignite/ml/math/TracerTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/TracerTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/TracerTest.java index d7c746d..b4f7330 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/TracerTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/TracerTest.java @@ -23,6 +23,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.List; import java.util.Optional; + import org.apache.ignite.ml.math.impls.MathTestConstants; import org.apache.ignite.ml.math.impls.matrix.DenseLocalOnHeapMatrix; import org.apache.ignite.ml.math.impls.vector.DenseLocalOnHeapVector; @@ -35,8 +36,11 @@ import static org.junit.Assert.assertEquals; * Tests for {@link Tracer}. */ public class TracerTest { - /** */ private static final String DEFAULT_FORMAT = "%.10f"; - /** */ private static final double DEFAULT_DELTA = 0.000000001d; + /** */ + private static final String DEFAULT_FORMAT = "%.10f"; + + /** */ + private static final double DEFAULT_DELTA = 0.000000001d; /** * Color mapper that maps [0, 1] range into three distinct RGB segments. @@ -153,7 +157,7 @@ public class TracerTest { List<String> strings = Files.readAllLines(file); Optional<String> reduce = strings.stream().reduce((s1, s2) -> s1 + s2); - String[] csvVals = reduce.get().split(","); + String[] csvVals = reduce.orElse("").split(","); for (int i = 0; i < vector.size(); i++) { Double csvVal = Double.valueOf(csvVals[i]); @@ -181,7 +185,7 @@ public class TracerTest { List<String> strings = Files.readAllLines(file); Optional<String> reduce = strings.stream().reduce((s1, s2) -> s1 + s2); - String[] csvVals = reduce.get().split(","); + String[] csvVals = reduce.orElse("").split(","); for (int i = 0; i < matrix.rowSize(); i++) for (int j = 0; j < matrix.columnSize(); j++) { http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/matrix/CacheMatrixTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/matrix/CacheMatrixTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/matrix/CacheMatrixTest.java index 52badbc..a7e9488 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/matrix/CacheMatrixTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/matrix/CacheMatrixTest.java @@ -291,7 +291,7 @@ public class CacheMatrixTest extends GridCommonAbstractTest { final CacheMatrix<Integer, Double> cacheMatrix = new CacheMatrix<>(rows, cols, cache, keyMapper, new IdentityValueMapper()); ExternalizeTest<CacheMatrix<Integer, Double>> externalizeTest = new ExternalizeTest<CacheMatrix<Integer, Double>>() { - + /** {@inheritDoc} */ @Override public void externalizeTest() { super.externalizeTest(cacheMatrix); } @@ -351,14 +351,18 @@ public class CacheMatrixTest extends GridCommonAbstractTest { return new MatrixKeyMapperForTests(rows, cols); } - /** Init the given matrix by random values. */ + /** + * Init the given matrix by random values. + */ private void fillMatrix(Matrix m) { for (int i = 0; i < m.rowSize(); i++) for (int j = 0; j < m.columnSize(); j++) m.set(i, j, Math.random()); } - /** Init the given matrix by zeros. */ + /** + * Init the given matrix by zeros. + */ private void initMatrix(Matrix m) { for (int i = 0; i < m.rowSize(); i++) for (int j = 0; j < m.columnSize(); j++) http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/matrix/MatrixKeyMapperForTests.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/matrix/MatrixKeyMapperForTests.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/matrix/MatrixKeyMapperForTests.java index bc628c9..cfdd0f3 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/matrix/MatrixKeyMapperForTests.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/matrix/MatrixKeyMapperForTests.java @@ -20,31 +20,36 @@ import org.apache.ignite.ml.math.MatrixKeyMapper; /** */ public class MatrixKeyMapperForTests implements MatrixKeyMapper<Integer> { - /** */ private int rows; - /** */ private int cols; + /** */ + private int rows; + /** */ + private int cols; /** */ public MatrixKeyMapperForTests() { // No-op. } - /** */ + /** + * @param rows Amount of rows in matrix. + * @param cols Amount of columns in matrix. + */ public MatrixKeyMapperForTests(int rows, int cols) { this.rows = rows; this.cols = cols; } - /** */ + /** {@inheritDoc} */ @Override public Integer apply(int x, int y) { return x * cols + y; } - /** */ + /** {@inheritDoc} */ @Override public boolean isValid(Integer integer) { return (rows * cols) > integer; } - /** */ + /** {@inheritDoc} */ @Override public int hashCode() { int hash = 1; @@ -54,7 +59,7 @@ public class MatrixKeyMapperForTests implements MatrixKeyMapper<Integer> { return hash; } - /** */ + /** {@inheritDoc} */ @Override public boolean equals(Object obj) { if (this == obj) return true; http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/storage/matrix/MatrixStorageFixtures.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/storage/matrix/MatrixStorageFixtures.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/storage/matrix/MatrixStorageFixtures.java index 03473cf..78f3dde 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/storage/matrix/MatrixStorageFixtures.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/storage/matrix/MatrixStorageFixtures.java @@ -23,17 +23,18 @@ import java.util.List; import java.util.NoSuchElementException; import java.util.function.BiConsumer; import java.util.function.Supplier; + import org.apache.ignite.ml.math.MatrixStorage; import org.apache.ignite.ml.math.StorageConstants; import org.jetbrains.annotations.NotNull; /** - * + * Fixtures for matrix tests. */ class MatrixStorageFixtures { /** */ private static final List<Supplier<Iterable<MatrixStorage>>> suppliers = Collections.singletonList( - (Supplier<Iterable<MatrixStorage>>) SparseLocalMatrixStorageFixture::new + (Supplier<Iterable<MatrixStorage>>)SparseLocalMatrixStorageFixture::new ); /** */ @@ -57,10 +58,12 @@ class MatrixStorageFixtures { private final Integer[] rows = new Integer[] {1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 512, 1024, null}; /** */ private final Integer[] cols = new Integer[] {1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 1024, 512, null}; + /** */ private final Integer[] randomAccess = new Integer[] {StorageConstants.SEQUENTIAL_ACCESS_MODE, StorageConstants.RANDOM_ACCESS_MODE, null}; /** */ private final Integer[] rowStorage = new Integer[] {StorageConstants.ROW_STORAGE_MODE, StorageConstants.COLUMN_STORAGE_MODE, null}; + /** */ private int sizeIdx = 0; /** */ @@ -118,19 +121,23 @@ class MatrixStorageFixtures { ", access mode=" + randomAccess[acsModeIdx] + ", storage mode=" + rowStorage[stoModeIdx] + "}"; } - /** */ private boolean hasNextRow(int idx) { + /** */ + private boolean hasNextRow(int idx) { return rows[idx] != null; } - /** */ private boolean hasNextCol(int idx) { + /** */ + private boolean hasNextCol(int idx) { return cols[idx] != null; } - /** */ private boolean hasNextAcsMode(int idx) { + /** */ + private boolean hasNextAcsMode(int idx) { return randomAccess[idx] != null; } - /** */ private boolean hasNextStoMode(int idx) { + /** */ + private boolean hasNextStoMode(int idx) { return rowStorage[idx] != null; } } http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/storage/vector/SparseLocalOffHeapVectorStorageTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/storage/vector/SparseLocalOffHeapVectorStorageTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/storage/vector/SparseLocalOffHeapVectorStorageTest.java index 7e5fc48..0b4392e 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/storage/vector/SparseLocalOffHeapVectorStorageTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/storage/vector/SparseLocalOffHeapVectorStorageTest.java @@ -33,7 +33,8 @@ import static org.junit.Assert.assertTrue; * Tests for {@link SparseLocalOffHeapVectorStorage}. */ public class SparseLocalOffHeapVectorStorageTest extends ExternalizeTest<SparseLocalOffHeapVectorStorage> { - /** */ private SparseLocalOffHeapVectorStorage testVectorStorage; + /** */ + private SparseLocalOffHeapVectorStorage testVectorStorage; /** */ @Before http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/vector/AbstractVectorTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/vector/AbstractVectorTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/vector/AbstractVectorTest.java index 7d12773..0707e0a 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/vector/AbstractVectorTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/vector/AbstractVectorTest.java @@ -19,6 +19,7 @@ package org.apache.ignite.ml.math.impls.vector; import java.util.Arrays; import java.util.stream.StreamSupport; + import org.apache.ignite.ml.math.Matrix; import org.apache.ignite.ml.math.Vector; import org.apache.ignite.ml.math.VectorStorage; @@ -355,54 +356,55 @@ public class AbstractVectorTest { * @param storage {@link VectorStorage} * @return AbstractVector. */ + @SuppressWarnings("ClassWithoutNoArgConstructor") private AbstractVector getAbstractVector(VectorStorage storage) { return new AbstractVector(storage) { // TODO: find out how to fix warning about missing constructor - /** */ + /** {@inheritDoc} */ @Override public boolean isDense() { return false; } - /** */ + /** {@inheritDoc} */ @Override public boolean isSequentialAccess() { return false; } - /** */ + /** {@inheritDoc} */ @Override public Matrix likeMatrix(int rows, int cols) { return null; } - /** */ + /** {@inheritDoc} */ @Override public Vector copy() { return getAbstractVector(this.getStorage()); } - /** */ + /** {@inheritDoc} */ @Override public Vector like(int crd) { return null; } - /** */ + /** {@inheritDoc} */ @Override public Vector normalize() { return null; } - /** */ + /** {@inheritDoc} */ @Override public Vector normalize(double power) { return null; } - /** */ + /** {@inheritDoc} */ @Override public Vector logNormalize() { return null; } - /** */ + /** {@inheritDoc} */ @Override public Vector logNormalize(double power) { return null; } - /** */ + /** {@inheritDoc} */ @Override public Vector viewPart(int off, int len) { return null; } @@ -426,52 +428,52 @@ public class AbstractVectorTest { */ private AbstractVector getAbstractVector() { return new AbstractVector() { // TODO: find out how to fix warning about missing constructor - /** */ + /** {@inheritDoc} */ @Override public boolean isDense() { return false; } - /** */ + /** {@inheritDoc} */ @Override public Matrix likeMatrix(int rows, int cols) { return null; } - /** */ + /** {@inheritDoc} */ @Override public boolean isSequentialAccess() { return false; } - /** */ + /** {@inheritDoc} */ @Override public Vector copy() { return getAbstractVector(this.getStorage()); } - /** */ + /** {@inheritDoc} */ @Override public Vector like(int crd) { return null; } - /** */ + /** {@inheritDoc} */ @Override public Vector normalize() { return null; } - /** */ + /** {@inheritDoc} */ @Override public Vector normalize(double power) { return null; } - /** */ + /** {@inheritDoc} */ @Override public Vector logNormalize() { return null; } - /** */ + /** {@inheritDoc} */ @Override public Vector logNormalize(double power) { return null; } - /** */ + /** {@inheritDoc} */ @Override public Vector viewPart(int off, int len) { return null; } http://git-wip-us.apache.org/repos/asf/ignite/blob/33079fc9/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/vector/CacheVectorTest.java ---------------------------------------------------------------------- diff --git a/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/vector/CacheVectorTest.java b/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/vector/CacheVectorTest.java index 0026e2b..ce9f98a 100644 --- a/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/vector/CacheVectorTest.java +++ b/modules/ml/src/test/java/org/apache/ignite/ml/math/impls/vector/CacheVectorTest.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.stream.IntStream; + import junit.framework.TestCase; import org.apache.ignite.Ignite; import org.apache.ignite.IgniteCache; @@ -48,6 +49,7 @@ public class CacheVectorTest extends GridCommonAbstractTest { private static final String CACHE_NAME = "test-cache"; /** Cache size. */ private static final int size = MathTestConstants.STORAGE_SIZE; + /** Grid instance. */ private Ignite ignite; /** Default key mapper. */ @@ -420,7 +422,8 @@ public class CacheVectorTest extends GridCommonAbstractTest { return cache; } - /** */ private static class TestKeyMapper implements VectorKeyMapper<Integer> { + /** */ + private static class TestKeyMapper implements VectorKeyMapper<Integer> { /** {@inheritDoc} */ @Override public Integer apply(int i) { return i;
