Date: Mar 3, 2013 10:57 PM
Author: Daniel Lichtblau
Subject: Re: deterministic integration
On Saturday, March 2, 2013 2:43:51 AM UTC-6, Alex Krasnov wrote:

> On Wed, 27 Feb 2013, d...@gmail.com wrote:

>

> > Integrate uses a very large number of time-constrained

> > computations, and some of them also use time constraints under the hood.

>

> > There is some amount of discussion of this here:

>

> > http://library.wolfram.com/infocenter/Conferences/5832/

>

> > A revised/updated version may be found here:

>

> > http://www.sigsam.org/cca/issues/issue175.html

>

> > See in particular section 5.7.

>

>

> Thank you for the detailed information. One clarification: are time

> constraints and associated non-determinism limited to definite integration

> in the current implementation or is there an example from indefinite

> integration?

I don't have a handy example, but yes, I'm sure indefinite integration will also encounter this issue. That said, it will be far less common because indefinite integration does not use the assumptions mechanism and that is one significant area where timeouts are likely to happen. It also does not have any issue with path singularities, another area of frequent timeouts.

> > As for effectively setting all time constraints to infinity, this might by and large work (except there are also several places where Integrate code bypasses the evaluator for time-constraining).

>

> > Unprotect[TimeConstrained];

>

> > TimeConstrained[expr_,args___] := expr

>

> > This alters the speed of your example above from 10 seconds

> to a minute; plan accordingly.

>

> Interesting. On my system (Mathematica 8.0.4), this does not make a

> significant timing difference but does appear to achieve the desired

> result.

>

> Alex

This again is proibably subject to vagaries of machine speed. On my laptop using version 9 I see 28.7 vs. 87.2 seconds. Using version 8 both come in at around 22 seconds, each time starting in a fresh kernel. My guess is some key part succeeeds in 8 just fast enough to not send some part of Integrate down a different route.

Daniel Lichtblau

Wolfram Research