@Override public INDArray put(int[] indexes, INDArray element) { if (!element.isScalar()) throw new IllegalArgumentException("Unable to insert anything but a scalar"); if (indexes.length != rank) throw new IllegalStateException( "Cannot use putScalar with indexes length " + indexes.length + " on rank " + rank); addOrUpdate(ArrayUtil.toLongArray(indexes), element.getDouble(0)); return this; }
@Override public INDArray putScalar(int[] indexes, double value) { for (int i = 0; i < indexes.length; i++) { if (indexes[i] < 0) indexes[i] += rank(); } if (indexes.length == 1) { return putScalar(indexes[0], value); } if (indexes.length != rank) { throw new IllegalStateException( "Cannot use putScalar with indexes length " + indexes.length + " on rank " + rank); } addOrUpdate(ArrayUtil.toLongArray(indexes), value); return this; }
@Override public INDArray putScalar(long i, double value) { if (i < 0) i += rank(); if (isScalar()) { if (Nd4j.getExecutioner().getProfilingMode() != OpExecutioner.ProfilingMode.DISABLED && Nd4j.getExecutioner().getProfilingMode() != OpExecutioner.ProfilingMode.SCOPE_PANIC) OpProfiler.getInstance().processScalarCall(); addOrUpdate(new long[] {0, 0}, value); return this; } if (isRowVector()) { addOrUpdate(new long[] {0, i}, value); return this; } else if (isColumnVector()) { addOrUpdate(new long[] {i, 0}, value); return this; } long[] indexes = ordering() == 'c' ? Shape.ind2subC(this, i) : Shape.ind2sub(this, i); return putScalar(indexes, value); }