refine diagonal matrix mutability
op overrides