Monday, November 20, 2006

Outer product

Given two three vectors the "inner" product is:


...........|X|
[x y z]|Y| = [xX + yY + zZ]
...........|Z|

Which we use all the time (dot product). There is
also an outer product:

|x|.................|xX xY xZ|
|y|[X Y Z] = |yX yY yZ|
|z|.................|zX zY zZ|

I'm not sure this is useful for anything in graphics, or even what this thing is operationally.

6 comments:

Unknown said...

i'm currently using the outer product for a cholesky decomposition: http://en.wikipedia.org/wiki/Cholesky_decomposition

btw, awesome blog, i'll be reading for sure :D really enjoyed many of your papers too!

Joe said...

If the inner product projects onto a vector, the outer product can be used to project onto the plane that the vector would serve as a normal to, as (I - v_1v_1^T)v_2.

Sebastien said...

I think what joe said was slightly inaccurate. If you do the outer product of a unit vector with itself, you get a matrix that will project a given vector into its component that is *parallel* to the unit vector. Try it with (1,0,0) for instance.

Quantum physics/computing folks use it all the time, but usually in bra-ket notation. Wikipedia says: "The outer product is useful in computing physical quantities (e.g. the tensor of inertia), and performing transform operations in digital signal processing and digital image processing. It is also useful in statistical analysis for computing the covariance and auto-covariance matrices for two random variables."

(BTW, great to see you started a blog, Pete!! I became a big fan of your work when I was a grad student in computer graphics at Universite de Montreal.)

Jared M Johnson said...

I use the outer product for per-channel gradient calculation. You have a RGB value and you have a three-dimensional gradient vector. You need a three dimensional gradient vector for each channel. Basically the outer product lets you organize and compute this data in an intuitive manner.

AJW said...

A good book for CS application is Geometric Algebra for CS by Dorsett.

AJW

AJW said...

Vector space is much more than just a space of vectors! The outer product makes the subspaces of the vector space explicit elements of computation. The normal vector outcome of the cross product representing the area of the parallelogram forces a 3d representation interpretation of a 2-d plane.

The outer product is defined for n-space the cross product is only 3-d.

If you struggled with line integrals or stokes theorem the other product will give you great insight.

Lastly, Leo Dorst, Geometric algebra for C.S. will open you up to the wonderful and unfortunately misplaced world of Grassmann.

AJW