Made a lot of changes to form_finder interface. Extra files for data abstraction and preparation for multithreading. Nothing works as of commit
Duplicated nfhpcurve program. Updated Makefiles for new files and test program
Pushed changes to form_finder class and new data classes
Fixed timing bugs and formatting
Fixed bugs concerning nfhpcurve and new data node structures
Added rules for profiling program and test output files
Updated INSTALL file from running autoreconf
Added checks for unordered_maps, Boost asio and thread libraries via aclocal macros
Added Autotools macros for Boost et al. Updated configure, makefiles and gitignore accordingly
Fixed bugs in timer class and tidied up.
Fixed bugs in make_basis() which caused problems for sign=0
Timer and threadpool complete. Tests added. Making check in libsrc
make[1]: Entering directory `/home/csc/maujby/Documents/eclib/libsrc'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/home/csc/maujby/Documents/eclib/libsrc'
Making check in tests
make[1]: Entering directory `/home/csc/maujby/Documents/eclib/tests'
Running procs checks...
for prog in smattest comptest rattest bigrattest ptest mptest tbessel mvectest mmattest mspace thilbert tp2points tilll vectest1 vectest2 mattest1 mattest2 space1 space2 svectest1 svectest2 tcon2 tlegcert timing threading; do echo "Testing ${prog}..."; ./${prog} < ./in/${prog}.in > ${prog}.testout 2>/dev/null && diff ${prog}.testout ./out/${prog}.out || exit $?; done
Testing smattest...
Testing comptest...
Testing rattest...
Testing bigrattest...
Testing ptest...
Testing mptest...
Testing tbessel...
Testing mvectest...
Testing mmattest...
Testing mspace...
Testing thilbert...
Testing tp2points...
Testing tilll...
Testing vectest1...
Testing vectest2...
Testing mattest1...
Testing mattest2...
Testing space1...
Testing space2...
Testing svectest1...
Testing svectest2...
Testing tcon2...
Testing tlegcert...
Testing timing...
Testing threading...
Running qcurves checks...
cp ./in/allgens.268605 .
for prog in tcurve tpoints theight thtconst tegr telog tdivpol tperiods tsat tsat2 tsat3 conductor tate torsion twist allisog checkgens; do echo "Testing ${prog}..."; ./${prog} < ./in/${prog}.in > ${prog}.testout 2>/dev/null && diff ${prog}.testout ./out/${prog}.out || exit $?; done
Testing tcurve...
Testing tpoints...
Testing theight...
Testing thtconst...
Testing tegr...
Testing telog...
Testing tdivpol...
Testing tperiods...
Testing tsat...
Testing tsat2...
Testing tsat3...
Testing conductor...
Testing tate...
Testing torsion...
Testing twist...
Testing allisog...
Testing checkgens...
rm -f ./allgens.268605
Running qrank checks...
for prog in tmrank tequiv d2; do echo "Testing ${prog}..."; ./${prog} < ./in/${prog}.in > ${prog}.testout 2>/dev/null && diff ${prog}.testout ./out/${prog}.out || exit $?; done
Testing tmrank...
Testing tequiv...
Testing d2...
rm -f PRIMES 1
Running g0n checks...
rm -rf nftmp
mkdir nftmp
for prog in modtest homtest hecketest mhcount tmanin nftest oftest tnfd; do echo "Testing ${prog}..."; ./${prog} < ./in/${prog}.in > ${prog}.testout 2>/dev/null && diff ${prog}.testout ./out/${prog}.out || exit $?; done
Testing modtest...
Testing homtest...
Testing hecketest...
Testing mhcount...
Testing tmanin...
Testing nftest...
Testing oftest...
Testing tnfd...
rm -rf nftmp
make  smattest comptest rattest bigrattest ptest mptest tbessel mvectest mmattest mspace thilbert tp2points tilll vectest1 vectest2 mattest1 mattest2 space1 space2 svectest1 svectest2 tcon2 tlegcert timing threading tcurve tpoints theight thtconst tegr telog tdivpol tperiods tsat tsat2 tsat3 conductor tate torsion twist allisog checkgens tmrank tequiv d2 modtest homtest hecketest mhcount tmanin nftest oftest tnfd
make[2]: Entering directory `/home/csc/maujby/Documents/eclib/tests'
make[2]: `smattest' is up to date.
make[2]: `comptest' is up to date.
make[2]: `rattest' is up to date.
make[2]: `bigrattest' is up to date.
make[2]: `ptest' is up to date.
make[2]: `mptest' is up to date.
make[2]: `tbessel' is up to date.
make[2]: `mvectest' is up to date.
make[2]: `mmattest' is up to date.
make[2]: `mspace' is up to date.
make[2]: `thilbert' is up to date.
make[2]: `tp2points' is up to date.
make[2]: `tilll' is up to date.
make[2]: `vectest1' is up to date.
make[2]: `vectest2' is up to date.
make[2]: `mattest1' is up to date.
make[2]: `mattest2' is up to date.
make[2]: `space1' is up to date.
make[2]: `space2' is up to date.
make[2]: `svectest1' is up to date.
make[2]: `svectest2' is up to date.
make[2]: `tcon2' is up to date.
make[2]: `tlegcert' is up to date.
make[2]: `timing' is up to date.
make[2]: `threading' is up to date.
make[2]: `tcurve' is up to date.
make[2]: `tpoints' is up to date.
make[2]: `theight' is up to date.
make[2]: `thtconst' is up to date.
make[2]: `tegr' is up to date.
make[2]: `telog' is up to date.
make[2]: `tdivpol' is up to date.
make[2]: `tperiods' is up to date.
make[2]: `tsat' is up to date.
make[2]: `tsat2' is up to date.
make[2]: `tsat3' is up to date.
make[2]: `conductor' is up to date.
make[2]: `tate' is up to date.
make[2]: `torsion' is up to date.
make[2]: `twist' is up to date.
make[2]: `allisog' is up to date.
make[2]: `checkgens' is up to date.
make[2]: `tmrank' is up to date.
make[2]: `tequiv' is up to date.
make[2]: `d2' is up to date.
make[2]: `modtest' is up to date.
make[2]: `homtest' is up to date.
make[2]: `hecketest' is up to date.
make[2]: `mhcount' is up to date.
make[2]: `tmanin' is up to date.
make[2]: `nftest' is up to date.
make[2]: `oftest' is up to date.
make[2]: `tnfd' is up to date.
make[2]: Leaving directory `/home/csc/maujby/Documents/eclib/tests'
rm -f *.testout PRIMES 1
make[1]: Leaving directory `/home/csc/maujby/Documents/eclib/tests'
Making check in progs
make[1]: Entering directory `/home/csc/maujby/Documents/eclib/progs'
Checking conics and cubics programs...
for prog in solve_conic solve_legendre reduce_cubics list_cubics; do echo "Testing ${prog}..."; ./${prog} < ./in/${prog}.in > ${prog}.testout 2>/dev/null && diff ${prog}.testout ./out/${prog}.out || exit $?; done
Testing solve_conic...
Testing solve_legendre...
Testing reduce_cubics...
Testing list_cubics...
Checking qcurves programs...
for prog in point_search indep_test; do echo "Testing ${prog}..."; ./${prog} < ./in/${prog}.in > ${prog}.testout 2>/dev/null && diff ${prog}.testout ./out/${prog}.out || exit $?; done
Testing point_search...
Testing indep_test...
Checking qrank programs...
for prog in mwrank reduce_quartics quartic_points; do echo "Testing ${prog}..."; ./${prog} < ./in/${prog}.in > ${prog}.testout 2>/dev/null && diff ${prog}.testout ./out/${prog}.out || exit $?; done
Testing mwrank...
Testing reduce_quartics...
Testing quartic_points...
rm -f PRIMES 1
Checking g0n programs...
rm -rf nftmp
mkdir nftmp
for prog in ecnf nfhpcurve nfhpcurve_prof nfhpmcurve h1first h1clist h1bsdcurisog qexp h1bsd h1curve pcurve checkap moreap nfcount aplist; do echo "Testing ${prog}..."; ./${prog} < ./in/${prog}.in > ${prog}.testout 2>/dev/null && diff ${prog}.testout ./out/${prog}.out || exit $?; done
Testing ecnf...
Testing nfhpcurve...
4c4
< Output newforms to file? (0/1) Enter first and last N:
---
> Output newforms to file? (0/1) Enter level:
10,59c10,14
<
< >>>Level 12:	0 newform(s) found.
< No newforms.
< Finished level 12
<
< >>>Level 13:	0 newform(s) found.
< No newforms.
< Finished level 13
<
< >>>Level 14:	1 newform(s) found.
< Computing 1 curves...
< 1 [1,0,1,4,-6]  N = 14  [(5,1;1,3),1,1;1]
< All curves found successfully!
< Finished level 14
<
< >>>Level 15:	1 newform(s) found.
< Computing 1 curves...
< 1 [1,1,1,-10,-10]  N = 15  [(13,2;3,7),1,1;2]
< All curves found successfully!
< Finished level 15
<
< >>>Level 16:	0 newform(s) found.
< No newforms.
< Finished level 16
<
< >>>Level 17:	1 newform(s) found.
< Computing 1 curves...
< 1 [1,-1,1,-1,-14]  N = 17  [(6,1;1,3),1,1;1]
< All curves found successfully!
< Finished level 17
<
< >>>Level 18:	0 newform(s) found.
< No newforms.
< Finished level 18
<
< >>>Level 19:	1 newform(s) found.
< Computing 1 curves...
< 1 [0,1,1,-9,-15]  N = 19  [(5,1;1,4),1,1;1]
< All curves found successfully!
< Finished level 19
<
< >>>Level 20:	1 newform(s) found.
< Computing 1 curves...
< 1 [0,1,0,4,4]  N = 20  [(7,1;1,3),1,1;1]
< All curves found successfully!
< Finished level 20
<
< >>>Level 21:	1 newform(s) found.
< Computing 1 curves...
< 1 [1,0,0,1,0]  N = 21  [(17,2;2,5),1,1;1]
---
> Enter level:
> >>>Level 37:	2 newform(s) found.
> Computing 2 curves...
> 1 [0,0,1,-1,0]  N = 37  [(14,1;3,8),1,1;2]
> 2 [0,1,1,-23,-50]  N = 37  [(15,1;2,5),1,1;2]
61,81c16,18
< Finished level 21
<
< >>>Level 22:	0 newform(s) found.
< No newforms.
< Finished level 22
<
< >>>Level 23:	0 newform(s) found.
< No newforms.
< Finished level 23
<
< >>>Level 24:	1 newform(s) found.
< Computing 1 curves...
< 1 [0,-1,0,1,0]  N = 24  [(35,4;4,11),1,1;1]
< All curves found successfully!
< Finished level 24
<
< >>>Level 25:	0 newform(s) found.
< No newforms.
< Finished level 25
<
< >>>Level 26:	2 newform(s) found.
---
> Finished level 37
> Enter level:
> >>>Level 50:	2 newform(s) found.
83,84c20,21
< 1 [1,0,1,-5,-8]  N = 26  [(9,1;1,3),1,1;1]
< 2 [1,-1,1,-3,3]  N = 26  [(9,1;1,3),1,1;1]
---
> 1 [1,0,1,-1,-2]  N = 50  [(17,1;1,3),1,1;1]
> 2 [1,1,1,-3,1]  N = 50  [(17,1;1,3),1,1;1]
86,112c23,25
< Finished level 26
<
< >>>Level 27:	1 newform(s) found.
< Computing 1 curves...
< 1 [0,0,1,0,-7]  N = 27  [(7,1;1,4),1,1;1]
< All curves found successfully!
< Finished level 27
<
< >>>Level 28:	0 newform(s) found.
< No newforms.
< Finished level 28
<
< >>>Level 29:	0 newform(s) found.
< No newforms.
< Finished level 29
<
< >>>Level 30:	1 newform(s) found.
< Computing 1 curves...
< 1 [1,0,1,1,2]  N = 30  [(13,1;3,7),1,1;1]
< All curves found successfully!
< Finished level 30
<
< >>>Level 31:	0 newform(s) found.
< No newforms.
< Finished level 31
<
< >>>Level 32:	1 newform(s) found.
---
> Finished level 50
> Enter level:
> >>>Level 51:	1 newform(s) found.
114c27
< 1 [0,0,0,4,0]  N = 32  [(11,1;1,3),1,1;1]
---
> 1 [0,1,1,1,-1]  N = 51  [(13,1;1,4),1,1;1]
116,118c29,31
< Finished level 32
<
< >>>Level 33:	1 newform(s) found.
---
> Finished level 51
> Enter level:
> >>>Level 52:	1 newform(s) found.
120c33
< 1 [1,1,0,-11,0]  N = 33  [(-13,1;-2,5),1,1;2]
---
> 1 [0,0,0,1,-10]  N = 52  [(21,1;2,5),1,1;1]
122,124c35,37
< Finished level 33
<
< >>>Level 34:	1 newform(s) found.
---
> Finished level 52
> Enter level:
> >>>Level 53:	1 newform(s) found.
126c39
< 1 [1,0,0,-3,1]  N = 34  [(-29,2;-3,7),1,1;2]
---
> 1 [1,-1,1,0,0]  N = 53  [(-21,1;-2,5),1,1;1]
128,132c41,46
< Finished level 34
<
< >>>Level 35:	1 newform(s) found.
< Computing 1 curves...
< 1 [0,1,1,9,1]  N = 35  [(12,1;1,3),1,1;1]
---
> Finished level 53
> Enter level:
> >>>Level 54:	2 newform(s) found.
> Computing 2 curves...
> 1 [1,-1,0,12,8]  N = 54  [(11,1;1,5),1,1;1]
> 2 [1,-1,1,1,-1]  N = 54  [(11,1;1,5),1,1;1]
134,138c48,59
< Finished level 35
<
< >>>Level 36:	1 newform(s) found.
< Computing 1 curves...
< 1 [0,0,0,0,1]  N = 36  [(29,2;2,5),1,1;1]
---
> Finished level 54
> Enter level:
> >>>Level 55:	1 newform(s) found.
> Computing 1 curves...
> 1 [1,-1,0,1,0]  N = 55  [(14,1;1,4),1,1;1]
> All curves found successfully!
> Finished level 55
> Enter level:
> >>>Level 56:	2 newform(s) found.
> Computing 2 curves...
> 1 [0,0,0,1,2]  N = 56  [(19,1;1,3),1,1;1]
> 2 [0,-1,0,0,-4]  N = 56  [(19,1;1,3),1,1;1]
140,142c61,71
< Finished level 36
<
< >>>Level 37:	2 newform(s) found.
---
> Finished level 56
> Enter level:
> >>>Level 57:	3 newform(s) found.
> Computing 3 curves...
> 1 [0,-1,1,-2,2]  N = 57  [(23,1;2,5),1,1;1]
> 2 [0,1,1,20,-32]  N = 57  [(23,1;2,5),1,1;1]
> 3 [1,0,1,-7,5]  N = 57  [(23,1;2,5),1,1;2]
> All curves found successfully!
> Finished level 57
> Enter level:
> >>>Level 58:	2 newform(s) found.
144,145c73,106
< 1 [0,0,1,-1,0]  N = 37  [(14,1;3,8),1,1;2]
< 2 [0,1,1,-23,-50]  N = 37  [(15,1;2,5),1,1;2]
---
> 1 [1,-1,0,-1,1]  N = 58  [(-23,1;-2,5),1,1;1]
> 2 [1,1,1,5,9]  N = 58  [(-23,1;-2,5),1,1;1]
> ******************************L(f,31)/ip = 19.99999933184035365079434 is not integral! (denom = 1496649)
> Using rounded value mminus=20
> All curves found successfully!
> Finished level 58
> Enter level:
> >>>Level 59:	0 newform(s) found.
> No newforms.
> Finished level 59
> Enter level:
> >>>Level 60:	0 newform(s) found.
> No newforms.
> Finished level 60
> Enter level:
> >>>Level 77:	3 newform(s) found.
> Computing 3 curves...
> 1 [0,0,1,2,0]  N = 77  [(31,1;2,5),1,1;1]
> 2 [0,1,1,-49,600]  N = 77  [(26,1;1,3),2,2;1]
> 3 [1,1,0,4,11]  N = 77  [(26,1;1,3),1,1;1]
> All curves found successfully!
> Finished level 77
> Enter level:
> >>>Level 90:	3 newform(s) found.
> Computing 3 curves...
> 1 [1,-1,0,6,0]  N = 90  [(-77,2;-3,7),1,1;1]
> 2 [1,-1,1,-8,11]  N = 90  [(-77,2;-3,7),1,1;1]
> 3 [1,-1,1,13,-61]  N = 90  [(13,1;1,7),2,2;1]
> All curves found successfully!
> Finished level 90
> Enter level:
> >>>Level 389:	1 newform(s) found.
> Computing 1 curves...
> 1 [0,1,1,-2,0]  N = 389  [(-111,1;-2,7),1,1;2]
147c108,109
< Finished level 37
---
> Finished level 389
> Enter level:
\ No newline at end of file
make[1]: Leaving directory `/home/csc/maujby/Documents/eclib/progs' now passes.
Added tests missing from last commit
Changed default from append to truncate output files
Removed dependancy on unordered_map(s). Using simple hash function
Multithreading success. Needs tidying up and testing
Fixed go_up bug for serial
Changed node flag name
Added profiling program for tmanin
Fixed serial bug