Added negate() method, although producing some strange results.