| 1 | initial version |
Although this probably won't work (see last paragraph of this response) I think your best chance is to use Cython. Cython (included with Sage) converts Python-like code into C which can then be compiled into a shared-object library and used by Python / Sage. It's intended use is to easily write code that can be used by Python but is optimized to use fast C data types instead of slower Python data structures.
Create a .pyx file containing your code and execute
$ sage -cython -a mycythonfile.pyx
This will output a corresponding .c file which can be compiled into a shared object library and imported in Python along with an .html file that neatly shows the C equivalent of each line of code.
Using Cython, you could make a copy of $SAGE_ROOT/devel/sage/crypto/lattice.py, called lattice.pyx, and then run the above command on it. However, I doubt that this will work since lattice.py probably depends on other Sage modules and objects. One would need to convert those to C as well and link them together and that sounds like quite a task just to send some matrices to a C program.
Now, if your goal is to just send these matrices generated by sage.crypto.lattice to your C program, I'd recommend using Python's file-handling routines to save the string representations of these matrices (using __repr__()) to a text file (or binary file if you have a lot of them) and then read them in using your C program. You can find out more about writing strings to files in the Python "Input and Output" Documentation.
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.