Documentation for the eclib library (building and running) % Time-stamp: <2023-11-10 15:16:50 john> 0. Prerequisites: gmp, pari, ntl, flint are all available for example as ubuntu packages. Configure will complain if it cannot find them. 1. Download, build and install: (a) Get the latest version of eclib from GitHub, e.g. wget https://github.com/JohnCremona/eclib/releases/download/v20230424/eclib-20230424.tar.bz2 (b) Unpack it using tar jxf eclib-20230424.tar.bz2 (c) Change into that directory: cd eclib-20230424 (d) Configure using ./configure after reading the README file to see if you will need non-default options. (e) make; make check; [make install] For the make install step, do it as superuser if you did not specify something non-default as --prefix in the ./configure step, otherwise make sure that the bin subdirectory of the install directory (say INSTALL_DIR) is in your PATH. 2. To run the modular symbols code to find modular elliptic curves: (a) Make your own working directory, say mkdir ~/g0n cd ~/g0n (b) Make a subdirectory which will hold newform data (as binary files). The default is mkdir newforms and if you use any other name you will need to set the environment variable NF_DIR to this directory. (c) Modular elliptic curve programs are in $INSTALL_DIR/bin. Several expect to read & write files in the newforms directory $NF_DIR. Beware: if you change the source code and run the resulting programs, this may well overwrite the data files in $NF_DIR with garbage. So when testing it is a good idea to create a new testing copy of $NF_DIR, leaving your master one untouched. My master newforms directory (containing all data to 235000) is >23G. Question: why would you want or need to copy or use old newforms data? Answer: to find the newforms at level N, the program will need to knw about newforms at all levels M