University of Colorado, Boulder

I maintain some computer scripts for computations relating to my research. These are for the computer algebra systems Pari/GP and Sage. You are welcome to download and use these scripts; they and the software to run them (Pari & Sage) are free. Please let me know if you encounter errors.

Notes on usage: 1) To use a Pari/GP script, load the script by typing "\r filename" at the prompt, where filename includes the path, then see the script for descriptions of functions; 2) To use a Sage script, type "attach('filename')" at the prompt; it also works simply to cut and paste the text of the script file into the first cell of a notebook; 3) To use a Sage notebook, upload it to the notebook interface.

Some of this material is based upon work supported by the National Science Foundation under Grant No. 0802915 and the National Science and Engineering Research Council Postdoctoral Fellowship No. 373333. Any opinions, findings and conclusions or recomendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation of the USA (NSF) or the National Science and Engineering Research Council of Canada (NSERC).

**Ring-LWE and Poly-LWE attack**[ Sage Notebook ] - This implements the algorithms in our paper Provably weak instances of Ring-LWE (with Yara Elias, Kristin E. Lauter and Ekin Ozman).**Tate pairing computation via elliptic nets**[ Pari/GP ] - This implements the algorithms in my paper The Tate pairing via elliptic nets. Note: For other implementations, see also Graeme Taylor, who has implemented it for SAGE and has notes on his improvements; Ben Lynn, who has implemented it in his Pairing-Based Cryptography Library as part of his thesis; and and Augusto Jun Devegili at University College Dublin. Many of the formulas my be found in my formulary.**Elliptic Divisibility Sequences Tools**[ Pari/GP | SAGE | Example Sage Notebook | PDF of Example Notebook ] - These are general-purpose algorithms for experimenting with elliptic divisibility sequences over any field. Move between sequences and curves, generate terms efficiently, etc. Many of the formulas may be found in my formulary.**Elliptic Nets Tools**[ Pari/GP ] - These are general-purpose algorithms for experimenting with rank two elliptic nets over any field. It requires the use of the Elliptic Divisibility Sequences Tools above. Many of the formulas may be found in my formulary.**Ethiopian Dinner Game**[ view SAGE notebook online | SAGE script | SAGE notebook for download ] - Tools for experimenting with the Ethiopian Dinner Game. See the paper*How to make the most of a shared meal: plan the last bite first*.

For the field K = Q(sqrt(-3)) with ring of integer O_K, a K-Bianchi circle is the image of the real line under a Mobius transformation in PSL_2(O_K). This image shows the K-Bianchi circles of curvatures less than or equal to 20*sqrt(3) which intersect the fundamental domain (including boundary) of the Eisenstein integers. Curvatures are all multiples of sqrt(3); the colour indicates whether the multiple is even or odd. See my recent paper,

Circles up to curvature 30. Note: this image includes circles in PGL_2(Z[i]), hence it is actually two copies of the Schmidt arrangement at right angles. See my recent paper,

Circles up to curvature 30*sqrt(2). See my recent paper,

Circles up to curvature 30*sqrt(7). See my recent paper,

Circles up to curvature 30*sqrt(11). See my recent paper,

In blue are the K-Bianchi circles up to curvature 60*sqrt(15). Since Q(sqrt(-15)) has class number 2, the extended Bianchi group produces more circles (in orange). The Schmidt arrangement is disconnected because the field is non-Euclidean. See my recent paper,

- Sage Mathematics Software
- Single cell Sage computation online (example
**2+2**or**EllipticCurve('37a').ap(79)**) - Some example code for plotting (if you want to use the single cell above as a graphing tool)
- Look for me on trac (sage development)
- My group at Sage Days 33
- Sage Developer's Guide