private static IComplexNumber sigmoidDeriv(IComplexNumber number) { double arg = number.complexArgument().doubleValue(); double sigArg = 1 / 1 + (FastMath.exp(-arg)) - 1 + .5f; double ret = Math.exp(sigArg); IComplexDouble sigmoid = Nd4j.createDouble(ret, 0); IComplexNumber oneMinus = Nd4j.createComplexNumber(1, 1).subi(sigmoid); return sigmoid.mul(oneMinus); }