I maintain some computer code for computations relating to my research.  These scripts are mostly 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

  • 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;
  • 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;
  • To use a Sage notebook, upload it to the notebook interface.

Illustrating Number Theory

I’ve taken an interest in the illustration of number theory with computers and 3d printing, etc.  Click here to view my gallery.


Isogeny-based cryptography is a primary candidate for post-quantum cryptography. 

Ring Learning with Errors

Ring Learning with Errors is a front-runner for a hard problem upon which to base post-quantum cryptography.  Here are some algorithms for attempting to solve it.

Schmidt Arrangements

Elliptic Divisibility Sequences and Elliptic Nets

Ethiopian Dinner Game

Sage Mathematics Software

I do a wee little bit of development for the mathematical software Sage.

Support and Disclaimer

Some of this material is based upon work supported by the National Science Foundation, the National Security Agency, and the National Science and Engineering Research Council. Any opinions, findings and conclusions or recommendations 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), the National Security Agency (NSA), or the National Science and Engineering Research Council of Canada (NSERC).