You mentioned in your comment that:
I - direction vector
If you use operators for non-native types, you cannot assume that they are defined. It depends on whether the operator overloading in the class has been implemented: if the Vector Vector operator-() member function exists
Also, mathematically speaking, (-I dot N) == -(I dot N) :)
source share