[math-fun] Permutations & Finite Groups in Lisp
Hey all: I just wanted to say that I've implemented code for manipulating permutations in Lisp in a library called CL-PERMUTATION. The more interesting thing perhaps is additional code for manipulating permutation groups. For example, you can generate random group elements, compute strong generators, test membership, calculate order, etc. It's not as complete or efficient as GAP, but it's in Lisp. Who doesn't want that? :) I want to try to integrate it with Maxima, but I don't know how to really do that at the moment. You can download the code and see the README which has examples here. https://bitbucket.org/tarballs_are_good/cl-permutation It includes for example a computation showing you can't flip a single edge on a Rubik's cube. Contributions are of course welcome. Cheers, Robert P.S., I'm also working on code (no where near complete) for manipulating real algebraic numbers. That might be more interesting for you folks whenever it gets done.
Although it may not be the most efficient method in the world, you can do rational operations on real algebraic numbers by choosing a square matrix whose characteristic polynomial is the minimal polynomial for the algebraic number. (Remember the theorem: a matrix satisfies its own characteristic polynomial, so this automatically handles the "mod p(x)" part.) As long as the matrices don't get too large, this may be "good enough" for some government work. I've done this in Maxima many times. Comparisons for ordering (i.e., is a<b ?) are more challenging, tho. At 07:36 AM 7/2/2012, Robert Smith wrote:
P.S., I'm also working on code (no where near complete) for manipulating real algebraic numbers. That might be more interesting for you folks whenever it gets done.
participants (2)
-
Henry Baker -
Robert Smith