@Override public Boolean apply(IComplexNumber input) { return !opposite.apply(input); }
@Override public Boolean apply(Number input) { return !opposite.apply(input); }
@Override public void process(long[]... coord) { if (a.get()) a.compareAndSet(true, a.get() && cond.apply(n.getDouble(coord[0]))); } });
@Override public void process(long[]... coord) { if (!a.get()) a.compareAndSet(false, a.get() || cond.apply(n.getDouble(coord[0]))); } });
@Override public void process(long[]... coord) { if (condition.apply(to.getDouble(coord[0]))) to.putScalar(coord[0], dynamic.apply(to.getDouble(coord[0])).doubleValue()); } });
@Override public void process(long[]... coord) { if (condition.apply(to.getDouble(coord[0]))) to.putScalar(coord[0], function.apply(to.getDouble(coord[0])).doubleValue()); } });
@Override public void process(long[]... coord) { if (condition.apply(to.getDouble(coord[0]))) { to.putScalar(coord[0], function.apply(to.getDouble(coord[0])).doubleValue()); } else { to.putScalar(coord[0], alternativeFunction.apply(to.getDouble(coord[0])).doubleValue()); } } });
/** * And * * @param n * @param cond * @return */ public static boolean and(IComplexNDArray n, Condition cond) { boolean ret = true; IComplexNDArray linear = n.linearView(); for (int i = 0; i < linear.length(); i++) { ret = ret && cond.apply(linear.getComplex(i)); } return ret; }
/** * Or over the whole ndarray given some condition * * @param n * @param cond * @return */ public static boolean or(IComplexNDArray n, Condition cond) { boolean ret = false; IComplexNDArray linear = n.linearView(); for (int i = 0; i < linear.length(); i++) { ret = ret || cond.apply(linear.getComplex(i)); } return ret; }
@Override public INDArray condi(Condition condition) { Nd4j.getCompressor().autoDecompress(this); INDArray linear = this; for (int i = 0; i < length(); i++) { boolean met = condition.apply(linear.getDouble(i)); linear.putScalar(i, met ? 1 : 0); } return this; }
@Override public IComplexNDArray condi(Condition condition) { IComplexNDArray linear = linearView(); for (int i = 0; i < length(); i++) { boolean met = condition.apply(linear.getComplex(i)); IComplexNumber put = Nd4j.createComplexNumber(met ? 1 : 0, 0); linear.putScalar(i, put); } return this; }
/** * Based on the matching elements * op to based on condition to with function function * * @param to the ndarray to op * @param condition the condition on op * @param function the function to apply the op to */ public static void applyWhere(IComplexNDArray to, Condition condition, Function<IComplexNumber, IComplexNumber> function) { IComplexNDArray linear = to.linearView(); for (int i = 0; i < linear.linearView().length(); i++) { if (condition.apply(linear.getDouble(i))) { linear.putScalar(i, function.apply(linear.getComplex(i))); } } }
@Override public Boolean apply(IComplexNumber input) { return !opposite.apply(input); } }
@Override public void process(int[]... coord) { if (condition.apply(to.getDouble(coord[0]))) to.putScalar(coord[0], function.apply(to.getDouble(coord[0])).doubleValue()); } });