@Override public double getDouble(int index) { return list.getDouble(index); }
@Override public int size() { return real.size(); } };
public void pvChanged(PVReaderEvent<VNumberArray> event) { if (event.isValueChanged()) { // New value VNumberArray value = event.getPvReader().getValue(); ListNumber data = value.getData(); for (int i = 0; i < data.size(); i++) { // Get the double representation of the value, // converting it if needed double iValue = data.getDouble(i); System.out.println(iValue); } } } })
/** * Converts the given ListNumber to a number JSON array. * * @param list a list of numbers * @return an array of numbers */ public static JsonArrayBuilder fromListNumber(ListNumber list) { JsonArrayBuilder b = Json.createArrayBuilder(); if (list instanceof ListByte || list instanceof ListShort || list instanceof ListInt) { for (int i = 0; i < list.size(); i++) { b.add(list.getInt(i)); } } else if (list instanceof ListLong) { for (int i = 0; i < list.size(); i++) { b.add(list.getLong(i)); } } else { for (int i = 0; i < list.size(); i++) { double value = list.getDouble(i); if (Double.isNaN(value) || Double.isInfinite(value)) { b.addNull(); } else { b.add(value); } } } return b; }
IteratorNumber newValues = numberArray.getData().iterator(); double minValueRange = xRange.getMinimum(); double maxValueRange = xRange.getMaximum();
@Override public Object calculate(List<Object> args) { if (NullUtils.containsNull(args)) { return null; } VNumber value = (VNumber) args.get(0); VNumberArray intervals = (VNumberArray) args.get(1); VStringArray labels = (VStringArray) args.get(2); int index = 0; while (index < intervals.getData().size() && value.getValue().doubleValue() >= intervals.getData().getDouble(index)) { index++; } return newVEnum(index, labels.getData(), value, ValueUtil.latestValidTimeOrNowOf(args)); }
@Override public Object calculate(final List<Object> args) { if (NullUtils.containsNull(args)) { return null; } VTable table = (VTable) args.get(0); VString columnName = (VString) args.get(1); VNumberArray range = (VNumberArray) args.get(2); if (range.getData().size() != 2) { throw new IllegalArgumentException("Range array must be of 2 elements"); } VTable result = VTableFactory.tableRangeFilter(table, columnName.getValue(), ValueFactory.newVDouble(range.getData().getDouble(0)), ValueFactory.newVDouble(range.getData().getDouble(1))); return result; }
@Override public int size() { return real.size(); } };
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.xRange = Ranges.range(xBoundaries.getDouble(0), xBoundaries.getDouble(xBoundaries.size() - 1)); this.yRange = Ranges.range(yBoundaries.getDouble(0), yBoundaries.getDouble(yBoundaries.size() - 1)); this.xCount = xBoundaries.size() - 1; this.yCount = yBoundaries.size() - 1;
@Override public int size() { return list.size(); }
List<Point2DDataset> datasets = new ArrayList<>(); for (int i = 0; i < yValues.size(); i++) { datasets.add(Point2DDatasets.lineData(ListNumbers.linearList(0, 1, yValues.get(i).size()), yValues.get(i)));
@Override public double getValue(int x, int y) { return values.getDouble(array2D.getIndex(x, y)); }
List<ListNumber> fft = ListMath.dft(array.getData(), new ArrayDouble(new double[array.getData().size()])); final ListNumber real = fft.get(0); final ListNumber imaginary = fft.get(1);
@Override public Object calculate(List<Object> args) { if (NullUtils.containsNull(args)) { return null; } VNumberArray numberArray = (VNumberArray) args.get(0); VNumber index = (VNumber) args.get(1); int i = index.getValue().intValue(); return newVNumber(numberArray.getData().getDouble(i), numberArray, numberArray, displayNone()); }
@Override public VTable readValue() { VNumberArray values = yArray.getFunction().readValue(); VNumber offset = xInitialOffset.getFunction().readValue(); VNumber increment = xIncrementSize.getFunction().readValue(); if (values == null || offset == null || increment == null) { return null; } return ValueFactory.newVTable(Arrays.<Class<?>>asList(double.class, double.class), Arrays.asList("X", "Y"), Arrays.<Object>asList(ListNumbers.linearList(offset.getValue().doubleValue(), increment.getValue().doubleValue(), values.getData().size()), new ListDoubleView(values.getData()))); } }, "data");
@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()); }