/** {@inheritDoc} */ public RealMatrix getSubMatrix(final int[] selectedRows, final int[] selectedColumns) throws NullArgumentException, NoDataException, OutOfRangeException { MatrixUtils.checkSubMatrixIndex(this, selectedRows, selectedColumns); final RealMatrix subMatrix = createMatrix(selectedRows.length, selectedColumns.length); subMatrix.walkInOptimizedOrder(new DefaultRealMatrixChangingVisitor() { /** {@inheritDoc} */ @Override public double visit(final int row, final int column, final double value) { return getEntry(selectedRows[row], selectedColumns[column]); } }); return subMatrix; }
getVT().walkInOptimizedOrder(new DefaultRealMatrixPreservingVisitor() {
/** * Return a matrix which has all angles from each point to all the other * @param points * @return */ private static RealMatrix calculateAngleMatrix(Point[] points, final int angularBins) { double xLength, yLength; int numOfSamples = points.length; double twoPI = 2 * Math.PI; RealMatrix anglesMatrix = new Array2DRowRealMatrix(numOfSamples, numOfSamples); for (int i = 0; i < numOfSamples; i++) { for (int j = 0; j < numOfSamples; j++) { xLength = points[i].x - points[j].x; yLength = points[i].y - points[j].y; anglesMatrix.setEntry(i, j, Math.atan2(xLength, yLength)); anglesMatrix.setEntry(i, j, ((anglesMatrix.getEntry(i, j) % twoPI) + twoPI) % twoPI); } } anglesMatrix.walkInOptimizedOrder(new DefaultRealMatrixChangingVisitor() { public double visit(int row, int column, double value) { return Math.floor(value / (2 * Math.PI / angularBins)); } }); return anglesMatrix; }
/** * Return a matrix which has all angles from each point to all the other * @param points * @return */ private static RealMatrix calculateAngleMatrix(Point[] points, final int angularBins) { double xLength, yLength; int numOfSamples = points.length; double twoPI = 2 * Math.PI; RealMatrix anglesMatrix = new Array2DRowRealMatrix(numOfSamples, numOfSamples); for (int i = 0; i < numOfSamples; i++) { for (int j = 0; j < numOfSamples; j++) { xLength = points[i].x - points[j].x; yLength = points[i].y - points[j].y; anglesMatrix.setEntry(i, j, Math.atan2(xLength, yLength)); anglesMatrix.setEntry(i, j, ((anglesMatrix.getEntry(i, j) % twoPI) + twoPI) % twoPI); } } anglesMatrix.walkInOptimizedOrder(new DefaultRealMatrixChangingVisitor() { public double visit(int row, int column, double value) { return Math.floor(value / (2 * Math.PI / angularBins)); } }); return anglesMatrix; }
private static double matrixSumAllAbs0(RealMatrix matrix) { return matrix.walkInOptimizedOrder(new DefaultRealMatrixPreservingVisitor() { private double sum = 0.0; @Override public void visit(int row, int column, double value) { sum += (Math.abs(value) < TOL ? 0.0 : 1.0); } @Override public double end() { return sum; } }); }
if (meanDistance != 0) { final double finalMeanDistance = meanDistance; radiusMatrix.walkInOptimizedOrder(new DefaultRealMatrixChangingVisitor() { public double visit(int row, int column, double value) { return value / finalMeanDistance;
if (meanDistance != 0) { final double finalMeanDistance = meanDistance; radiusMatrix.walkInOptimizedOrder(new DefaultRealMatrixChangingVisitor() { public double visit(int row, int column, double value) { return value / finalMeanDistance;
public static SortedMap<Key,Value> matrixToMap(final SortedMap<Key,Value> map, RealMatrix matrix) { matrix.walkInOptimizedOrder(new DefaultRealMatrixPreservingVisitor() { private Text trow = new Text(), tcol = new Text(); @Override public void visit(int row, int column, double v) { // log.debug("("+row+","+column+") <- "+v); trow.set(Integer.toString(row + 1).getBytes(StandardCharsets.UTF_8)); tcol.set(Integer.toString(column + 1).getBytes(StandardCharsets.UTF_8)); map.put(new Key(trow, EMPTY_TEXT, tcol), new Value(Double.toString(v).getBytes(StandardCharsets.UTF_8))); } }); // log.debug("map "+map); return map; }
public static Map<Key, Value> matrixToMapWithLabels(RealMatrix orig, final SortedMap<Integer, String> labelMap, final boolean labelColQ, final double zeroTolerance) { final Map<Key,Value> ret = new TreeMap<>(); orig.walkInOptimizedOrder(new DefaultRealMatrixPreservingVisitor() { @Override public void visit(int row, int column, double value) { if (value >= -zeroTolerance && value <= zeroTolerance) return; row++; column++; Text rowText, cqText; // labelColQ==false ==> rowText is label looked up, cq is integer as string if (!labelColQ) { rowText = new Text(labelMap.get(row)); cqText = new Text(Integer.toString(column)); } else { rowText = new Text(Integer.toString(row)); cqText = new Text(labelMap.get(column)); } Key k = new Key(rowText, EMPTY_TEXT, cqText); Value v = new Value(Double.toString(value).getBytes(StandardCharsets.UTF_8)); ret.put(k,v); } }); return ret; }
private static RealMatrix matrixAbs0(RealMatrix matrix) { RealMatrix tmp = matrix.copy(); tmp.walkInOptimizedOrder(new DefaultRealMatrixChangingVisitor() { @Override public double visit(int row, int column, double value) { return Math.abs(value) < TOL ? 0.0 : 1.0; } }); return tmp; }
public static RealMatrix randNormPosFull(int N, int K) { RealMatrix m = MatrixUtils.createRealMatrix(N,K); m.walkInOptimizedOrder(new DefaultRealMatrixChangingVisitor() { Random rand = new Random(); @Override public double visit(int row, int column, double value) { return Math.abs(rand.nextGaussian()); } }); return m; } }
private void putInDebugArray(final String[][] arr, RealMatrix matrix, final int numiter) { final int M = matrix.getColumnDimension(); matrix.walkInOptimizedOrder(new DefaultRealMatrixPreservingVisitor() { @Override public void visit(int row, int column, double value) { arr[row * M + column][numiter] = Double.doubleToRawLongBits(value) == 0 ? " " : String.format("%4.2f", value); } }); }
public static WeightedIntDiGraph fromMatrix(RealMatrix m) { WeightedIntDiGraph g = new WeightedIntDiGraph(); m.walkInOptimizedOrder(new RealMatrixPreservingVisitor() { @Override public void visit(int row, int column, double value) { if (value != 0.0) { g.addEdge(row, column, value); } } @Override public void start(int rows, int columns, int startRow, int endRow, int startColumn, int endColumn) { // do nothing } @Override public double end() { // do nothing return 0; } }); return g; }
/** {@inheritDoc} */ public RealMatrix getSubMatrix(final int[] selectedRows, final int[] selectedColumns) throws NullArgumentException, NoDataException, OutOfRangeException { MatrixUtils.checkSubMatrixIndex(this, selectedRows, selectedColumns); final RealMatrix subMatrix = createMatrix(selectedRows.length, selectedColumns.length); subMatrix.walkInOptimizedOrder(new DefaultRealMatrixChangingVisitor() { /** {@inheritDoc} */ @Override public double visit(final int row, final int column, final double value) { return getEntry(selectedRows[row], selectedColumns[column]); } }); return subMatrix; }
/** {@inheritDoc} */ public RealMatrix getSubMatrix(final int[] selectedRows, final int[] selectedColumns) throws NullArgumentException, NoDataException, OutOfRangeException { MatrixUtils.checkSubMatrixIndex(this, selectedRows, selectedColumns); final RealMatrix subMatrix = createMatrix(selectedRows.length, selectedColumns.length); subMatrix.walkInOptimizedOrder(new DefaultRealMatrixChangingVisitor() { /** {@inheritDoc} */ @Override public double visit(final int row, final int column, final double value) { return getEntry(selectedRows[row], selectedColumns[column]); } }); return subMatrix; }
MR.walkInOptimizedOrder(new RealMatrixChangingVisitor() { @Override public void start(int rows, int columns, int startRow, int endRow, int startColumn, int endColumn) { pqs[i] = new PriorityQueue<>(); MR.walkInOptimizedOrder(new DefaultRealMatrixPreservingVisitor() { @Override public void visit(int row, int column, double value) { MR.walkInOptimizedOrder(new DefaultRealMatrixChangingVisitor() { @Override public double visit(int row, int column, double value) {
getVT().walkInOptimizedOrder(new DefaultRealMatrixPreservingVisitor() {
getVT().walkInOptimizedOrder(new DefaultRealMatrixPreservingVisitor() {