kernelopts(printbytes=false): readlib(ifactors):readlib(issqr):fsolve(x^3+x+1): isprime(101):with(combinat,powerset):readlib(rationalize): with(linalg,det,dotprod,multiply,scalarmul,transpose,vector): with(numtheory,divisors,factorset,isolve,J,L,msqrt,nextprime,issqrfree,\ GIgcd): print();print();print(`There will be a pause of up to 70 seconds,`); print(`depending on the machine.`); read biraF:read legen: Allp:='readlib('Allp',modpF)': allp:='readlib('allp',modpF)': AppT:='readlib('AppT',fcnF)': appT:='readlib('appT',fcnF)': Dat:='readlib('Dat',datF)': dat:='readlib('dat',datF)': Eadp:='readlib('Eadp',modpF)': eadp:='readlib('eadp',modpF)': Exam:='readlib('Exam',examP)': exam:='readlib('exam',examP)': Menu:='readlib('Menu',menuF)': menu:='readlib('menu',menuF)': Mulp:='readlib('Mulp',modpF)': mulp:='readlib('mulp',modpF)': Negp:='readlib('Negp',modpF)': negp:='readlib('negp',modpF)': Nota:='readlib('Nota',notaF)': nota:='readlib('nota',notaF)': Onp:='readlib('Onp',modpF)': onp:='readlib('onp',modpF)': Qfin:='readlib('Qfin',QF_)': qfin:='readlib('qfin',QF_)': seekT:='readlib('seekT',fcnF)': TesT:='readlib('TesT',fcnF)': torT:='readlib('torT',fcnF)': a1:='a1':a2:='a2':a3:='a3':a4:='a4':a6:='a6':x:='x':h:='h':d2:='d2': b2:=a1^2+4*a2:b4:=a1*a3+2*a4:b6:=a3^2+4*a6: b8:=(b2*b6-b4^2)/4:c4:=b2^2-24*b4: c6:=-b2^3+36*b2*b4-216*b6:c3:=c4^3:DD:=(c3-c6^2)/1728:jay:=c3/DD: Psi2:=x^3-3*c4*x-2*c6:Psi3:=x^4-6*c4*x^2-8*c6*x-3*c4^2: prac:=x^3+(b2/4)*x^2+(b4/2)*x+(b6/4):oux:=4*h^3+b2*h^2*d2+2*b4*h*d2^2+b6*d2^3: X:='X':Y:='Y':Z:='Z':U:='U':V:='V':Uo:='Uo':Vo:='Vo': al0:=(4*X^3+b2*X^2+2*b4*X+b6)^2:al1:=1:al2:=1: al3:=3*X^4+b2*X^3+3*b4*X^2+3*b6*X+b8: al4:=2*X^6+b2*X^5+5*b4*X^4+10*b6*X^3+10*b8*X^2+(b2*b8-b4*b6)*X+b4*b8-b6^2: aln:=4:fr2:=(T+16)^3-jay*T:fr3:=(T+27)*(T+3)^3-jay*T: s1:='s1':s2:='s2':s3:='s3':s4:='s4':s5:='s5': s6:='s6':s7:='s7':s8:='s8':s9:='s9':s10:='s10': S1:='S1':S2:='S2':S3:='S3':S4:='S4':S5:='S5': U_:=X:V_:=Y:X_:=U:Y_:=V:cu1:=s8*Uo+s9*Vo:cu2:=s5*Uo^2+s6*Uo*Vo+s7*Vo^2: cu3:=s1*Uo^3+s2*Uo^2*Vo+s3*Uo*Vo^2+s4*Vo^3:cub:=cu3+cu2+cu1+s10: cbu:=diff(cub,Uo):cbv:=diff(cub,Vo):cuh:=cu3+cu2*Z+cu1*Z^2+s10*Z^3: qu:=S1*Uo^4+S2*Uo^3+S3*Uo^2+S4*Uo+S5:lgcub:=10:lquar:=100:quzr:=true: QuarQ:=b2^2/16-2*b4-b2*x/2-3*x^2-(8*y+4*(a1*x+a3))*M-(b2/2+6*x)*M^2+M^4: eT:=table():read f: a:=proc();read cat:read apecsD:end: a():a:='a': tFr3[1]:=101:alias(uf=ifactor):Ncur0:=nops(et1): FT0:=0:Digits:=20:_EnvExplicit:=true:storE:=true:Nsubg:=16: l:=proc():lprint(args);end: print();print();print();l(`Welcome to`); l(` a a p p e e c c s s`); l(` a a p p e e c c s s`); l(` a a p p e e c s`); l(` a a p p e e e e e e e c s s`); l(` a a p p e c s`); l(` a a p e c s`); l(` a a p e e c c s s`); l(` a aa p e e c c s s`); l(` p`);l(``); l(` arithmetic of plane elliptic curves`);print(); l(`Version `.vern,daat); l(`(The apecs command Ver(); explains how to get the latest version.)`);l(``); l(`The usual first apecs command is Ein (for Elliptic curve input).`); l(`Other input commands are Ell, Ein0, Gcub, Quar, Genj, Exam.`); l(`Type in the command menu(); to see a list of all the apecs commands and`); l(`Menu(xxx); for more details about command xxx.`); l(`Nota(); lists the most important notation used by apecs.`);l(``); l(`Zpecs(); is the apecs command to update the catalog then exit.`); l(`You can exit without updating by the maple command quit.`);l(``); l(`At the prompt enter an apecs (or maple) command.`); l(`Use distinctive names for any variables you wish to introduce to avoid`); l(`overwriting apecs variables. In particular don't use single letters.`); l(`(The capitals A,..,Z are needed for the catalog names A11,.. of curves.)`); l(``); l(`Please let me know about bugs, glitches, your suggestions.. . The comma\ nd`); l(`Ver(); gives my address.`);print(); l(`If you interrupt apecs, certain variables (including "flags") can have`); l(`temporary -- incorrect -- values. You must quit and restart apecs`); l(`to be sure of the results.`);