nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/factory/BaseNDArrayFactory.java
public IComplexNDArray createComplex(int[] shape, int[] stride, long offset) {
        if (Nd4j.dataType() == DataBuffer.Type.DOUBLE)
            return createComplex(new double[ArrayUtil.prod(shape) * 2], shape, stride, offset);
        if (Nd4j.dataType() == DataBuffer.Type.FLOAT || Nd4j.dataType() == DataBuffer.Type.HALF)
            return createComplex(new float[ArrayUtil.prod(shape) * 2], shape, stride, offset);
        throw new IllegalStateException("Illegal data opType " + Nd4j.dataType());

    }
public IComplexNDArray createComplex(int[] shape, int[] stride, long offset) {
        if (Nd4j.dataType() == DataBuffer.Type.DOUBLE)
            return createComplex(new double[ArrayUtil.prod(shape) * 2], shape, stride, offset);
        if (Nd4j.dataType() == DataBuffer.Type.FLOAT || Nd4j.dataType() == DataBuffer.Type.HALF)
            return createComplex(new float[ArrayUtil.prod(shape) * 2], shape, stride, offset);
        throw new IllegalStateException("Illegal data opType " + Nd4j.dataType());

    }
Creates a complex ndarray with the specified shape

@param shape  the shape of the ndarray
@param stride the stride for the ndarray
@param offset the offset of the ndarray
@return the instance