public void run() { final EdgeData data = source.getValue(); final int nodes = data.getSize(); eigenMetric.eigensolve("V", nodes, data); VertexData result = new VertexData(nodes); for (int i = 0; i < nodes; i++) { result.set(i, eigenMetric.evResult[nodes + i]); } target.setValue(result); }
public void visit(int from, int into, double e) { if (e < minAbsValue) { return; } final double toMaxRatio = e / max; if (toMaxRatio < minToMaxRatio) { return; } result.set(from, into, e); }
public void run() { final EdgeData data = Metric.fetch(metric); final EdgeMaxVisitor max = new EdgeMaxVisitor(); data.visitNonDef(max); if (!max.isMaxSet() || max.getMax() == 0) { target.setValue(data); return; } final EdgeData result = EdgeDataFactory.sparse(data.isSymmetric(), data.getDefElem(), data.getSize()); data.visitNonDef(new ThresholdVisitor(minToMaxRatio, minAbsValue, max.getMax(), result)); target.setValue(result); }