code: public int dot(int[][] matrix, int col) {
          int ret = 0;
          for (int c = 0; c < used && indices[c] < matrix.length; c++) {
              if (indices[c] > Integer.MAX_VALUE) {
                  break;
              }
              ret += values[c] * matrix[SafeCast.safeLongToInt(indices[c])][col];
          }
          return ret;
      }
docs: Computes the dot product of this vector with the column of the given matrix.