Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
45
Task/Vector-products/XPL0/vector-products.xpl0
Normal file
45
Task/Vector-products/XPL0/vector-products.xpl0
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
include c:\cxpl\codes; \intrinsic 'code' declarations
|
||||
|
||||
func DotProd(A, B); \Return the dot product of two 3D vectors
|
||||
int A, B; \A ù B
|
||||
return A(0)*B(0) + A(1)*B(1) + A(2)*B(2);
|
||||
|
||||
proc CrossProd(A, B, C); \Calculate the cross product of two 3D vectors
|
||||
int A, B, C; \C:= A x B
|
||||
[C(0):= A(1)*B(2) - A(2)*B(1);
|
||||
C(1):= A(2)*B(0) - A(0)*B(2);
|
||||
C(2):= A(0)*B(1) - A(1)*B(0);
|
||||
]; \CrossProd
|
||||
|
||||
func ScalarTriProd(A, B, C); \Return the scalar triple product
|
||||
int A, B, C; \A ù (B x C)
|
||||
int D(3);
|
||||
[CrossProd(B, C, D);
|
||||
return DotProd(A, D);
|
||||
]; \ScalarTriProd
|
||||
|
||||
proc VectTriProd(A, B, C, D); \Calculate the vector triple product
|
||||
int A, B, C, D; \D:= A x (B x C)
|
||||
int E(3);
|
||||
[CrossProd(B, C, E);
|
||||
CrossProd(A, E, D);
|
||||
]; \CrossProd
|
||||
|
||||
|
||||
int A, B, C, D(3);
|
||||
[A:= [3, 4, 5]; B:= [4, 3, 5]; C:= [-5, -12, -13];
|
||||
|
||||
IntOut(0, DotProd(A,B)); CrLf(0);
|
||||
|
||||
CrossProd(A, B, D);
|
||||
IntOut(0, D(0)); ChOut(0, 9\tab\);
|
||||
IntOut(0, D(1)); ChOut(0, 9\tab\);
|
||||
IntOut(0, D(2)); CrLf(0);
|
||||
|
||||
IntOut(0, ScalarTriProd(A,B,C)); CrLf(0);
|
||||
|
||||
VectTriProd(A, B, C, D);
|
||||
IntOut(0, D(0)); ChOut(0, 9\tab\);
|
||||
IntOut(0, D(1)); ChOut(0, 9\tab\);
|
||||
IntOut(0, D(2)); CrLf(0);
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue