Ralph,
There are also a differences regarding
empty and unbounded intervals and the
signs of zero, but other than that, yes,
I implemented standard operations for bare intervals,
I also implemented operations involving numbers and
intervals (I don`t know why they were not considered by
the standard.)
All of my choices had reasons: I did not follow
the standard only in cases in which it would lead
worse code. For instance, In C++ forcing the
return of the sup function to be -oo or +0 has bad
consequences. Besides the introduction of if statements,
it would force me to return a copy of the sup
instead of a reference to it. Therefore, I decided
to return NaN for the sup and inf of empty and
leave undefined the sign of zero.
In fact, in my opinion, the standard should not
specify the signs of the returned zeros (and
of course other people think otherwise and
voted for the consideration of the sign of zero.
It is a free world...)
Another example is the difference in the cancel
minus function: I returrn what some people in the list
call "the inward minus" This agrees with the standard
modulo empty and unbounded intervals.
In summary, it would be fair to say that I
"implemented the standard operations for common
bare intervals, except for the sign of zero",
for common in the sense of
the standard`s function isCommonInterval. For
uncommon intervals, or functions returning 0,
I believe that my results
are reasonable, but they may not agree with
the standard.
walter.