LTF

Category Programming
Summary Linear Transformation Finder
Started June 16, 2007
Updated February 13, 2008
Files ltf-0.0.5.zip (28 KB)
ltf-0.0.5.tar.gz (19 KB)
ltf-0.0.5.gem (22 KB)

Linear Transformation Finder is a Ruby program that works together with Maxima to find linear transformations between vectors that satisfy given constraints. The problem that motivated this project was this:

What transformation would have the following effect? [0,0,0] -> [0,0,0] [1,1,1] -> [1/2,1/2,1/2] [0,1,1] -> [1,0,0] [1,0,1] -> [0,1,0] [1,1,0] -> [0,0,1]

(What this particular transformation should do is spin by π radians around the line x=y=z, and translate in towards the origin a bit.)

I hypothesized that a linear transformation of the following form would work:

[x,y,z] -> [c1*x + c2*y + c3*z + c4, c5*x + c6*y + c7*z + c8, c9*x + c10*y + c11*z + c12]

This is in fact the case, so the problem is finding values for the c* constants that satisfy the above 5 input/output constraints. This is where LTF comes in. LTF reads in a set of constraints, and produces Maxima code which will solve for the constants.

See the main documentation for more information, including the API.