RECIP  REpository of Complex multIPlication sage code.
This started out as code meant for computing with Shimura's RECIProcity law,
but grew into a collection of much of the Sage code written by me for my
research.
When using this package in a publication, it is highly likely that it is
approprate to cite certain publications. Please CITE the relevant JOURNAL publications,
as well as giving the URL of this repository.
Here is a list of functionalities of this repository, together with the
publications that should be cited when you use them, and the name of the file
that has examples.

Igusa class polynomials (proven correct)
See both "Igusa class polynomials (not proven correct)" and
"Denominators of Igusa class polynomials" below.
 Nonmaximal orders of CMfields and their polarized ideal classes and Igusa
class polynomials.
cite [BissonStreng] (code is written for, part of, and based on, this publication)
see orders.sage for examples
 (n,n)isogenies between polarized ideal classes
cite [BLS]
see bls.sage for examples
 Computations related to Shimura's reciprocity law
cite [Streng12] (code is written for, part of, and based on, this publication)
see article.sage for examples
 Igusa class polynomials (not proven correct)
cite [Streng14], [vWamelen], [Weng] (code is based on these publications)
 Denominators of Igusa class polynomials
cite [BouyerStreng] (code is written for, and hence part of, this publication)
and depending on how the code is used, and on the kind of quartic CMfield
also cite one or more of:
[BouyerStreng], [GL], [LV], [Yang] (large parts of the code are based on these)
see denominators.sage for examples
Here is a list of Sage programs written by my students and me that is not part
of this repository.

Height reduction of binary forms and hyperelliptic curves.
(with Florian Bouyer)
https://bitbucket.org/mstreng/reduce
cite [BouyerS] (code is written for, part of, and based on, this publication)
 Solving conics and Mestre's algorithm
(with Florian Bouyer)
now part of the standard Sage functionality
 Hilbert modular polynomials
(by Chloe Martindale)
contact her if you are interested
 The CM class number one problem for genus 2 and 3
(by Pınar Kılıçer)
contact her if you are interested
To use the latest version of this package directly from the web, start Sage
and type::
sage: load("https://bitbucket.org/mstreng/recip/raw/master/recip_online.sage")
To use this package offline, download it first and extract it to some
directory, say "somewhere_on_my_drive/recip", then start Sage and type::
sage: load_attach_path("somewhere_on_my_drive/recip")
sage: load("recip.sage")
To view the code, see::
https://bitbucket.org/mstreng/recip
References:
For [BissonStreng], [BouyerStreng], [BLS (BrökerLauterStreng)], [Streng12 (An explicit version of Shimura's reciprocity law for Siegel
modular functions)], [Streng14 (Computing Igusa Class Polynomials)],
see
Publications.

[GL]  Genus 2 curves with complex multiplication  Eyal Goren and
Kristin Lauter

[LV]  An arithmetic intersection formula for denominators of Igusa class
polynomials  Kristin Lauter and Bianca Viray
arXiv:1210.7841v1

[Yang]  Arithmetic interseciton on a Hilbert modular surface and the
Faltings height  Tonghai Yang
http://www.math.wisc.edu/~thyang/general4L.pdf
More:
(Very) old versions of recip:
 version 0.2.1, 26 August 2013, tested with Sage 5.12.beta1
 version 0.2, 17 August 2013, tested with Sage 5.11
 version 0.1.3, 21 November 2012
 version 0.1.2, 7th August 2012
 version 0.1, 17th July 2012