You're not using `b = -tmp` here because it would create another copy, right? I think that whole section could do with an explanatory comment.