% Testing rlcad
% Condition on quartic polynomial being positive semidefinite.

off rlabout;



rlset reals;


{}


quartic := all(x,x**4+p*x**2+q*x+r>=0)$



rlqe quartic;


                        3      2                      3       2
(r = 0 and p > 0 and 2*p  + 9*q  > 0 and (q = 0 or 4*p  + 27*q  = 0))

 or (r >= 0 and q = 0 and p = 0)

                              4        3
 or (r > 0 and q <> 0 and 27*q  - 256*r  <= 0 and p = 0) or (r > 0 and p <> 0

      2                  3              2
 and p  - 4*r = 0 and 2*p  - 8*p*r + 9*q  = 0

         4        3  2        2  2          2         4        3
 and 16*p *r - 4*p *q  - 128*p *r  + 144*p*q *r - 27*q  + 256*r  = 0) or (r > 0

                 2                  3              2
 and p <> 0 and p  - 4*r < 0 and 2*p  - 8*p*r + 9*q  > 0

         4        3  2        2  2          2         4        3
 and 16*p *r - 4*p *q  - 128*p *r  + 144*p*q *r - 27*q  + 256*r  >= 0) or (r > 0

                2                  3              2
 and p > 0 and p  - 4*r < 0 and 2*p  - 8*p*r + 9*q  <= 0

         4        3  2        2  2          2         4        3
 and 16*p *r - 4*p *q  - 128*p *r  + 144*p*q *r - 27*q  + 256*r  > 0) or (r > 0

                2                   3              2
 and p > 0 and p  - 4*r >= 0 and 2*p  - 8*p*r + 9*q  > 0

         4        3  2        2  2          2         4        3
 and 16*p *r - 4*p *q  - 128*p *r  + 144*p*q *r - 27*q  + 256*r  >= 0)


end;

