Greetings!
We're working on a linear algebra package (called lisp-matrix for lack of a more marketable name ;) ) in CL. We plan to call the BLAS and LAPACK for matrix-matrix multiplications and factorizations, and we want to use CFFI for maximum portability (the older package Matlisp has only been ported to SBCL and Allegro CL).
The BLAS and LAPACK fully support complex numbers (single-float and couple-float), and they are stored with the same layout in memory as a C struct would use. C99 supports complex floating-point types. As such, we would like to include complex number support in lisp-matrix. However, CFFI doesn't support passing C structs by value, so we can't implement a complex number interface in CFFI using DEFCSTRUCT.
We would be glad to help implement complex number support in CFFI, but would like some advice on the difficulty of such a project, and how we might proceed.
We've written up some plans for the lisp-matrix project -- you can see them here:
http://www.cs.berkeley.edu/~mhoemmen/lisp-matrix/
Best, mfh