SparseVector extends Vector { @Override public DenseMatrix outer() { return this.outer(this); } SparseVector();  SparseVector(int n);  SparseVector(int n, int[] indices, double[] values);  SparseVector(int n, Map<Integer, Double> kv); @Override SparseVector clone(); @Override SparseVector prefix(double d); @Override SparseVector append(double d); int[] getIndices(); double[] getValues(); @Override int size(); @Override double get(int i); void setSize(int n); int numberOfValues(); @Override void set(int i, double val); @Override void add(int i, double val); @Override String toString(); @Override double normL2(); @Override double normL1(); @Override double normInf(); @Override double normL2Square(); @Override SparseVector slice(int[] indices); @Override Vector plus(Vector vec); @Override Vector minus(Vector vec); @Override SparseVector scale(double d); @Override void scaleEqual(double d); void removeZeroValues(); @Override double dot(Vector other); @Override DenseMatrix outer(); DenseMatrix outer(SparseVector other); DenseVector toDenseVector(); @Override void standardizeEqual(double mean, double stdvar); @Override void normalizeEqual(double p); @Override boolean equals(Object o); @Override int hashCode(); void forEach(BiConsumer<Integer, Double> action); @Override VectorIterator iterator();  }
@Test public void testOuter() throws Exception { DenseMatrix outerProduct = v1.outer(v2); Assert.assertEquals(outerProduct.numRows(), 8); Assert.assertEquals(outerProduct.numCols(), 8); Assert.assertArrayEquals(outerProduct.getRow(0), new double[]{0, 0, 0, 0, 0, 0, 0, 0}, TOL); Assert.assertArrayEquals(outerProduct.getRow(1), new double[]{0, 0, 0, 2, 2, 2, 0, 0}, TOL); Assert.assertArrayEquals(outerProduct.getRow(2), new double[]{0, 0, 0, 0, 0, 0, 0, 0}, TOL); Assert.assertArrayEquals(outerProduct.getRow(3), new double[]{0, 0, 0, 2, 2, 2, 0, 0}, TOL); Assert.assertArrayEquals(outerProduct.getRow(4), new double[]{0, 0, 0, 0, 0, 0, 0, 0}, TOL); Assert.assertArrayEquals(outerProduct.getRow(5), new double[]{0, 0, 0, 2, 2, 2, 0, 0}, TOL); Assert.assertArrayEquals(outerProduct.getRow(6), new double[]{0, 0, 0, 0, 0, 0, 0, 0}, TOL); Assert.assertArrayEquals(outerProduct.getRow(7), new double[]{0, 0, 0, 2, 2, 2, 0, 0}, TOL); }