nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/blas/impl/BaseLevel2.java
@Override
    public void gbmv(char order, char TransA, int KL, int KU, IComplexNumber alpha, IComplexNDArray A,
                    IComplexNDArray X, IComplexNumber beta, IComplexNDArray Y) {

        // FIXME: int cast

        if (A.data().dataType() == DataBuffer.Type.DOUBLE) {
            zgbmv(order, TransA, (int) A.rows(), (int) A.columns(), KL, KU, alpha.asDouble(), A, (int) A.size(0), X, X.majorStride() / 2,
                            beta.asDouble(), Y, Y.majorStride() / 2);
        } else {
            cgbmv(order, TransA, (int) A.rows(), (int) A.columns(), KL, KU, alpha.asFloat(), A, (int) A.size(0), X, X.majorStride() / 2,
                            beta.asFloat(), Y, Y.majorStride() / 2);
        }

    }
@Override
    public void gbmv(char order, char TransA, int KL, int KU, IComplexNumber alpha, IComplexNDArray A,
                    IComplexNDArray X, IComplexNumber beta, IComplexNDArray Y) {

        // FIXME: int cast

        if (A.data().dataType() == DataBuffer.Type.DOUBLE) {
            zgbmv(order, TransA, (int) A.rows(), (int) A.columns(), KL, KU, alpha.asDouble(), A, (int) A.size(0), X, X.majorStride() / 2,
                            beta.asDouble(), Y, Y.majorStride() / 2);
        } else {
            cgbmv(order, TransA, (int) A.rows(), (int) A.columns(), KL, KU, alpha.asFloat(), A, (int) A.size(0), X, X.majorStride() / 2,
                            beta.asFloat(), Y, Y.majorStride() / 2);
        }

    }
@ Override public void gbmv ( char order , char TransA , int KL , int KU , IComplexNumber alpha , IComplexNDArray A , IComplexNDArray X , IComplexNumber beta , IComplexNDArray Y ) { // FIXME: int cast if ( A . data ( ) . dataType ( ) == DataBuffer . Type . DOUBLE ) { zgbmv ( order , TransA , ( int ) A . rows ( ) , ( int ) A . columns ( ) , KL , KU , alpha . asDouble ( ) , A , ( int ) A . size ( 0 ) , X , X . majorStride ( ) / 2 , beta . asDouble ( ) , Y , Y . majorStride ( ) / 2 ) ; } else { cgbmv ( order , TransA , ( int ) A . rows ( ) , ( int ) A . columns ( ) , KL , KU , alpha . asFloat ( ) , A , ( int ) A . size ( 0 ) , X , X . majorStride ( ) / 2 , beta . asFloat ( ) , Y , Y . majorStride ( ) / 2 ) ; } }
gbmv computes a matrix-vector product using a general band matrix and performs one of the following matrix-vector operations:
y := alpha*a*x + beta*y  for trans = 'N'or'n';
y := alpha*a'*x + beta*y  for trans = 'T'or't';
y := alpha*conjg(a')*x + beta*y  for trans = 'C'or'c'.
Here a is an m-by-n band matrix with ku superdiagonals and kl subdiagonals, x and y are vectors, alpha and beta are scalars.

@param order
@param TransA
@param KL
@param KU
@param alpha
@param A
@param X
@param beta
@param Y
gbmv computes a matrix - vector product using a general band matrix and performs one of the following matrix - vector operations : y : = alpha * a * x + beta * y for trans = N or n ; y : = alpha * a * x + beta * y for trans = T or t ; y : = alpha * conjg ( a ) * x + beta * y for trans = C or c . Here a is an m - by - n band matrix with ku superdiagonals and kl subdiagonals x and y are vectors alpha and beta are scalars .