Example usage for org.apache.commons.math3.linear RealVector walkInDefaultOrder

List of usage examples for org.apache.commons.math3.linear RealVector walkInDefaultOrder

Introduction

In this page you can find the example usage for org.apache.commons.math3.linear RealVector walkInDefaultOrder.

Prototype

public double walkInDefaultOrder(final RealVectorChangingVisitor visitor) 

Source Link

Document

Visits (and possibly alters) all entries of this vector in default order (increasing index).

Usage

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());
}