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());

    }
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
Creates a complex ndarray with the specified shape