default(realprecision,38);

nfinit(factor(polzagier(9,5))[2,1],3).disc
nfinit(Pol([1,0,42,112,728,3248,14224,3392,289478,-804944,2966908,-11015200,17342836,-108601584,381107816,-1679988352,6252186465,-14812800240,28868620970,-27997506768,-33428758132,98285772160,-51592356424,-39975211584,55983352320,-24670808064,5337884160,-733917184,87744512]),4).disc

nf=nfinit(y^5-4*y^3+2*y+11);
funs = [nfelttrace, nfeltnorm, (nf,x)->nfeltpow(nf,x,2),\
  (nf,x)->nfeltpow(nf,x,-1), (nf,x)->nfbasistoalg(nf,x),\
  (nf,x)->nfalgtobasis(nf,x)];
okmat = [2,3,4];
ok(x,okmat)= okmat || type(x) != "t_MAT";
v = [4/3, -1, y^2+y+1, Mod(y,nf.pol),Mod(1/2,nf.pol),[1,2,3,4,5]~,[3,3;y,2]];
try1(f, okmat) =
{
  for (j=1,#v,
    if (!ok(v[j],okmat), next);
    print( f(nf, v[j])) );
}
for (i = 1, #funs, try1(funs[i], setsearch(okmat, i)))

funs = [nfeltadd, nfeltdiv, nfeltdiveuc, nfeltdivrem, nfeltmod, nfeltmul];
okmat = [2,6];
try2(f, okmat) =
{
  for (i=1, #v,
    if (!ok(v[i],okmat), next);
    for (j=1,#v,
      if (!ok(v[j],okmat), next);
      print( f(nf, v[i],v[j]) )));
}
for (i = 1, #funs, try2(funs[i], setsearch(okmat, i)));

nfisincl(nfinit(x-1),y)
p=x^2+3;nfbasis([p, factor(poldisc(p))])

P = [13,73,89]; TP = [x^4-x^3+10558*x^2-2169592*x+195873967, P];
nfbasis(TP)
nfbasis(TP,&D)
D
sqrtint(abs(D / vecprod([p^valuation(D,p) | p <-P])))

\\#1158
nf=nfinit(x^2+x+1);
nfinit(nf)
\\#2277
nfeltdiv(nf, 0, 1+x/2)

K=nfinit([x^5-x^4+x^3+100*x+20,[1,x,x^2-x,1/2*x^4-1/2*x^3+1/2*x^2+40,x^3-x^2+x]], 4);
K.index

K=nfinit([x^5+9*x^4+851*x^3+18890*x^2+252376*x+529348, 39820], 4);
nfcertify(K)

nf=nfinit( [ x^7 + 2539107, [43] ] ); \\ #1973

g=polcyclo(13);
f=x^12-2*x^11+17*x^10-73*x^9+198*x^8-578*x^7+1533*x^6-3404*x^5+5716*x^4-8260*x^3+18652*x^2-25578*x+15601;
nfisincl(f,g)

\\#1921
K=nfinit('x^2-2);L=nfinit('x^4-2);
nfisincl(K,L)
nfisincl(K.pol,L)
nfisincl(K,L.pol)
nfisincl(x^3-21*x-35,x^6-48*x^4-56*x^3+453*x^2+840*x+62)
\\#2023
nfisincl(x^3-11*x^2+42*x-49,polcompositum(x^3-x-1,x^7-x-1)[1])
nfisincl(x^3-11*x^2+42*x-49,x^6+12*x^5+60*x^4+80*x^3-1860*x^2-12108*x-18821)
\\#2041
nfisincl(y^2 + 1, z^4 + 1)
nfisincl(x^5-x^4+x^3-2*x^2+3*x-1,x^20+x^15+x^10+x^5+1)
\\#2022
nfisisom(K,x^2-8)
nfisisom(x^2-8,K)
nfisisom(nfinit(y^2 + 1), z^2 + 1)
K = nfinit(x^2 + 1); nfisisom(K, y^2 + 1); K.pol
nfeltissquare(K, -1)
nfeltissquare(K, -1, &t)
t
nfeltissquare(K, -2)
nfeltissquare(K, 4)
nfeltissquare(K, 4, &t)
t

nfeltispower(K, x, 3)
nfeltispower(K, x, 3, &t)
t
nfeltispower(K, -2, 3)
nfeltispower(K, 8, 3)
nfeltispower(K, 8, 3, &t)
t

K = nfinit(x);
nfeltissquare(K, -2)
nfeltissquare(K, 4)
nfeltissquare(K, 4, &t)
t
nfeltispower(K, -2, 3)
nfeltispower(K, 8, 3)
nfeltispower(K, 8, 3, &t)
t

\\#2144
nfisincl(x^3+9,x^6+2187)
nfisincl(x^3+9*27,x^6+2187*3^6)
nfisincl(x^3+9,x^6+2187,1)
nfisincl(x^3+9*27,x^6+2187*3^6,1)
nfisincl(x^3+9,x^3+9)
nfisincl(x^3+9,x^3+9,1)

p=10^62+447;
q=10^42+63;
nf=nfinit([polcompositum(x^2-p,x^2-q,2), [2,p,q]]);
idealprimedec(nf,25339)[1].gen \\ overflow in get_norm

\\ test old-style nf.zk
K=nfinit(x^2+23);
K[7] /= 2;
nfbasistoalg(K,[0,1]~)
nfalgtobasis(K,x)
K.zk

nfinit(x, 3)[2]
nfinit(x, 1)[2]
nfinit(1/2*x + 3/5, 3)[2]

\\ #2169
nfinit(x^12-3*x^11+7*x^10-6*x^9+58*x^8-49*x^7+529*x^6-653*x^5+404*x^4-54*x^3-5711*x^2+2581*x+7009);

\\ #2173
nfinit(x^10-3*x^9+39*x^8-66*x^7+527*x^6-201*x^5+3149*x^4+1827*x^3+12852*x^2+8563*x+29809);
nfinit(x^16-4*x^15+8*x^14-8*x^13-x^12+14*x^11-26*x^10+12*x^9+84*x^8-166*x^7+246*x^6-376*x^5+382*x^4-330*x^3+282*x^2-146*x+29);

\\ ERRORS: keep at end of file

nfinit([y^3+2,[1,x]])
nfinit([y^3+2,[1,x,x^2]])
nfinit([y^3+2,[1,y^5,y]])
nfdisc([y^2+2,matid(3)])
nfdisc([2*y^2+1,matid(3)])
nfdisc([y^2+2,""])
nfnewprec(x)
nfnewprec(quadgen(5))
nfnewprec(vector(5))
nfnewprec(vector(6))
nfnewprec(vector(8))
nfnewprec(vector(9))
nfnewprec(vector(16))
nfisincl(y^2 + 1, z^4 + z^2 + 1)
nfisisom(x,x^0)
nf=nfinit('a^2+1);
idealhnf(nf,3,('a^2+1)*Mod(1,3))
nfalgtobasis(nf,['a,'a]~)

\\ # 2213
nfisincl(x^2-2^5,nfinit(x^4-2))
\\ # 2214 (duplicate of 2213)
nfisincl(x^9 - 3*x^6 - 6*x^3 - 1,nfinit(x^18 - 3*x^15 + 15*x^12 + 20*x^9 + 33*x^6 + 6*x^3 + 1))
nfeltispower(nfinit(x^4-2),x,2^64-100)

\\ #2385
K=nfinit(x^2+1357*x+3299);
idealcoprime(K,10,60)
idealcoprime(K,10,10)

K=nfinit(x^2+134*x+712);
F=idealfactor(K, idealhnf(K, 2, 1/2*x+36));
idealchinese(K, [F, [1,1]], [1/2*x+32])

P=x^4-2*x^3-5100097469481115*x^2-198889183441538805903225*x+21641388126139219732345004536462;nfdisc(P)

e=2^1000; Q=nfinit(x);
nfeltnorm(Q, [2, e; 2, -e])
nfeltnorm(Q, [2/3, e; 6, 1-e; 15, 2*e+1; 1/5, 2*e-3])
nfeltnorm(Q, [-2, 1+e; 2, 1-e])
nfeltnorm(Q, Mat([1,1]))
