fsolve: avoid useless numerical evaluation of the function
authorAlexei Sheplyakov <alexei.sheplyakov@gmail.com>
Sat, 21 Aug 2010 16:13:29 +0000 (19:13 +0300)
committerJens Vollinga <jensv@nikhef.nl>
Sat, 21 Aug 2010 18:08:43 +0000 (20:08 +0200)
commitbeeb0818e9cdb1b5de0ba2754286ad7bb2a9d032
treea5ab9becb2135a4d70e5d3622704e4f2812f926a
parent515171f0bcd42099c266713c3d605cd92cedd2e2
fsolve: avoid useless numerical evaluation of the function

Don't compute f(x) if new x is outside of the interval. We don't need that
value anyway, and the function might be difficult to compute numerically or
even ill defined outside the interval.

As a result fsolve is able to find root(s) of some weird functions.
For example

fsolve((1/(sqrt(2*Pi)))*integral(t, 0, x, exp(-1/2*t^2)) == 0.5, x, 0, 100)

actually works now.
ginac/inifcns.cpp