docs: @Override
      public double dot(long n, double alpha, INDArray X, INDArray Y) {
  
          if (X instanceof BaseSparseNDArray) {
              BaseSparseNDArray sparseX = (BaseSparseNDArray) X;
              DataBuffer pointers = sparseX.getVectorCoordinates();
  
              switch (X.data().dataType()) {
                  case DOUBLE:
                      DefaultOpExecutioner.validateDataType(DataType.DOUBLE, X, Y);
                      return ddoti(n, X, pointers, Y);
                  case FLOAT:
                      DefaultOpExecutioner.validateDataType(DataType.FLOAT, X, Y);
                      return sdoti(n, X, pointers, Y);
                  case HALF:
                      DefaultOpExecutioner.validateDataType(DataType.HALF, X, Y);
                      return hdoti(n, X, pointers, Y);
                  default:
              }
          }
          throw new UnsupportedOperationException();
      }