quad_qag(...) error message



Edwin Woollett wrote:
> I get quad_qag(..) error message no. 2 
>   ("excessive roundoff error") with
>   a very simple function f(x) = x.
>   
> ---------------------------------  
> 1. Why are we getting excessive
> roundoff error with such a simple
> integrand?
> 
> Or is this error message itself an error?
> 
> --------------------
> 2. Why are the SLATEC error messages
>   progressively disappearing the more
>   times we call quad_qags(..) with
>   the same function? ("message exhaustion")

The error messages have never been very well integrated into maxima.  I
think slatec just stops printing then because it's run out of room.
Perhaps the quad_qag* functions should reinitialize the error message
handler on entry.

> 
> ===================
> 
> (%i1) integrate( x, x, -1, 1 );
> (%o1)                                  0
> 
> /* quad_qag(..) run 1  */
> 
> (%i2) for i thru 6 do
>          (qlist : quad_qag( x, x, -1, 1, i ),
>              print( "key is ", i ," ", qlist ) )$
>              
>  ***MESSAGE FROM ROUTINE DQAG IN LIBRARY SLATEC.
>  ***INFORMATIVE MESSAGE, PROG CONTINUES, TRACEBACK REQUESTED
>  *  ABNORMAL RETURN
>  *  ERROR NUMBER = 2
>  *   
>  ***END OF MESSAGE
>  
> key is  1   [0.0, 1.1020760842711039E-14, 15, 2] 

Look at the results.  The estimated answer is 0.0, with estimated error
1e-14.  The criteria, by default, is an relative error of 1d-10 and an
absolute error of 0.  There's no way to get a relative error below 1d-10
(I think), and the absolute error always > 0.  The criteria can never be
achieved.  Relax the criteria.

Ray