dynamic vs. static rounding

uunet!antares.mcs.anl.gov!tang uunet!antares.mcs.anl.gov!tang
Tue May 19 12:29:01 PDT 1992



Since there has been some open discussions related to IEEE
rounding control, let me post the following questions that I
have had for quite a while.

All supports of IEEE rounding controls (on current machines) that
I know of is dynamic. That is, the machine instructions round
according to a control word that can be changed in runtime.
Although some may insist that dynamic control is mandated by the
Standard, some have argued otherwise. Along this line, one can
also ask whether static rounding control suffice in
applications. Incidentally, the Alpha chip seems to have both
static (instructions that round in a specific way, e.g.
FADD.nearest FADD.round-to-zero, etc) and dynamic capabilities.
Questions:

1. Does the Standard really mandante dynamic rounding?

2. I can envision how dynamic rounding can be used. For example,
some numerical calculation may suspects ill-conditioning based on some
numbers that it obtained on a particular set of data. In trying
to confirm its suspicion, it may redo a portion of the
calculation (say, by calling a certain subroutine again) in a
directed rounding mode. Ill conditioning may reveal itself by
yielding very different numbers in a different rounding mode. 
But, are there people out there who have really used dynamic
rounding? Do people know of problems that really need dynamic
rounding? (I am looking for more than hypothetical situations.)

3. What are the advantages of dynamic rounding? And what are
those for static? For example, would interval arithmetic be
better (faster or cleaner or what not) implemented by static
rounding or dynamic? One can argue that dynamic rounding allows
high level programmer to change rounding modes with minimal
addition of the language; whereas one would really need to use
assembly programming to use the various rounding-specific
opcodes. On the other hand, on any pipelined architeture,
changing rounding modes would be extremely expensive if done
frequently (or in an innerloop). Discussions?

Looking forward to lively responses.
Peter Tang




More information about the Numeric-interest mailing list