prods {onion} | R Documentation |
Various products of two onions
Description
Returns various inner and outer products of two onionic vectors.
Usage
x %<*>% y
x %>*<% y
x %<.>% y
x %>.<% y
x %.% y
onion_g_even(x,y)
onion_g_odd (x,y)
onion_e_even(x,y)
onion_e_odd (x,y)
dotprod(x,y)
Arguments
x , y |
onions |
Details
This page documents an attempt at a consistent notation for onionic
products. The default product for onions (viz “*
”) is
sometimes known as the “Grassman product”. There is another
product known as the Euclidean product defined by E(p,q)=p'q
where x'
is the conjugate of x
.
Each of these products separates into an “even” and an
“odd” part, here denoted by functions g_even()
and
g_odd()
for the Grassman product, and e_even()
and
e_odd()
for the Euclidean product. These are defined as
follows:
-
g_even(x,y)=(xy+yx)/2
-
g_odd(x,y)=(xy-yx)/2
-
e_even(x,y)=(x'y+y'x)/2
-
e_odd(x,y)=(x'y-y'x)/2
These functions have an equivalent binary operator.
The Grassman operators have a “*
”; they are
“%<*>%
” for the even Grassman product and
“%>*<%
” for the odd product.
The Euclidean operators have a “.
”; they are
“%<.>%
” for the even Euclidean product and
“%>.<%
” for the odd product.
Function dotprod()
returns the Euclidean even product of two
onionic vectors. That is, if x
and y
are eight-element
vectors of the components of two onions, return sum(x*y)
.
Note that the returned value is a numeric vector (compare
%<.>%
, e.even()
, which return onionic vectors with zero
imaginary part).
There is no binary operator for the ordinary Euclidean product (it seems
to be rarely needed in practice). For Conj(x)*x
, Norm(x)
is much more efficient and accurate.
Function prod()
is documented at Summary.Rd
.
Note
Frankly if you find yourself using these operators you might be better off using the clifford package, which has an extensive and consistent suite of product operators.
Author(s)
Robin K. S. Hankin
Examples
Oj %<.>% Oall