Vector products: Difference between revisions
Content added Content deleted
(→{{header|Euphoria}}: Euphoria example added) |
|||
Line 367: | Line 367: | ||
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|Euphoria}}== |
|||
<lang euphoria>constant X = 1, Y = 2, Z = 3 |
|||
function dot_product(sequence a, sequence b) |
|||
return a[X]*b[X] + a[Y]*b[Y] + a[Z]*b[Z] |
|||
end function |
|||
function cross_product(sequence a, sequence b) |
|||
return { a[Y]*b[Z] - a[Z]*b[Y], |
|||
a[Z]*b[X] - a[X]*b[Z], |
|||
a[X]*b[Y] - a[Y]*b[X] } |
|||
end function |
|||
function scalar_triple(sequence a, sequence b, sequence c) |
|||
return dot_product( a, cross_product( b, c ) ) |
|||
end function |
|||
function vector_triple( sequence a, sequence b, sequence c) |
|||
return cross_product( a, cross_product( b, c ) ) |
|||
end function |
|||
constant a = { 3, 4, 5 }, b = { 4, 3, 5 }, c = { -5, -12, -13 } |
|||
puts(1,"a = ") |
|||
? a |
|||
puts(1,"b = ") |
|||
? b |
|||
puts(1,"c = ") |
|||
? c |
|||
puts(1,"a dot b = ") |
|||
? dot_product( a, b ) |
|||
puts(1,"a x b = ") |
|||
? cross_product( a, b ) |
|||
puts(1,"a dot (b x c) = ") |
|||
? scalar_triple( a, b, c ) |
|||
puts(1,"a x (b x c) = ") |
|||
? vector_triple( a, b, c )</lang> |
|||
Output: |
|||
<pre>a = {3,4,5} |
|||
b = {4,3,5} |
|||
c = {-5,-12,-13} |
|||
a dot b = 49 |
|||
a x b = {5,5,-7} |
|||
a dot (b x c) = 6 |
|||
a x (b x c) = {-267,204,-3} |
|||
</pre> |
|||
=={{header|Fortran}}== |
=={{header|Fortran}}== |
||
Line 417: | Line 465: | ||
6.00000 |
6.00000 |
||
-267.000 204.000 -3.00000</pre> |
-267.000 204.000 -3.00000</pre> |
||
=={{header|GAP}}== |
=={{header|GAP}}== |
||
<lang gap>DotProduct := function(u, v) |
<lang gap>DotProduct := function(u, v) |