Vector products: Difference between revisions

no edit summary
(Nimrod -> Nim)
No edit summary
Line 661:
a . (b x c) = 6
a x (b x c) = [-267, 204, -3]</pre>
 
=={{header|ERRE}}==
<lang ERRE>
PROGRAM VECTORPRODUCT
 
!$DOUBLE
 
TYPE TVECTOR=(X,Y,Z)
 
DIM A:TVECTOR,B:TVECTOR,C:TVECTOR
 
DIM AA:TVECTOR,BB:TVECTOR,CC:TVECTOR
DIM DD:TVECTOR,EE:TVECTOR,FF:TVECTOR
 
PROCEDURE DOTPRODUCT(DD.,EE.->DOTP)
DOTP=DD.X*EE.X+DD.Y*EE.Y+DD.Z*EE.Z
END PROCEDURE
 
PROCEDURE CROSSPRODUCT(DD.,EE.->FF.)
FF.X=DD.Y*EE.Z-DD.Z*EE.Y
FF.Y=DD.Z*EE.X-DD.X*EE.Z
FF.Z=DD.X*EE.Y-DD.Y*EE.X
END PROCEDURE
 
PROCEDURE SCALARTRIPLEPRODUCT(AA.,BB.,CC.->SCALARTP)
CROSSPRODUCT(BB.,CC.->FF.)
DOTPRODUCT(AA.,FF.->SCALARTP)
END PROCEDURE
 
PROCEDURE VECTORTRIPLEPRODUCT(AA.,BB.,CC.->FF.)
CROSSPRODUCT(BB.,CC.->FF.)
CROSSPRODUCT(AA.,FF.->FF.)
END PROCEDURE
 
PROCEDURE PRINTVECTOR(AA.)
PRINT("(";AA.X;",";AA.Y;",";AA.Z;")")
END PROCEDURE
 
BEGIN
A.X=3 A.Y=4 A.Z=5
B.X=4 B.Y=3 B.Z=5
C.X=-5 C.Y=-12 C.Z=-13
 
PRINT("A: ";) PRINTVECTOR(A.)
PRINT("B: ";) PRINTVECTOR(B.)
PRINT("C: ";) PRINTVECTOR(C.)
 
PRINT
DOTPRODUCT(A.,B.->DOTP)
PRINT("A.B =";DOTP)
 
CROSSPRODUCT(A.,B.->FF.)
PRINT("AxB =";) PRINTVECTOR(FF.)
 
SCALARTRIPLEPRODUCT(A.,B.,C.->SCALARTP)
PRINT("A.(BxC)=";SCALARTP)
 
VECTORTRIPLEPRODUCT(A.,B.,C.->FF.)
PRINT("Ax(BxC)=";) PRINTVECTOR(FF.)
END PROGRAM
</lang>
 
=={{header|Euphoria}}==
Anonymous user