R={
[[169,[x^2+x,x^3+x^2+1]]
,[196,[x^6+3*x^5+6*x^4+7*x^3+6*x^2+3*x+1,x^2+x]]
,[249,[2*x^6+3*x^5+x^4+x^3-x,x^3+1]]
,[249,[x^2+x,x^3+1]]
,[256,[-2*x^5-3*x^4-x^3+x^2+x,1]]
,[277,[x^5-2*x^3+2*x^2-x,1]]
,[277,[x^5-9*x^4+14*x^3-19*x^2+11*x-6,1]]
,[294,[x^4+x^2,x^3+1]]
,[294,[-2*x^5+x^4+3*x^3-6*x^2-9*x-3,x^3+x^2+x]]
,[295,[x^5+15*x^4+53*x^3-50*x^2-109*x-38,x^2+x+1]]
,[295,[-x^4,x^3+1]]
,[324,[x^4+2*x^3+2*x^2+x,x^3+x^2+1]]
,[336,[-x^6+15*x^4-75*x^2-56,x^3+x]]
,[349,[x^5-2*x^4+x^3+x^2-x,1]]
,[353,[x^2,x^3+x+1]]
,[360,[x^5+x^4-5*x^3-4*x^2+6*x,x^3+x^2]]
,[363,[-2*x^4-x^3+5*x^2-3*x,x^3+x^2]]
,[363,[-2*x^6+x^5+10*x^4-7*x^3-13*x^2+11*x,x]]
,[388,[x^5+2*x^4-x^2,x^3+x^2+1]]
,[389,[-3*x^4-3*x^3+9*x^2-x-3,x^3+x^2]]
,[389,[-x^5+x^4-2*x^3+2*x^2-x,x^3+x^2]]
,[394,[3*x^5+15*x^4+19*x^3-3*x^2-x,x^3+x^2]]
,[394,[-x,x^3+x^2]]
,[400,[x^6+4*x^4+4*x^2+1,0]]
,[427,[x^5-x^4-5*x^3+4*x^2+4*x-4,x^3+1]]
,[448,[x^5+2*x^4-x^3-5*x^2-4*x+6,x^3+x^2]]
,[448,[x^4-7,x^3+x]]
,[450,[x^5+3*x^4+3*x^3+3*x^2+x,x^3+1]]
,[450,[2*x^5+4*x^4-10*x^3-8*x^2+15*x-5,x^3+x^2+x]]
,[461,[x^5-3*x^3+3*x-2,x^3]]
,[461,[x^5+4*x^4-33*x^3-103*x^2+176*x-63,1]]
,[464,[x^5+11*x^4+17*x^3-96*x^2+94*x-28,x^2+1]]
,[464,[2*x^5+8*x^4+10*x^3+5*x^2+4*x,x^3+x^2]]
,[464,[-x^3-2*x^2-2*x-1,x^3+x^2]]
,[472,[-2*x^5+2*x^4+x^3-x^2-x,x+1]]
,[472,[x^5+3*x^4+5*x^3+5*x^2-2*x-5,x^3+x]]
,[476,[3*x^5+10*x^4+7*x^3+10*x^2+3*x,x^3+1]]
,[484,[x^4+2*x^2+1,x^3]]
,[504,[3*x^4+15*x^2+21,x^3+x]]
,[523,[x^5+16*x^4+35*x^3-244*x^2+311*x-120,x^2+1]]
,[523,[-x^3-x^2+x,x^3+x^2]]
,[529,[x^5-x^3-x,x^3+x+1]]
,[555,[x^5+x^4-4*x^3-2*x^2+3*x,x^3+x^2]]
,[574,[x^6+x^5-3*x^4-x^2+x,x^2+x]]
,[576,[-x^5-x^3,x^3+x^2+x+1]]
,[576,[x^6+2*x^4+2*x^2+1,0]]
,[578,[x^5-2*x^4+2*x^3-2*x^2+x,x^2+x]]
,[587,[-x^2-x,x^3+x+1]]
,[588,[-x^5-x^4+x^3+3*x^2+3*x+1,x^3+x^2+x]]
,[597,[-x^5-x^3-2*x^2+x-1,x^3+x^2+x+1]]
]};

genus2tors(C)=
{
  my(P=hyperellminimalmodel(C));
  my(D=hyperelldisc(P));
  my(g=0);
  forprime(p=1,200,
    if(D%p,
      g=gcd(g,subst(hyperellcharpoly(P*Mod(1,p)),x,1))));
  g;
}

genus2tamagawa(C)=
{
  vecprod(apply(x->if(#x[3],vecprod(x[3][2]),1),genus2red(C)[4]));
}

genus2bsd(C)=
{
  hyperellperiods(C,2)*genus2tamagawa(C)/genus2tors(C)^2;
}

tst(i)=my([N,C]=R[i],L=lfungenus2(C));L[5]=N;L;

for(i=1,#R,my([N,C]=R[i],L=tst(i));printsep(":",i,N,bestappr(lfun(L,1)/genus2bsd(C))));

/* genus 3 */

chk(W,z,ex,pr)=
{
  localbitprec(pr);
  my(H=hyperellperiods(W,2));
  my(e=exponent(abs(H/z-1)));
  if (e>-ex, error("genus3: ",H));
}

chk([x^7+x^6-x^5-2*x^4+x^2+x,x^2+1],69.081200998004027497103951240276008092,125,128)
chk([x^7-3*x^6+3*x^5-3*x^4+4*x^3-3*x^2+x,x^2],59.739112915049974362789703126695402159,57,64)

/* errors */

hyperellperiods(x,0)
