List of usage examples for org.apache.commons.math3.linear RealVector walkInDefaultOrder
public double walkInDefaultOrder(final RealVectorChangingVisitor visitor)
From source file:com.cloudera.oryx.kmeans.computation.VectorConvert.java
public static MLVector fromVector(RealVector input) { final List<Double> values = Lists.newArrayList(); MLVector.Builder vb = MLVector.newBuilder().setSize(input.getDimension()).setValues(values); if (input instanceof ArrayRealVector) { vb.setIndices(ImmutableList.<Integer>of()); for (int i = 0; i < input.getDimension(); i++) { values.add(input.getEntry(i)); }/*from w w w .ja v a2 s . c o m*/ } else { final List<Integer> indices = Lists.newArrayList(); vb.setIndices(indices); input.walkInDefaultOrder(new AbstractRealVectorPreservingVisitor() { @Override public void visit(int index, double value) { indices.add(index); values.add(value); } }); } if (input instanceof NamedRealVector) { vb.setId(((NamedRealVector) input).getName()); } else { vb.setId(""); } return vb.build(); }
From source file:com.cloudera.oryx.common.math.SparseIteratorTest.java
@Test public void testEmptyDefaultSparseIterator() { RealVector vector = Vectors.sparse(0); DummyVisitor visitor = new DummyVisitor(); vector.walkInDefaultOrder(visitor); assertTrue(visitor.getSeenValues().isEmpty()); }
From source file:com.cloudera.oryx.common.math.SparseIteratorTest.java
@Test public void testSingleDefaultSparseIterator() { RealVector vector = Vectors.sparse(1); vector.setEntry(0, 3.0);/*from w w w .ja va2 s . c o m*/ DummyVisitor visitor = new DummyVisitor(); vector.walkInDefaultOrder(visitor); assertEquals(1, visitor.getSeenValues().size()); Pair<Integer, Double> first = visitor.getSeenValues().get(0); assertEquals(0, first.getFirst().intValue()); assertEquals(3.0, first.getSecond().doubleValue()); }
From source file:com.cloudera.oryx.kmeans.computation.cluster.KSketchIndex.java
private BitSet index(RealVector vec) { final double[] prod = new double[projectionBits]; vec.walkInDefaultOrder(new AbstractRealVectorPreservingVisitor() { @Override//from www . ja v a 2 s . c o m public void visit(int index, double value) { for (int j = 0; j < projectionBits; j++) { prod[j] += value * projection[index + j * dimensions]; } } }); BitSet bitset = new BitSet(projectionBits); for (int i = 0; i < projectionBits; i++) { if (prod[i] > 0.0) { bitset.set(i); } } return bitset; }
From source file:com.cloudera.oryx.common.math.SparseIteratorTest.java
@Test public void testManyDefaultSparseIterator() { RealVector vector = Vectors.sparse(10, 3); vector.setEntry(3, 4.5);/* w w w .ja v a 2 s . c o m*/ vector.setEntry(8, 0.0); // Won't show up vector.setEntry(9, 3.0); vector.setEntry(2, -7.0); DummyVisitor visitor = new DummyVisitor(); vector.walkInDefaultOrder(visitor); List<Pair<Integer, Double>> seen = visitor.getSeenValues(); assertEquals(3, seen.size()); assertEquals(2, seen.get(0).getFirst().intValue()); assertEquals(-7.0, seen.get(0).getSecond().doubleValue()); assertEquals(3, seen.get(1).getFirst().intValue()); assertEquals(4.5, seen.get(1).getSecond().doubleValue()); assertEquals(9, seen.get(2).getFirst().intValue()); assertEquals(3.0, seen.get(2).getSecond().doubleValue()); }