   echo = 1
? ellinit([-1,0])
[0, 0, 0, -1, 0, 0, -2, 0, -1, 48, 0, 64, 1728, Vecsmall([1]), [Vecsmall([12
8, 1])], [0, 0, 0, 0, 0, 0, 0, 0]]
? ellinit([-17,0],1)
[0, 0, 0, -17, 0, 0, -34, 0, -289, 816, 0, 314432, 1728, Vecsmall([1]), [Vec
small([128, 1])], [0, 0, 0, 0, 0, 0, 0, 0]]
? ellsub(%,[-1,4],[-4,2])
[9, -24]
? ellj(I)
1728.0000000000000000000000000000000000
? acurve=ellinit([0,0,1,-1,0])
[0, 0, 1, -1, 0, 0, -2, 1, -1, 48, -216, 37, 110592/37, Vecsmall([1]), [Vecs
mall([128, 1])], [0, 0, 0, 0, 0, 0, 0, 0]]
? apoint=[2,2]
[2, 2]
? elladd(acurve,apoint,apoint)
[21/25, -56/125]
? ellak(acurve,1000000007)
43800
? ellan(acurve,100)
[1, -2, -3, 2, -2, 6, -1, 0, 6, 4, -5, -6, -2, 2, 6, -4, 0, -12, 0, -4, 3, 1
0, 2, 0, -1, 4, -9, -2, 6, -12, -4, 8, 15, 0, 2, 12, -1, 0, 6, 0, -9, -6, 2,
 -10, -12, -4, -9, 12, -6, 2, 0, -4, 1, 18, 10, 0, 0, -12, 8, 12, -8, 8, -6,
 -8, 4, -30, 8, 0, -6, -4, 9, 0, -1, 2, 3, 0, 5, -12, 4, 8, 9, 18, -15, 6, 0
, -4, -18, 0, 4, 24, 2, 4, 12, 18, 0, -24, 4, 12, -30, -2]
? ellap(acurve,10007)
66
? deu=direuler(p=2,100,1/(1-ellap(acurve,p)*x+if(acurve.disc%p,p,0)*x^2))
[1, -2, -3, 2, -2, 6, -1, 0, 6, 4, -5, -6, -2, 2, 6, -4, 0, -12, 0, -4, 3, 1
0, 2, 0, -1, 4, -9, -2, 6, -12, -4, 8, 15, 0, 2, 12, -1, 0, 6, 0, -9, -6, 2,
 -10, -12, -4, -9, 12, -6, 2, 0, -4, 1, 18, 10, 0, 0, -12, 8, 12, -8, 8, -6,
 -8, 4, -30, 8, 0, -6, -4, 9, 0, -1, 2, 3, 0, 5, -12, 4, 8, 9, 18, -15, 6, 0
, -4, -18, 0, 4, 24, 2, 4, 12, 18, 0, -24, 4, 12, -30, -2]
? ellan(acurve,100)==deu
1
? ellisoncurve(acurve,apoint)
1
? acurve=ellchangecurve(acurve,[-1,1,2,3])
[-4, -1, -7, -12, -12, 12, 4, 1, -1, 48, -216, 37, 110592/37, Vecsmall([1]),
 [Vecsmall([128, 1])], [0, 0, 0, 0, 0, 0, 0, 0]]
? apoint=ellchangepoint(apoint,[-1,1,2,3])
[1, 3]
? ellisoncurve(acurve,apoint)
1
? ellglobalred(acurve)
[37, [1, -1, 2, 2], 1, Mat([37, 1]), [[1, 5, 0, 1]]]
? ellheight(acurve,apoint)
0.81778253183950144377417759611107234575
? ellordinate(acurve,1)
[8, 3]
? ellpointtoz(acurve,apoint)
0.72491221490962306778878739838332384646
? ellztopoint(acurve,%)
[1.0000000000000000000000000000000000000, 3.00000000000000000000000000000000
00000]
? ellmul(acurve,apoint,10)
[-28919032218753260057646013785951999/292736325329248127651484680640160000, 
478051489392386968218136375373985436596569736643531551/158385319626308443937
475969221994173751192384064000000]
? ellwp(acurve,x+O(x^33))
x^-2 + 1/5*x^2 - 1/28*x^4 + 1/75*x^6 - 3/1540*x^8 + 1943/3822000*x^10 - 1/11
550*x^12 + 193/10510500*x^14 - 1269/392392000*x^16 + 21859/34684650000*x^18 
- 1087/9669660000*x^20 + 22179331/1060517858400000*x^22 - 463/124093970000*x
^24 + 47495017/70175140035000000*x^26 - 34997918161/291117454720092000000*x^
28 + O(x^30)
? q*Ser(ellan(acurve,100),q)
q - 2*q^2 - 3*q^3 + 2*q^4 - 2*q^5 + 6*q^6 - q^7 + 6*q^9 + 4*q^10 - 5*q^11 - 
6*q^12 - 2*q^13 + 2*q^14 + 6*q^15 - 4*q^16 - 12*q^18 - 4*q^20 + 3*q^21 + 10*
q^22 + 2*q^23 - q^25 + 4*q^26 - 9*q^27 - 2*q^28 + 6*q^29 - 12*q^30 - 4*q^31 
+ 8*q^32 + 15*q^33 + 2*q^35 + 12*q^36 - q^37 + 6*q^39 - 9*q^41 - 6*q^42 + 2*
q^43 - 10*q^44 - 12*q^45 - 4*q^46 - 9*q^47 + 12*q^48 - 6*q^49 + 2*q^50 - 4*q
^52 + q^53 + 18*q^54 + 10*q^55 - 12*q^58 + 8*q^59 + 12*q^60 - 8*q^61 + 8*q^6
2 - 6*q^63 - 8*q^64 + 4*q^65 - 30*q^66 + 8*q^67 - 6*q^69 - 4*q^70 + 9*q^71 -
 q^73 + 2*q^74 + 3*q^75 + 5*q^77 - 12*q^78 + 4*q^79 + 8*q^80 + 9*q^81 + 18*q
^82 - 15*q^83 + 6*q^84 - 4*q^86 - 18*q^87 + 4*q^89 + 24*q^90 + 2*q^91 + 4*q^
92 + 12*q^93 + 18*q^94 - 24*q^96 + 4*q^97 + 12*q^98 - 30*q^99 - 2*q^100 + O(
q^101)
? bcurve=ellinit([-3,0])
[0, 0, 0, -3, 0, 0, -6, 0, -9, 144, 0, 1728, 1728, Vecsmall([1]), [Vecsmall(
[128, 1])], [0, 0, 0, 0, 0, 0, 0, 0]]
? elllocalred(bcurve,2)
[6, 2, [1, 0, 0, 0], 1]
? elltaniyama(bcurve)
[x^-2 - x^2 + 3*x^6 - 2*x^10 + 7*x^14 + O(x^15), -x^-3 + 3*x - 3*x^5 + 8*x^9
 - 9*x^13 + O(x^14)]
? ccurve=ellinit([0,0,-1,-1,0])
[0, 0, -1, -1, 0, 0, -2, 1, -1, 48, -216, 37, 110592/37, Vecsmall([1]), [Vec
small([128, 1])], [0, 0, 0, 0, 0, 0, 0, 0]]
? l=elllseries(ccurve,2)
0.38157540826071121129371040958008663668
? abs(elllseries(ccurve,2,1.2)-l)<1.4e-38
1
? tcurve=ellinit([1,0,1,-19,26]);
? ellorder(tcurve,[1,2])
6
? elltors(tcurve)
[12, [6, 2], [[1, 2], [3, -2]]]
? mcurve=ellinit([-17,0]);
? mpoints=[[-1,4],[-4,2]]~;
? mhbi=ellbil(mcurve,mpoints,[9,24])
[-0.72448571035980184146215805860545027440, 1.307328627832055544492943428892
1943056]~
? ma=ellheightmatrix(mcurve,mpoints)

[1.1721830987006970106016415566698834135 0.447697388340895169139483498064433
13906]

[0.44769738834089516913948349806443313906 1.75502601617295071363242692695662
74446]

? matsolve(ma,mhbi)
[-1.0000000000000000000000000000000000000, 1.0000000000000000000000000000000
000000]~
? cmcurve=ellinit([0,-3/4,0,-2,-1])
[0, -3/4, 0, -2, -1, -3, -4, -4, -1, 105, 1323, -343, -3375, Vecsmall([1]), 
[Vecsmall([128, -1])], [0, 0, 0, 0, 0, 0, 0, 0]]
? ellmul(cmcurve,[x,y],quadgen(-7))
[((-2 + 3*w)*x^2 + (6 - w))/((-2 - 5*w)*x + (-4 - 2*w)), ((34 - 11*w)*y*x^2 
+ (40 - 28*w)*y*x + (22 + 23*w)*y)/((-90 - w)*x^2 + (-136 + 44*w)*x + (-40 +
 28*w))]
? if(getheap()!=HEAP,getheap())
? print("Total time spent: ",gettime);
Total time spent: 26
