fix fill_diagonal / generate of heisenberg / xyz