Incorporated ViennaCL in my code tree. Modified bandwidth calculation to standard
definiton (max-min column + 1) if zero-based column indexing.
Did not yet recreate new_col_id() matrix. This is next.
Also, did not test for non-symmetric matrix. Should work.
Create a matrix

   xx...
    xx..
   xx...
   x x..

and see what happens. Symmetrize first or else won't work. Compare Evan's approach
with ViennaCL approach.