Vector products: Difference between revisions

Content added Content deleted
(Nimrod -> Nim)
No edit summary
Line 661: Line 661:
a . (b x c) = 6
a . (b x c) = 6
a x (b x c) = [-267, 204, -3]</pre>
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}}==
=={{header|Euphoria}}==