onion (version 1.5-0)

prods: Various products of two onions

Description

Returns various inner and outer products of two onionic vectors.

Usage

x %<*>% y
x %>*<% y="" x="" %<.="">% y
x %>.

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.

Examples

Run this code
# NOT RUN {
Oj %<.>% Oall
# }

Run the code above in your browser using DataCamp Workspace