// Eta
for j in [-10 .. 10] do
    for k in [1 .. 10] do
	z := elt<C | j, k> / 4;
	print DedekindEta(z);
    end for;
end for;

// HypergeometricU
print HypergeometricU(zero, zero, zero);
print HypergeometricU(zero, zero, one);
print HypergeometricU(one, one, one);
print HypergeometricU(i, one, one);
print HypergeometricU(one, i, one);
print HypergeometricU(i, i, one);

// JBessel
for nu in [0 .. 5] do
    for j, k in [-5 .. 5] do
	z := elt<C | j, k> / 2;
	print JBessel(R!nu, z);
    end for;
end for;

// KBessel
// KBessel2
for j, k in [-4 .. 4 by 2] do
    nu := elt<C | j, k> / 2;
    for l in [1 .. 10 by 2] do
	x := R!l/3;
	kb := KBessel(nu, x);
	kb2 := KBessel2(nu, x);
	if Norm(kb - kb2) gt epsilon then
	    print "ERROR: KBessel vs KBessel2: ", nu, x, Norm(kb - kb2);
	end if;
	print kb;
    end for;
end for;

// JacobiTheta
// JacobiThetaNullK
for j in [1 .. 9] do
    q := elt<R | j, -1>;
    for k in [0 .. 8] do
	z := R!k/4;
	print JacobiTheta(q, z);
    end for;
    for k in [0 .. 4] do
	print k, JacobiThetaNullK(q, k);
    end for;
end for;

/*
// AGM
for x, y in Q do
    a := (x+y)/2;
    g := Sqrt(x*y);
    print x, y;
    xy := AGM(x,y);
    print a, g;
    ag := AGM(a,g);
    if Norm(xy - ag) gt epsilon then
	print "ERROR: AGM recurse: ", x, y, Norm(xy - ag);
    end if;
    if Norm(xy - AGM(y,x)) gt epsilon then
	print "ERROR: AGM sym: ", x, y, Norm(xy - AGM(y,x));
    end if;
    if Norm(ag - AGM(g,a)) gt epsilon then
	print "ERROR: AGM sym rec: ", x, y, Norm(ag - AGM(g,a));
    end if;
end for;

// LogAGM
for x in Q do
    if IsZero(x) then continue; end if;
    if Norm(Log(x) - LogAGM(x)) gt epsilon then
	print "ERROR: LogAGM vs Log: ", x, Norm(Log(x) - LogAGM(x));
    end if;
end for;
*/

// Internal bug was once triggered by this code:
_<x> := PolynomialRing(Rationals());
pol := x^4 + 2693125800566000628641*x^3 -
        131725711362335103411011270102204441/4*x^2 +
	1571256721667855303432722440885212131651/2*x +
	69357998032998703049375600906375805/8;
K := NumberField(pol);
c := Conjugates(K.1);

// Another internal bug triggered by similar code:
_<x> := PolynomialRing(Rationals());
pol :=
x^3 + 1366864473190830990873126914900087219715869526810841104554666705679708311\
    913948206171692156422520212269046760554993421101640408270345826575991363499\
    168953571226442198615822986730445488068389101780148847449911466588155792413\
    372568283358661987904476007430112043583913306179920801585365036983689016587\
    886672752787449600824563677213228285329106310737693520665155849279588003168\
    591525472630410112918634957252125916997615683470453706285586781981939114905\
    3635833272608277143297375797524391376492522531156233805*x^2 - 
    474924691823726116093313096229242216756368639746249945137435890081308930139\
    688921554768153353048910404042142766644010126612971444936581205009559847522\
    785340021823897711022883545830007704339595724876583743462694752080388642007\
    418575186641901344205346425251817167295973597092839775269135242480948649204\
    939043790185067988130984874474920807076864654760591052176819572093146915903\
    522107221071488299126847020025361458317074593568367061102773518688099800727\
    054162169573312003217004491727696460745175132795550281580749287542243227921\
    928167542074419314609270412865645093902249763579715863935690217221820317708\
    964832949296731971282842865182445255440343236604625527151372612804508083310\
    808948687725507464527798318139433284765073775510779653803557162357857067850\
    429822417646715309/2*x + 19856496898034005534449948334101384498922492463845\
    887943076380521489608203048627227764250234143399579729643612409893137636432\
    508923794929468173874007692717969113681522770836274766739839376309020847476\
    712733791997979441425041167770640476503204711301283576430393121496322036770\
    085678511294602697757577442521279475798134304578903920502523148763989506270\
    329832254982276177796945882180706633696126318589635744810982997366291766183\
    290618744093031634890746783524797856006853398954765323180603229150064880180\
    112043334231102166674673159562098748529690556406023161121559191543072817461\
    818892375762155284592190502776532012572237652615560872739097857649559876585\
    903244827846160795249809996834888268655777282010188341924936873375792471648\
    315882787218498534422699098882092331533122169554152691412125637724598740276\
    370347886218186081226549601093240625844282744012400160288255962205863877389\
    692769656810928381923/2
;
K := NumberField(pol);
c := Conjugates(K.1);

