docs: private static void internalVerticalBlur(
        int[] pixels, int[] outCol, int w, int h, int col, int diameter, int[] div) {
      final int lastInByte = w * (h - 1) + col;
      final int radiusTimesW = (diameter >> 1) * w;
      final int diameterMinusOneTimesW = (diameter - 1) * w;
  
      int a = 0, r = 0, g = 0, b = 0;
      int pixel;
      int outColPos = 0;
  
      // iterate over absolute positions in `pixelsIn`; `w` is the step width for moving down one row
      for (int i = col - radiusTimesW; i <= lastInByte + radiusTimesW; i += w) {
        final int ii = bound(i, col, lastInByte);
        pixel = pixels[ii];
        r += (pixel >> 16) & 0xFF;
        g += (pixel >> 8) & 0xFF;
        b += pixel & 0xFF;
        a += pixel >>> 24;
  
        final int outPos = i - radiusTimesW;
        if (outPos >= col) {
          outCol[outColPos] = (div[a] << 24) | (div[r] << 16) | (div[g] << 8) | div[b];
          outColPos++;
  
          final int j = i - diameterMinusOneTimesW;
          final int jj = bound(j, col, lastInByte);
          pixel = pixels[jj];
          r -= (pixel >> 16) & 0xFF;
          g -= (pixel >> 8) & 0xFF;
          b -= pixel & 0xFF;
          a -= pixel >>> 24;
        }
      }
    }