MathGroup Archive 1992

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: StartUp`Elliptic` fix

  • To: mathgroup at
  • Subject: Re: StartUp`Elliptic` fix
  • From: withoff
  • Date: Sat, 7 Nov 92 10:52:48 CST

> Colleagues,
> 	Jerry Keiper recently send out a bug fix for the
> StartUp`Elliptic` package.  So that I don't have to recompute
> a really long calculation. . . will the error in
> StartUp`Elliptic` affect the computation of
> 	ExpIntegralE[1,  (anything) ]
> ?  I don't have the time to track down whether ExpIntegralE
> uses JacobiAmplitude, which is changed in the bug fix.
> It will be unfortunate if I have to retract the paper I just
> submitted.
> Thanks,
> Vic Sparrow
> Penn State Graduate Program in Acoustics
> sparrow at

No, changing JacobiAmplitude will not normally have any effect
on evaluation of ExpIntegralE[1,  (anything) ].

(Of course if "(anything)" involves JacobiAmplitude, as in
ExpIntegralE[1, JacobiAmplitude[1, .5]] this won't be true, but
presumably you can rule out that case.)

One way to think about the question of whether changing one special
function will affect results from another is to separate the special
functions into "basic" functions and "derived" functions.  The "basic"
functions are computed using simple arithmetic operations, series
expansions, and so forth, while the "derived" functions are evaluated
in terms of "basic" functions.  Changing a "basic" function can affect
a lot of things, while changing a "derived" function will not.

In all but a few cases, ExpIntegralE is computed using a simple identity
involving the Gamma function.  This can be seen by adding a rule that
announces when Gamma is being evaluated:

    In[6]:= a:Gamma[___] := Null /; Print["evaluating ", HoldForm[a]]

    In[7]:= ExpIntegralE[1, 2.3]
    evaluating Gamma[0, 2.3]

    Out[7]= 0.0325023
ExpIntegralE is an example of a "derived" function.  Gamma is an
example of a "basic" function.

The same trick can be used with JacobiAmplitude to find out whether
or not JacobiAmplitude is being evaluated as part of another
computation.  JacobiAmplitude is not normally evaluated as part of
computing ExpIntegralE.

JacobiAmplitude is a "derived" function.  The definition in terms
of other functions can be found in the StartUp`Elliptic` package.
Except for the inverse of EllipticF, which is defined in terms of
JacobiAmplitude, changing JacobiAmplitude doesn't affect anything
other than JacobiAmplitude itself.

Dave Withoff
withoff at

  • Prev by Date: Re: Conversion to Tex
  • Next by Date: Re: PS Problems
  • Previous by thread: StartUp`Elliptic` fix
  • Next by thread: Re: PostScript Problems