## Documentation for eis (a project by M.Kuss and J.Bruinier) ## Last modified on March 24, 2000 Contents ======== 1. What is eis? 2. How to use eis? 3. On which systems is eis running? 4. Where can I get the source code of eis? 5. Plans for improving eis in the future 6. Examples of Eisenstein series ============================================================ 1. What is eis? =============== In our paper "Eisenstein series attached to lattices and modular forms on orthogonal groups" we gave explicit formulas for computing Fourier coefficients of certain Eisenstein series attached to lattices (Theorem 4.8). To evaluate these formulas we have written eis. eis is written in C++. eis is free for non-commercial use. For comments, bugs and questions concerning eis write to one of the following addresses: michael.kuss@urz.uni-heidelberg.de bruinier@mathi.uni-heidelberg.de ============================================================ 2. How to use eis? ================== Throughout this documentation we use the notation of the above paper. At the moment, eis is only running in interactive mode. Control by command line arguments is planned in the future (cf. sect. 5). To start eis just run the binary named "eis.out". At startup eis is asking you for the Gram matrix S corresponding to the lattice L. (S is an even integral matrix) You may enter S in one of the following ways: - Enter S as an array of its rows, e.g. [[6,2],[2,8]] refers to the matrix / 6 2 \ S = ( ). \ 2 8 / - Enter the letter H if S is a hyperbolic plane, e.g. H refers to the matrix / 0 1 \ S = ( ). \ 1 0 / - Enter an integer if S is a 1x1 matrix, e.g. 4 refers to the matrix S = (4). - If S is the orthogonal sum of S_1,...,S_n, then enter each of the matrices S_1,...,S_n in one of the manners above seperated by spaces. E.g. [[6,2],[2,8]] H 4 would refer to the matrix / 6 2 0 0 0 \ | | | 2 8 0 0 0 | | | S = | 0 0 0 1 0 |. | | | 0 0 1 0 0 | | | \ 0 0 0 0 4 / - To read the input (in one of the above forms) from a file, just enter the quoted file name, e.g. "Gram.dat" would read the description of S from a file named Gram.dat Then eis prints the matrix S, the determinant of S, and the signature of S. (If you have misspelled S, just press CTRL-C to abort eis and start eis once again). If b+ is odd (the signature of L is (b+,b-)) eis aborts reporting an error. Next you are asked for an element gamma in the discriminant group L'/L. Just enter the components of gamma (which are rational numbers) seperated by spaces, e.g. 1/2 -1/2 0 0 0 would refer to / 1/2 \ | | | -1/2 | | | gamma = | 0 |. | | | 0 | | | \ 0 / Then you are asked for the index n of the Fourier coefficient c(n) to be computed. You may - enter a positive rational number if you want to compute only one coefficient. E.g. 3/2 would calculate the Fourier coefficient c(3/2), 5 would calculate the Fourier coefficient c(5). Or - enter a '<' - sign followed by a positive rational number N to compute all c(n) with n<=N, e.g. <3 would calculate the Fourier coefficients c(n) with n<=3. Finally you are asked for the name of a file into which the computed shall be stored. Now be patient while eis is running. ============================================================ 3. On which systems is eis running? =================================== Actually eis is written in C++ using a GNU C++ compiler and some GNU C++ libraries. The binary does not need any libs because all needed stuff of the libs has been compiled statically into the binary. The binary should run on any Linux system using an Intel i586 compatible processor (e.g. P, P-II, P-III, K6, K7). If a GNU C++ compiler and all the required libs are present, eis should also compile and run on other systems. ============================================================ 4. Where can I get the source code of eis? ========================================== Actually, yet the source code has not been fully commented, and even on i586 systems the source code cannot be always compiled successfully. (this is due to a bug in newer C++ libraries; on such systems eis can be compiled, but is crashing few moments after starting). We are working on this problem. When it is fixed, we will also put the source code on J. Bruinier's home page. If you ***really*** need the source code of eis before that day, please contact michael.kuss@urz.uni-heidelberg.de ============================================================ 5. Plans for improving eis in the future ======================================== Actually the development of eis has not yet been finished. The current version of eis is running stable on intel-linux-platforms and has been tested (cf. sect. 6). Ideas for future versions of eis (expected in April/May 2000) are: - full documentation of the source code - remove GNU C++ - specific parts of source code - use non-GNU-C++ libs - implement a faster algorithm for the calculation - add command line control ============================================================ 6. Examples of Eisenstein series ======================================== 1.) Elliptic Eisenstein series of weight 4 for SL_2(Z) (normalized such that its constant term equals 2): S=H H H H gamma=0 0 0 0 0 0 0 0 One may for instance also take S=[[ 2, 0,-1, 0, 0, 0, 0, 0], [ 0, 2, 0,-1, 0, 0, 0, 0], [-1, 0, 2,-1, 0, 0, 0, 0], [ 0,-1,-1, 2,-1, 0, 0, 0], [ 0, 0, 0,-1, 2,-1, 0, 0], [ 0, 0, 0, 0,-1, 2,-1, 0], [ 0, 0, 0, 0, 0,-1, 2,-1], [ 0, 0, 0, 0, 0, 0,-1, 2]] or any other Gram matrix of the positive definite even unimodular lattice of rank 8. 2.) Elliptic Eisenstein series of weight 6 for SL_2(Z) (normalized such that its constant term equals 2): S=H H H H H H gamma=0 0 0 0 0 0 0 0 0 0 0 0 3.) Cohen Eisenstein series of weight 7/2 for \Gamma_0(4) (normalized such that its constant term equals 2): S=2 H H H gamma= 0 0 0 0 0 0 0 gamma=1/2 0 0 0 0 0 0 4.) Cohen Eisenstein series of weight 5/2 for \Gamma_0(4) (normalized such that its constant term equals 2): S=-2 H H gamma=0 0 0 0 0 0 0 gamma=1/2 0 0 0 0 0 0 5.) The case S=[[-4, 0,-2],[0,-2,-1],[-2,-1,-2]] H H gamma= 0 0 0 0 0 0 0 gamma= 1/2 0 0 0 0 0 0 gamma= 1/4 1/2 0 0 0 0 0 gamma=-1/4 -1/2 0 0 0 0 0 is treated in M. Bundschuh's diploma-thesis "Ueber die Existenz von Modulformen zu orthogonalen Gruppen mit vorgegebenen Null- und Polstellen" (University of Heidelberg, 1998). The Eisenstein series E is expressed by means of elementary theta series. Note that the above values of gamma form a set of representatives for L'/L. A few other cases are also discussed in Bundschuhs thesis in the same manner.