Вы упоминаете в своем комментарии, что:
I
- вектор направления
Если вы используете операторы для неродных типов, вы не можете предположить, что они определены. Это зависит от того, была ли реализована перегрузка оператора в классе: если есть Vector Vector operator-()
функция-член
Кроме того, математически говоря, (-I dot N) == -(I dot N)
:)