A decorations question
P1788
First, I thank Dan for his explanation of some of the complexities of designing fast hardware. Hopefully I've gained a better understanding of busses, registers and deep pipes.
Here's a relatively simple Q. Or maybe not.
I am thinking about the Bounded attribute. Suppose I construct decorated interval datums
xx = dinterval(0,2); //using dinterval to mean "decorated interval constructor"
This produces interval [0,1] with Bounded attribute "isBounded", i.e., ignoring other decorations,
xx holds ([0,2],B+)
Now it seems reasonable that
uu = 1/xx;
should be unconditionally unbounded: uu holds ([1/2,+oo],B-).
But now suppose I do instead
ww = dinterval(0,Pi/2).
Ignore for now the fact that Pi/2 isn't exactly representable: that's not my point.
Then do
xx = sin(ww)+cos(ww);
Both sin(ww) and cos(ww) come out as ([0,1],B+). So as before, xx holds ([0,2],B+). But now after
uu = 1/xx;
there is NO sense in saying uu is unconditionally unbounded. This seems to be an attempt to enclose the range of
1/(sin(w) + cos(w)) as w ranges over [0,Pi/2]
which is [1/sqrt(2), 1] I think.
So it seems to me that in ALMOST ALL situations, we shouldn't flag the result of an operation as "definitely unbounded".
Even if xx holds Entire,
yy = tan(xx)
should in most cases be "possibly bounded".
Or am I taking a wrongheaded view of what Bounded "means"? What "meaning" is appropriate here?
It reminds me of my eldest son Nat at age 3 years. After lots of questions like "what does lunch mean?", "what does sky mean?", he asked his mum "what does mean mean?". In exasperation she said "Oh, ask your dad when he gets home" and was then treated to a song with the refrain "Mean mean mean, Mummy doesn't know." (I should say he is now a professional software engineer. From this early interest in recursion, we might have guessed.)
John Pryce