default(realprecision,38);
qfgaussred([0,7,2,3; 7,0,6,8; 2,6,0,9; 3,8,9,0])
Q=[2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1;-1,2,1,1,1,1,1,1,1,1,1,1,1;-1,1,2,1,1,1,1,1,1,1,1,1,1;-1,1,1,2,1,1,1,1,1,1,1,1,1;-1,1,1,1,2,1,1,1,1,1,1,1,1;-1,1,1,1,1,2,1,1,1,1,1,1,1;-1,1,1,1,1,1,2,1,1,1,1,1,1;-1,1,1,1,1,1,1,2,1,1,1,1,1;-1,1,1,1,1,1,1,1,2,1,1,1,1;-1,1,1,1,1,1,1,1,1,2,1,1,1;-1,1,1,1,1,1,1,1,1,1,2,1,1;-1,1,1,1,1,1,1,1,1,1,1,2,1;-1,1,1,1,1,1,1,1,1,1,1,1,2];
Q[3,7] += 1.25;
Q[7,3] += 1.25; qfsign(Q)

Q=[8,4,4,4,4,4,4,4,4,4,4,4;4,8,4,4,4,4,4,4,4,4,4,4;4,4,8,0,0,0,3,0,0,0,0,0;4,4,0 ,8,4,4,1,4,4,4,4,4;4,4,0,4,8,4,4,4,4,4,4,4;4,4,0,4,4,8,4,4,4,4,4,4;4,4,3,1,4,4,8 ,4,1,1,1,1;4,4,0,4,4,4,4,8,4,4,4,4;4,4,0,4,4,4,1,4,8,4,4,4;4,4,0,4,4,4,1,4,4,8,4 ,4;4,4,0,4,4,4,1,4,4,4,8,4;4,4,0,4,4,4,1,4,4,4,4,8];
qfminim(Q,,0,2)[1]
qfrep(Q,16)
qfrep(Q,8,1)
qfminim(Q,,,1)
qfminim(Q,8,,1)
qfminim(Q,4,,1)
qfminim([;],4,,1)
qfminim([;],4,,2)
qfminim(Mat(1),,,2) \\ #2262
qfminim(matid(2),0,1,2)
qfminim(matid(2),0,1,1)
qfminim(matid(2),0,1,0)



L=[360815,2283021;-316840,2566404];
qfminim(L~*L,10^16)[2]
qfminim(L~*L,10^16,,2)[2]
forqfvec(v, [3,2;2,3], 3, print(v))
forqfvec(v, [3,2;2,3],, print(v))
forqfvec(v,[;],3,)
forqfvec(v,matid(2),-6, print(".") ) \\ #2237
qfminim(matid(2),-6)
qfminim(matid(2),-6,,2)
x=[1,2,3]~; y=[-1,0,1]~; qfeval(,x)
q=[1,2,3;2,2,-1;3,-1,0]; qfeval(q,x)
qfeval(,x,y)
qfeval(q,x,y)
M=[1,2,3;4,5,6;7,8,9]; qfeval(,M)
qfeval(q,M)

\\ ERRORS, keep at end
qfeval(,1)
qfeval(,1,1)
qfeval(Mat(1),x)
qfeval(Mat(x~),x)
qfeval(,1,1)
qfeval(,[1],[1,2])
qfeval(q,[1,2],[1,2])
qfeval(Mat([1,2]),[1,2],[1,2])
qfeval(1,1)
\\ #2451
Q=matdiagonal([10^10,1]);N=10^11; forqfvec(v,Q,N, if(qfeval(Q,v) > N,error(v)))
