Hi, I just got bitten by a, f
I just got bitten by a, for me, strange behaviour.
As it turns out, + takes precedence over ^ (crossProduct) for vectors, so
a^b + c^d == a^(b + c)^d, and NOT
(a^b) + (c^d) as with matematical rules.
As I am not overly profficent in C++ I was wondering if this due to overloading of ^ or some other reason.
vector x = vector(1,0,0);
vector y = vector(0,1,0);
vector z = vector(0,0,1);
vector a = (x ^ z) + (y ^ z);
vector b = x ^ z + y ^ z;
vector c = x ^ (z + y) ^ z;
Info<<"vector a: " << a <<endl
<<"vector b: " << b <<endl
<<"vector c: " << c <<endl;
vector a: (1 -1 0)
vector b: (-1 0 0)
vector c: (-1 0 0
That's because operator& and o
That's because operator& and operator^ are really binary C++ operators in C++ and the language does not allow you to define your own operators or change operator precedence.
We have chosen to re-use the operators for nice sytnax - makes the code look nice. Therefore, all I can recommend is lots of brackets in vector/tensor products.
|All times are GMT -4. The time now is 20:39.|