cross product problem - bug ?



I'm trying to make some vector cross product calculations
I have

DECLARE([PR0, PR1, PR2, PR3], NONSCALAR);
DECLARE([ax0, ay0, ax1, ay1, ax2, ay2, ax3, ay3], SCALAR);
DECLARE([PRN0, PRN1, PRN2, PRN3], NONSCALAR);
DECLARE([XN, YN, ZN, X, Y, Z], NONSCALAR);
 PRN0 : PR0 + ax0*X + ay0*Y;
PRN3 : PR3 + ax3*X + ay3*Y;
EXPANDCROSSCROSS :TRUE;
EXPANDCROSSPLUS :TRUE;
VECTORSIMP(PRN0 ~ PRN3);

and getting
WARNING: DECLARE VECTOR INDETERMINANTS

NONSCALAR TO AVOID ERRORS & TO GET FULL SIMPLIFICATION
(%o10)        ay3 PR0 ~ Y + ax3 PR0 ~ X + PR0 ~ PR3 + ay0 ~ (- PR3 ~ Y)

-  wrong answer

if I use instead
EXPANDCROSSCROSS :FALSE;

I get better result
WARNING: DECLARE VECTOR INDETERMINANTS

NONSCALAR TO AVOID ERRORS & TO GET FULL SIMPLIFICATION
(%o12) ay3 PR0 ~ Y + ax3 PR0 ~ X + PR0 ~ PR3 + 1 ~ X ~ Y ax0 ay3

              + ay0 ~ (- PR3 ~ Y) - 1 ~ X ~ Y ax3 ay0 - 1 ~ PR3 ~ X ax0
but still strange - why cross product of vector and scalar ?

"EXPANDCROSSCROSS refers to replacing p~(q~r) with (p.r)*q-(p.q)*r, "
why it is causing such a weird result ?


-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.322 / Virus Database: 267.2.0 - Release Date: 5/27/2005