a bit more assertions and operation fixes (diag-> diagv(vector), scala overloading seems to fail me in this case.)