Package de.lmu.ifi.dbs.elki.math.linearalgebra

Examples of de.lmu.ifi.dbs.elki.math.linearalgebra.Vector


   * @param nex Next point
   * @param scale Scaling factor
   */
  private void drawArc(SVGPath path, Vector cent, Vector pre, Vector nex, Vector oPrev, Vector oNext, double scale) {
    // Delta vectors
    final Vector rPrev = pre.minus(cent);
    final Vector rNext = nex.minus(cent);
    final Vector rPrNe = pre.minus(nex);
    // Scaled fix points
    final Vector sPrev = cent.plusTimes(rPrev, scale);
    final Vector sNext = cent.plusTimes(rNext, scale);
    // Orthogonal vectors to the relative vectors
    // final Vector oPrev = new Vector(rPrev.get(1), -rPrev.get(0));
    // final Vector oNext = new Vector(-rNext.get(1), rNext.get(0));

    // Compute the intersection of rPrev+tp*oPrev and rNext+tn*oNext
    // rPrNe == rPrev - rNext
    final double zp = rPrNe.get(0) * oNext.get(1) - rPrNe.get(1) * oNext.get(0);
    final double zn = rPrNe.get(0) * oPrev.get(1) - rPrNe.get(1) * oPrev.get(0);
    final double n = oPrev.get(1) * oNext.get(0) - oPrev.get(0) * oNext.get(1);
    if(n == 0) {
      LoggingUtil.warning("Parallel?!?");
      path.drawTo(sNext.get(0), sNext.get(1));
      return;
    }
    final double tp = Math.abs(zp / n);
    final double tn = Math.abs(zn / n);
    // LoggingUtil.warning("tp: "+tp+" tn: "+tn);

    // Guide points
    final Vector gPrev = sPrev.plusTimes(oPrev, KAPPA * scale * tp);
    final Vector gNext = sNext.minusTimes(oNext, KAPPA * scale * tn);

    if(!path.isStarted()) {
      path.moveTo(sPrev);
    }
    // path.drawTo(sPrev);
View Full Code Here


   *
   * @param eigenPair the eigenpair to be normalized
   *
   */
  private void normalizeEigenPair(final EigenPair eigenPair) {
    final Vector eigenvector = eigenPair.getEigenvector();
    final double scaling = 1.0 / Math.sqrt(eigenPair.getEigenvalue()) * eigenvector.normF();
    eigenvector.timesEquals(scaling);
  }
View Full Code Here

    if(selContext != null) {
      DBIDs selection = selContext.getSelectedIds();
      GrahamScanConvexHull2D hull = new GrahamScanConvexHull2D();
      for(DBID i : selection) {
        try {
          hull.add(new Vector(proj.fastProjectDataToRenderSpace(rel.get(i))));
        }
        catch(ObjectNotFoundException e) {
          // ignore
        }
      }
View Full Code Here

        else if(data instanceof PolygonsObject) {
          re.appendKeyArray(bundle.meta(j));
          for(Polygon p : ((PolygonsObject) data).getPolygons()) {
            re.startArray();
            for(int i = 0; i < p.size(); i++) {
              Vector point = p.get(i);
              re.append(point.getArrayRef());
            }
            re.closeArray();
          }
          re.closeArray();
        }
View Full Code Here

    else {
      ArrayList<Vector> vmeans = new ArrayList<Vector>(clusters.size());
      ArrayList<double[]> means = new ArrayList<double[]>(clusters.size());
      {
        for(Cluster<MeanModel<? extends NumberVector<?, ?>>> clus : clusters) {
          Vector v = clus.getModel().getMean().getColumnVector();
          vmeans.add(v);
          means.add(v.getArrayRef());
        }
      }
      // Compute Delaunay Triangulation
      ArrayList<Triangle> delaunay = new SweepHullDelaunay2D(vmeans).getDelaunay();
      if(mode == Mode.VORONOI || mode == Mode.V_AND_D) {
View Full Code Here

    super();
    this.points = points;
    // Compute the bounds.
    if(points.size() > 0) {
      final Iterator<Vector> iter = points.iterator();
      final Vector first = iter.next();
      final int dim = first.getDimensionality();
      min = first.getArrayCopy();
      max = first.getArrayCopy();
      while(iter.hasNext()) {
        Vector next = iter.next();
        for(int i = 0; i < dim; i++) {
          final double cur = next.get(i);
          min[i] = Math.min(min[i], cur);
          max[i] = Math.max(max[i], cur);
        }
      }
    }
View Full Code Here

    final double testx = v.get(0);
    final double testy = v.get(1);
    boolean c = false;

    Iterator<Vector> it = points.iterator();
    Vector pre = points.get(points.size() - 1);
    while(it.hasNext()) {
      final Vector cur = it.next();
      final double curx = cur.get(0);
      final double cury = cur.get(1);
      final double prex = pre.get(0);
      final double prey = pre.get(1);
      if(((cury > testy) != (prey > testy))) {
        if((testx < (prex - curx) * (testy - cury) / (prey - cury) + curx)) {
          c = !c;
View Full Code Here

        else if(data instanceof PolygonsObject) {
          re.appendKeyArray(bundle.meta(j));
          for(Polygon p : ((PolygonsObject) data).getPolygons()) {
            re.startArray();
            for(int i = 0; i < p.size(); i++) {
              Vector point = p.get(i);
              re.append(point.getArrayRef());
            }
            re.closeArray();
          }
          re.closeArray();
        }
View Full Code Here

    negscore /= outlierIds.size();

    logger.verbose("Scores: " + posscore + " " + negscore);

    ArrayList<Vector> s = new ArrayList<Vector>(1);
    s.add(new Vector(new double[] { (posscore + negscore) / 2, posscore, negscore }));
    return new ScoreResult(s);
  }
View Full Code Here

  @Override
  public Vector getColumnVector() {
    // TODO: can we sometimes save this copy?
    // Is this worth the more complex API?
    return new Vector(values.clone());
  }
View Full Code Here

TOP

Related Classes of de.lmu.ifi.dbs.elki.math.linearalgebra.Vector

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.