Re: Problem loading full integration package on the Macintosh
- To: mathgroup at yoda.physics.unc.edu
- Subject: Re: Problem loading full integration package on the Macintosh
- From: twj
- Date: Tue, 3 Nov 92 11:11:28 CST
>I tried to evaluate the Integral:
>
> Integrate[BesselJ[0,k r], {r,0,Infinity}]
>
>on a Macintosh Quadra running Mathamatica 2.1 extended and got the same
>answer as Rod Price<rprice at physics.att.com>:
>
>$RecursionLimit::reclim: Recursion depth of 256 exceeded.
>$RecursionLimit::reclim: Recursion depth of 256 exceeded.
>$RecursionLimit::reclim: Recursion depth of 256 exceeded.
>General::stop:
>
>Unfortunately, his advice to evaluate a simpler integral first did not
>help for the Macintosh version (I tried Gaussians resulting in expressions
>involving error fonctions). How do I load the full integration package on
>the Mac?
One way to load the definite integration packages on a thin
Kernel (this is the Kernel you have on a Macintosh) is to enter
an integral which cannot evaluate. For example:
In[1]:= Integrate[ f[x], {x,0,Infinity}]
General::intinit: Loading integration packages -- please wait.
Out[1]= Integrate[f[x], {x, 0, Infinity}]
will load the packages. The message tells you the packages are loading.
However you can fix the original problem. Find the StartUp
package Integrate/mainalgorithm.m and at the top change the
definitition for IntegrateG to
IntegrateG[f_,{x_,xmin_,xmax_}] :=
Block[
{priv`r,priv`inter,z,positivearg=positivetrigarg={},trigintegral=False,
$IntegrateAssumptions=sumintegrals=True,dummy=var},
priv`r = PowerExpand[f,{x}]//.{E^(d_.+Complex[c_,a_] b_.) :>
E^(c b+d) Cos[a b]+I E^(c b+d) Sin[a b]}//.
{(n_ z_)^k_ :> n^k z^k/; NumberQ[N[n]]};
priv`inter = (Numerator[priv`r]/Factor[Denominator[priv`r]])/.InputHard;
If[ FreeQ[priv`inter, MeijerG[__]],
priv`inter = Dispatcher[1,priv`r,x,xmin,xmax],
priv`inter = Dispatcher[1,priv`inter,x,xmin,xmax];
If[ !FreeQ[priv`inter,FailInt],
priv`inter = Dispatcher[1,priv`r,x,xmin,xmax] ]
];
If[ !FreeQ[priv`inter,FailInt],
If[ PolynomialQ[Numerator[priv`r],x] &&
PolynomialQ[Denominator[priv`r],x],
priv`inter = Dispatcher[1,Apart[priv`r,x],x,xmin,xmax]
];
If[ !FreeQ[priv`inter,FailInt] && xmin=!=0 &&
FreeQ[xmin,DirectedInfinity],
priv`inter = Dispatcher[1,f/.x->z+xmin,z,0,
If[ !FreeQ[xmax,DirectedInfinity],xmax,xmax-xmin] ]
]
];
priv`inter = TransfAnswer[priv`inter/.SimpGfunction];
$IntegrateAssumptions=$IntegrateAssumptions//SimpLogic;
If[ trigintegral,
If@@{$IntegrateAssumptions, priv`inter, ComplexInfinity},
priv`inter
]/; SimpLogic[$IntegrateAssumptions]=!=False &&
And@@(FreeQ[priv`inter,#]&/@{
Indeterminate,FailInt,MeijerG,KellyIntegrate,FailIntDiv})
] /; FreeQ[{xmin, xmax}, Complex] &&
And@@(FreeQ[Hold[{f,xmin,xmax}],#]&/@{Blank,Integrate,IntegrateG}) &&
Convergent[f,{x,xmin,xmax}]
then Integrate[BesselJ[0,k r], {r,0,Infinity}] will evaluate properly
without having to load the package first. This change will appear in
the next relese of Mathematica.
Tom Wickham-Jones
WRI