docs: @Override
      public void gbmv(char order, char TransA, int KL, int KU, 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 (A.data().dataType() == DataType.DOUBLE) {
              DefaultOpExecutioner.validateDataType(DataType.DOUBLE, A, X, Y);
              dgbmv(order, TransA, (int) A.rows(), (int) A.columns(), KL, KU, alpha, A, (int) A.size(0), X, X.stride(-1), beta, Y,
                              Y.stride(-1));
          } else {
              DefaultOpExecutioner.validateDataType(DataType.FLOAT, A, X, Y);
              sgbmv(order, TransA, (int) A.rows(), (int) A.columns(), KL, KU, (float) alpha, A, (int) A.size(0), X, X.stride(-1), (float) beta, Y, Y.stride(-1));
          }
  
          OpExecutionerUtil.checkForAny(Y);
      }