This contains some Sage/Cython code for working with Dirichlet characters using a numbering scheme described by Brian Conrey. I intend to eventually get this included in Sage, but for now I am developing it separately. Right now, to use this code, you can just use "load('dirichlet_conrey.pyx')" from a running Sage session: ~$ git clone https://github.com/jwbober/conrey-dirichlet-characters ... ~$ cd conrey-dirichlet-characters/ ~/conrey-dirichlet-characters$ sage ... sage: load('dirichlet_conrey.pyx') Compiling ./dirichlet_conrey.pyx... warning: _home_user_conrey_dirichlet_characters_dirichlet_conrey_pyx_0.pyx:938:12: Unreachable code sage: G = DirichletGroup_conrey(21) sage: G[4]*G[5] Dirichlet character with index 20 modulo 21 You can run "sage setup.py install" to build it as a module and put it in your Sage python modules directory, so that you can use it as "import dirichlet_conrey.pyx". To run the doctests, you need to actually run setup.py to install the module.