@Override public Object calculate(final List<Object> args) { if (NullUtils.containsNull(args)) { return null; } VNumberArray array = (VNumberArray) args.get(0); if (array.getSizes().size() != args.size() - 1) { throw new IllegalArgumentException("Dimension of the array must match the number of ListNumberProvider"); } List<ArrayDimensionDisplay> dimDisplay = new ArrayList<>(); for (int i = 1; i < args.size(); i++) { ListNumberProvider numberGenerator = (ListNumberProvider) args.get(i); dimDisplay.add(ValueFactory.newDisplay(numberGenerator.createListNumber(array.getSizes().getInt(i-1) + 1), "")); } return ValueFactory.newVNumberArray(array.getData(), array.getSizes(), dimDisplay, array, array, array); }
@Override public Object calculate(List<Object> args) { if (NullUtils.containsNull(args)) { return null; } VNumberArray numberArray = (VNumberArray) args.get(0); double min = numberArray.getDimensionDisplay().get(0).getCellBoundaries().getDouble(0); double max = numberArray.getDimensionDisplay().get(0).getCellBoundaries().getDouble(numberArray.getSizes().getInt(0)); return newVNumberArray( new ArrayDouble(min, max), ValueUtil.highestSeverityOf(args, false), ValueUtil.latestValidTimeOrNowOf(args), displayNone()); }
return null; if (array.getSizes().size() != 1) { throw new IllegalArgumentException("Only 1D array supported for DFT");
Arrays.asList(ValueFactory.newDisplay(VTableFactory.range(lowerRange.getValue().doubleValue(), upperRange.getValue().doubleValue()).createListNumber(array.getSizes().getInt(0)+1), "")), array, array, array);
public Cell2DDatasetFromVNumberArray(VNumberArray data) { this.data = data; this.values = data.getData(); if (data.getSizes().size() == 1) { this.xBoundaries = data.getDimensionDisplay().get(0).getCellBoundaries(); this.yBoundaries = new ArrayDouble(0, 1); this.array2D = new Array2DDouble(new ArrayInt(1, xBoundaries.size() - 1), false, data.getDimensionDisplay().get(0).isReversed()); } else if (data.getSizes().size() == 2) { this.xBoundaries = data.getDimensionDisplay().get(1).getCellBoundaries(); this.yBoundaries = data.getDimensionDisplay().get(0).getCellBoundaries();
final int xSize = rightIndex - leftIndex + 1; if (xDisplay.isReversed()) { leftIndex = data.getSizes().getInt(1) - 1 - leftIndex; rightIndex = data.getSizes().getInt(1) - 1 - rightIndex; int topIndex = (int) renderer.getYIndexSelectionRange().getMaximum(); if (yDisplay.isReversed()) { bottomIndex = data.getSizes().getInt(0) - 1 - bottomIndex; topIndex = data.getSizes().getInt(0) - 1 - topIndex;