MathGroup Archive 1990

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

Search the Archive

Re: math coprocessors

  • To: mathgroup at yoda.ncsa.uiuc.edu
  • Subject: Re: math coprocessors
  • From: gabriel at athens.ees.anl.gov (John Gabriel)
  • Date: Tue, 23 Oct 90 11:00:02 CDT

I may be speaking from a position of ignorance here, because my knowledge is
several years out of date, but the computation of y=sin(x) contains
deep pitfalls even for values of x as small as small as 62.83. The point is
that for x outside [0..pi/4), multiples of pi/4 must be subtracted from x.
For x values close to n*(pi/4) this must be done with consummate skill if
work is being done in double precision, or a good deal of significance will
be lost. Cody & Waite (A Handbook for the Elementary Functions) discuss the
issue at length. So computation of sin(x) for large arguments is always
fraught with danger. For a given machine precision, there is typically a value
of x beyond which computation of sin(x) will inevitably have significant
error, and for some algorithms even x in the region of a few hundreds gives
trouble (the worst I ever saw gave noticeable error round about x=30).

More recent cases involving functions other than sin(x), investigated by
a colleague in the context of FORTRAN exonerated an INTEL floating point
co-processor, and laid the blame squarely on a compiler writer in one case,
and perhaps on the operating system in another (I don't really know about
the second case).

So, I suppose the point of all this is that you should not necessarily
blame the floating point chip. But perhaps Mathematica takes all the
appropriate precautions about argument reduction and has the proper
approximation to pi to allow the usual 2 step argument reduction to work
OK. On the other hand, if pi is simply held to working precision (no
matter how long that may be) argument reduction holds traps for the
unwary. But I would be surprised if any IEEE standard chip gave good
answers for 2^100. Good answers for 2^70 however, are not obviously ruled
out except by a much more careful examination than I have given to the
question.


	John Gabriel (gabriel at ees.anl.gov)


  • Prev by Date: Re: Logical expressions in Mathematica
  • Next by Date: Re: Ignorance
  • Previous by thread: Re: math coprocessors
  • Next by thread: Still puzzled about Flat