Package de.jungblut.math.dense

Examples of de.jungblut.math.dense.DenseDoubleVector


    // just testing the core functionality
    double value = 25;
    double result = MathUtils.minMaxScale(value, 0, 100, 0, 1);
    assertEquals(0.25, result, 1e-5);

    DoubleVector in = new DenseDoubleVector(new double[] { 40, 60 });
    DoubleVector res = new DenseDoubleVector(new double[] { 0.4, 0.6 });

    DoubleVector minMaxScale = MathUtils.minMaxScale(in, 0, 100, 0, 1);
    assertSmallDiff(res, minMaxScale);

    DoubleMatrix mat = new DenseDoubleMatrix(new double[][] { { 40, 60 },
View Full Code Here


    DoubleMatrix mat = new DenseDoubleMatrix(new double[][] { { 2, 5 },
        { 5, 1 }, { 7, 25 } });
    Tuple3<DoubleMatrix, DoubleVector, DoubleVector> normal = MathUtils
        .meanNormalizeColumns(mat);
    DoubleVector mean = normal.getSecond();
    assertSmallDiff(mean, new DenseDoubleVector(new double[] { 14d / 3d,
        31d / 3d }));
    DoubleVector stddev = normal.getThird();
    assertSmallDiff(stddev, new DenseDoubleVector(new double[] { 2.0548046,
        10.498677 }));
    DoubleMatrix meanNormalizedMatrix = normal.getFirst();
    DoubleMatrix matNormal = new DenseDoubleMatrix(new double[][] {
        { -1.2977713, -0.508 }, { 0.162221421, -0.889 }, { 1.135549, 1.397 } });
View Full Code Here

    final CostFunction inlineFunction = new CostFunction() {
      @Override
      public CostGradientTuple evaluateCost(DoubleVector input) {

        double cost = Math.pow(input.get(0), 2) + Math.pow(input.get(1), 2);
        DenseDoubleVector gradient = new DenseDoubleVector(new double[] {
            input.get(0) * 2, input.get(1) * 2 });

        return new CostGradientTuple(cost, gradient);
      }
    };
    DenseDoubleVector v = new DenseDoubleVector(new double[] { 0, 1 });
    CostGradientTuple cost = inlineFunction.evaluateCost(v);
    DoubleVector numericalGradient = MathUtils.numericalGradient(v,
        inlineFunction);
    assertSmallDiff(numericalGradient, cost.getGradient());

    v = new DenseDoubleVector(new double[] { -15, 100 });
    cost = inlineFunction.evaluateCost(v);

    numericalGradient = MathUtils.numericalGradient(v, inlineFunction);
    assertSmallDiff(numericalGradient, cost.getGradient());
  }
View Full Code Here

  @Test
  public void testBalanceByFix() throws Exception {
    // this yields to a pretty inbalanced tree (degenerated)
    KDTree<Object> tree = new KDTree<>();
    DenseDoubleVector[] array = new DenseDoubleVector[] {
        new DenseDoubleVector(new double[] { 1 }),
        new DenseDoubleVector(new double[] { 2 }),
        new DenseDoubleVector(new double[] { 3 }),
        new DenseDoubleVector(new double[] { 4 }),
        new DenseDoubleVector(new double[] { 5 }),
        new DenseDoubleVector(new double[] { 6 }),
        new DenseDoubleVector(new double[] { 7 }), };
    DenseDoubleVector[] bfsResult = new DenseDoubleVector[] {
        new DenseDoubleVector(new double[] { 4 }),
        new DenseDoubleVector(new double[] { 2 }),
        new DenseDoubleVector(new double[] { 6 }),
        new DenseDoubleVector(new double[] { 1 }),
        new DenseDoubleVector(new double[] { 3 }),
        new DenseDoubleVector(new double[] { 5 }),
        new DenseDoubleVector(new double[] { 7 }), };

    for (DenseDoubleVector v : array) {
      tree.add(v);
    }
    System.out.println(tree);
View Full Code Here

  @Test
  public void testKNearestNeighboursRadiusSearch() throws Exception {
    KDTree<Object> tree = new KDTree<>();
    DenseDoubleVector[] array = new DenseDoubleVector[] {
        new DenseDoubleVector(new double[] { 2, 3 }),
        new DenseDoubleVector(new double[] { 5, 4 }),
        new DenseDoubleVector(new double[] { 9, 6 }),
        new DenseDoubleVector(new double[] { 4, 7 }),
        new DenseDoubleVector(new double[] { 8, 1 }),
        new DenseDoubleVector(new double[] { 7, 2 }), };

    for (DenseDoubleVector v : array) {
      tree.add(v);
    }

    double maxDist = new EuclidianDistance()
        .measureDistance(array[0], array[1]);
    List<VectorDistanceTuple<Object>> nearestNeighbours = tree
        .getNearestNeighbours(new DenseDoubleVector(new double[] { 5, 4 }),
            maxDist);
    Collections.sort(nearestNeighbours);
    Collections.reverse(nearestNeighbours);
    assertEquals(4, nearestNeighbours.size());
    assertTrue(array[1] == nearestNeighbours.get(0).getVector());
View Full Code Here

  @Test
  public void testInsert() throws Exception {
    KDTree<Object> tree = new KDTree<>();
    DenseDoubleVector[] array = new DenseDoubleVector[] {
        new DenseDoubleVector(new double[] { 2, 3 }),
        new DenseDoubleVector(new double[] { 5, 4 }),
        new DenseDoubleVector(new double[] { 9, 6 }),
        new DenseDoubleVector(new double[] { 4, 7 }),
        new DenseDoubleVector(new double[] { 8, 1 }),
        new DenseDoubleVector(new double[] { 7, 2 }), };

    for (DenseDoubleVector v : array) {
      tree.add(v);
    }

    DenseDoubleVector[] result = new DenseDoubleVector[] {
        new DenseDoubleVector(new double[] { 2, 3 }),
        new DenseDoubleVector(new double[] { 8, 1 }),
        new DenseDoubleVector(new double[] { 5, 4 }),
        new DenseDoubleVector(new double[] { 7, 2 }),
        new DenseDoubleVector(new double[] { 4, 7 }),
        new DenseDoubleVector(new double[] { 9, 6 }) };

    int index = 0;
    Iterator<DoubleVector> iterator = tree.iterator();
    while (iterator.hasNext()) {
      DoubleVector next = iterator.next();
View Full Code Here

  @Test
  public void testKNearestNeighbours() throws Exception {
    KDTree<Object> tree = new KDTree<>();
    DenseDoubleVector[] array = new DenseDoubleVector[] {
        new DenseDoubleVector(new double[] { 2, 3 }),
        new DenseDoubleVector(new double[] { 5, 4 }),
        new DenseDoubleVector(new double[] { 9, 6 }),
        new DenseDoubleVector(new double[] { 4, 7 }),
        new DenseDoubleVector(new double[] { 8, 1 }),
        new DenseDoubleVector(new double[] { 7, 2 }), };

    for (DenseDoubleVector v : array) {
      tree.add(v);
    }

    List<VectorDistanceTuple<Object>> nearestNeighbours = tree
        .getNearestNeighbours(new DenseDoubleVector(new double[] { 0, 0 }), 1);
    assertEquals(1, nearestNeighbours.size());
    assertTrue(array[0] == nearestNeighbours.get(0).getVector());
  }
View Full Code Here

  }

  @Test
  public void testMedian() throws Exception {
    assertEquals(1,
        KDTree.median(new DenseDoubleVector(new double[] { 2, 3 }), 0));
    assertEquals(0,
        KDTree.median(new DenseDoubleVector(new double[] { 9, 6 }), 0));
    assertEquals(2,
        KDTree.median(new DenseDoubleVector(new double[] { 9, 6, 8 }), 0));
    assertEquals(1,
        KDTree.median(new DenseDoubleVector(new double[] { 9, 8, 7 }), 0));
    assertEquals(0,
        KDTree.median(new DenseDoubleVector(new double[] { 8, 9, 6 }), 0));

    assertEquals(
        1,
        KDTree.median(new DenseDoubleVector(new double[] { 8, 9, 6, 19, 25, 2,
            3, 4 }), 8));
  }
View Full Code Here

  }

  @Test
  public void testRangeQuery() throws Exception {
    DenseDoubleVector[] array = new DenseDoubleVector[] {
        new DenseDoubleVector(new double[] { 2 }),
        new DenseDoubleVector(new double[] { 3 }),
        new DenseDoubleVector(new double[] { 4 }),
        new DenseDoubleVector(new double[] { 5 }),
        new DenseDoubleVector(new double[] { 6 }),
        new DenseDoubleVector(new double[] { 8 }), };

    KDTree<Object> tree = new KDTree<>();
    for (DenseDoubleVector v : array)
      tree.add(v, null);

    List<DoubleVector> rangeQuery = tree.rangeQuery(new DenseDoubleVector(
        new double[] { 4 }), new DenseDoubleVector(new double[] { 8 }));
    assertEquals(4, rangeQuery.size());
    for (int i = 2; i < array.length; i++)
      assertEquals(array[i], rangeQuery.get(i - 2));

    array = new DenseDoubleVector[] {
        new DenseDoubleVector(new double[] { 2 }),
        new DenseDoubleVector(new double[] { 8 }),
        new DenseDoubleVector(new double[] { 4 }),
        new DenseDoubleVector(new double[] { 3 }),
        new DenseDoubleVector(new double[] { 6 }),
        new DenseDoubleVector(new double[] { 5 }) };

    tree = new KDTree<>();
    for (DenseDoubleVector v : array)
      tree.add(v, null);

    rangeQuery = tree.rangeQuery(new DenseDoubleVector(new double[] { 4 }),
        new DenseDoubleVector(new double[] { 8 }));
    assertEquals(4, rangeQuery.size());
  }
View Full Code Here

    assertEquals(4, rangeQuery.size());
  }

  @Test
  public void testStrictHigherLower() throws Exception {
    DenseDoubleVector lower = new DenseDoubleVector(new double[] { 2 });
    DenseDoubleVector current = new DenseDoubleVector(new double[] { 5 });
    DenseDoubleVector upper = new DenseDoubleVector(new double[] { 10 });

    assertTrue(KDTree.strictHigher(lower, current));
    assertTrue(KDTree.strictHigher(current, upper));
    assertTrue(KDTree.strictLower(upper, current));
    assertTrue(KDTree.strictLower(current, lower));
View Full Code Here

TOP

Related Classes of de.jungblut.math.dense.DenseDoubleVector

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.