default(realprecision,38);
allocatemem(20*10^6)
count = 0;
do(nf,f, H = 0, flag = 0)=
  setrand(1); print(count++); lift(rnfkummer(bnrinit(bnfinit(nf,1),f,1), H, flag));

do(y^4+12*y^3+15*y^2+15*y-15,1)
do(y^4-13*y^3+2*y^2+2*y-15,1)
P=do(y^4-y^3-2404*y^2+2404*y+1154401, 5, matdiagonal([5,1]));
if(polcoeff(polcoeff(P, 0), 0)<0,-subst(P,x,-x),P)
do(quadpoly(-8,y), 11, [5,2;0,1])
\\ behaviour depend on kernel (bnfinit(Kz) too complicated
\\do(quadpoly(181433,y),1)
do(quadpoly(-1752,y), 19, matdiagonal([5,1,1]))
do(nf=nfinit(y^6-2*y^5+3*y^4+y^2+3*y+1), idealprimedec(nf,2)[1])
do(y^4-52*y^2+26, 3, Mat(5))
do(quadpoly(5288,y), 9, [1,0;0,3])
do(quadpoly(5288,y), 9, [1,0;0,3], 3)
do(y^4+y^3-9*y^2-9*y+11, 10, Mat(5))
do(y^4-y^3-159*y^2-441*y+1701, 10, Mat(5))
do(quadpoly(344,y),11,matdiagonal([5,1]))
/* \\ used to be very slow (>20h). Now ~ 7mn
 do(quadpoly(17,y),311,Mat(13))
 do(nf=nfinit(y^4-y^3+2*y+1), idealprimedec(nf,463)[2]);
 do(y^2+5393946914743),1,,3);
*/


/* 0 eq. OK at \p200 */
do(y^6-19*y^5-11*y^4-6*y^3-15*y^2-11*y+15, 4, [2,1,1; 0,1,0;0,0,1])

/* more than 1 eq. OK at \p200 */
do(y^6+8*y^5-7*y^4+y^3+4*y^2-9*y+10, 8, [2,1,1,1,1;0,1,0,0,0;0,0,1,0,0;0,0,0,1,0;0,0,0,0,1])

/* 1 eq. Wrong result at \p28. OK at \p200 */
do(y^6-9*y^5-20*y^4-4*y^2-y-17, 17, [2,0,1;0,1,0;0,0,1])

setrand(1); for(i=1,10,rnfkummer(bnrinit(bnfinit(quadpoly(2540,y)),9,1),[3,1;0,1]))

do(quadpoly(689,y), 2, Mat(2))

do(y^8-76*y^6+1425*y^4-5776*y^2+5776, 5, matdiagonal([2,1]))

do(y^4 - 34*y^2 + 1189, 5, matdiagonal([3,1,1]))

do(y, [36,[1]], matdiagonal([3,1]), 3)

do(y, [36,[1]], matdiagonal([3,1]))

K=bnrinit(bnfinit(y^4-y^3+16*y^2-16*y+61),[89,9,52,85;0,1,0,0;0,0,1,0;0,0,0,1],1);
rnfkummer(K,,5)

\\ #1632
do(quadpoly(3409,y),25,[5,1;0,1])

\\ #1744
lift(rnfkummer(bnrinit(bnfinit(y^4-62*y^2+186,1),744,1),[1,0,0,0;0,1,0,0;0,0,2,1;0,0,0,1]))

\\ #1760
mod=[[385,0,305;0,385,265;0,0,5],[0]]; bnr=bnrinit(bnfinit(y^3-y^2+1),mod,1);
lift(rnfkummer(bnr,[1,0,0;0,2,1;0,0,1]))

mod=[[429,234,78;0,39,0;0,0,39],[0]]; bnr=bnrinit(bnfinit(y^3+y-1,1),mod,1);
lift(rnfkummer(bnr,[2,1,1;0,1,0;0,0,1]))
