But this loop
```
for (int i = columnPointers[k]; i < columnPointers[j + 1]; i++) {
    procedure.apply(rowIndices[i], j, values[i]);
}
```
will apply procedure to non-zero values column only, won't it? Your implementation looks like mine in <code>CCSMatrix.eachNonZeroInColumn</code>