nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/blas/impl/BaseLevel2.java
@Override
    public void geru(char order, IComplexNumber alpha, IComplexNDArray X, IComplexNDArray Y, IComplexNDArray A) {
        // FIXME: int cast
        if (X.data().dataType() == DataBuffer.Type.DOUBLE)
            zgeru(order, (int) A.rows(), (int) A.columns(), alpha.asDouble(), X, X.majorStride() / 2, Y, Y.majorStride() / 2, A,
                    (int) A.size(0));
        else
            cgeru(order, (int) A.rows(),(int)  A.columns(), alpha.asFloat(), X, X.majorStride() / 2, Y, Y.majorStride() / 2, A,
                    (int)  A.size(0));

    }
@Override
    public void geru(char order, IComplexNumber alpha, IComplexNDArray X, IComplexNDArray Y, IComplexNDArray A) {
        // FIXME: int cast
        if (X.data().dataType() == DataBuffer.Type.DOUBLE)
            zgeru(order, (int) A.rows(), (int) A.columns(), alpha.asDouble(), X, X.majorStride() / 2, Y, Y.majorStride() / 2, A,
                    (int) A.size(0));
        else
            cgeru(order, (int) A.rows(),(int)  A.columns(), alpha.asFloat(), X, X.majorStride() / 2, Y, Y.majorStride() / 2, A,
                    (int)  A.size(0));

    }
performs a rank-1 update of a general m-by-n matrix a, without conjugation:
a := alpha*x*y' + a.
@param order
@param alpha
@param X
@param Y
@param A