don't use sparse.block_diag since it is new in scipy 0.11.0