nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/api/blas/impl/BaseLevel2.java
@Override
    public void sbmv(char order, char Uplo, double alpha, INDArray A, INDArray X, double beta, INDArray Y) {
        if (Nd4j.getExecutioner().getProfilingMode() == OpExecutioner.ProfilingMode.ALL)
            OpProfiler.getInstance().processBlasCall(false, A, X, Y);

        // FIXME: int cast

        if (X.data().dataType() == DataBuffer.Type.DOUBLE) {
            DefaultOpExecutioner.validateDataType(DataBuffer.Type.DOUBLE, A, X, Y);
            dsbmv(order, Uplo, (int) X.length(), (int) A.columns(), alpha, A, (int) A.size(0), X, X.majorStride(), beta, Y,
                    (int) Y.majorStride());
        } else {
            DefaultOpExecutioner.validateDataType(DataBuffer.Type.FLOAT, A, X, Y);
            ssbmv(order, Uplo, (int) X.length(), (int) A.columns(), (float) alpha, A, (int) A.size(0), X, X.majorStride(), (float) beta,
                            Y, Y.majorStride());
        }

        OpExecutionerUtil.checkForAny(Y);
    }
@Override
    public void sbmv(char order, char Uplo, double alpha, INDArray A, INDArray X, double beta, INDArray Y) {
        if (Nd4j.getExecutioner().getProfilingMode() == OpExecutioner.ProfilingMode.ALL)
            OpProfiler.getInstance().processBlasCall(false, A, X, Y);

        // FIXME: int cast

        if (X.data().dataType() == DataBuffer.Type.DOUBLE) {
            DefaultOpExecutioner.validateDataType(DataBuffer.Type.DOUBLE, A, X, Y);
            dsbmv(order, Uplo, (int) X.length(), (int) A.columns(), alpha, A, (int) A.size(0), X, X.majorStride(), beta, Y,
                    (int) Y.majorStride());
        } else {
            DefaultOpExecutioner.validateDataType(DataBuffer.Type.FLOAT, A, X, Y);
            ssbmv(order, Uplo, (int) X.length(), (int) A.columns(), (float) alpha, A, (int) A.size(0), X, X.majorStride(), (float) beta,
                            Y, Y.majorStride());
        }

        OpExecutionerUtil.checkForAny(Y);
    }
@ Override public void sbmv ( char order , char Uplo , double alpha , INDArray A , INDArray X , double beta , INDArray Y ) { if ( Nd4j . getExecutioner ( ) . getProfilingMode ( ) == OpExecutioner . ProfilingMode . ALL ) OpProfiler . getInstance ( ) . processBlasCall ( false , A , X , Y ) ; // FIXME: int cast if ( X . data ( ) . dataType ( ) == DataBuffer . Type . DOUBLE ) { DefaultOpExecutioner . validateDataType ( DataBuffer . Type . DOUBLE , A , X , Y ) ; dsbmv ( order , Uplo , ( int ) X . length ( ) , ( int ) A . columns ( ) , alpha , A , ( int ) A . size ( 0 ) , X , X . majorStride ( ) , beta , Y , ( int ) Y . majorStride ( ) ) ; } else { DefaultOpExecutioner . validateDataType ( DataBuffer . Type . FLOAT , A , X , Y ) ; ssbmv ( order , Uplo , ( int ) X . length ( ) , ( int ) A . columns ( ) , ( float ) alpha , A , ( int ) A . size ( 0 ) , X , X . majorStride ( ) , ( float ) beta , Y , Y . majorStride ( ) ) ; } OpExecutionerUtil . checkForAny ( Y ) ; }
sbmv computes a matrix-vector product using a symmetric band matrix:
y := alpha*a*x + beta*y.
Here a is an n-by-n symmetric band matrix with k superdiagonals, x and y are n-element vectors, alpha and beta are scalars.

@param order
@param Uplo
@param alpha
@param A
@param X
@param beta
@param Y
sbmv computes a matrix - vector product using a symmetric band matrix : y : = alpha * a * x + beta * y . Here a is an n - by - n symmetric band matrix with k superdiagonals x and y are n - element vectors alpha and beta are scalars .