Thread Links | Date Links | ||||
---|---|---|---|---|---|
Thread Prev | Thread Next | Thread Index | Date Prev | Date Next | Date Index |
Dear colleagues,
The motion M004.02 passed.
Syntax of interval literals in this motion is restricted against syntax in interval literals in 1788-2015.
Later discussion showed that such a restriction makes difficult
to follow the principle formulated in the section 1.1 of P1788.1:
"A program built on top of an implementation of IEEE P1788.1 should compile and run,
and give identical output within round off, using an implementation of IEEE Std 1788-2015, or any superset of the former."
Here is a program that illustrates this:
-----
char *s = "[ 0x0.0p0 , 1.0 ]";
bareInterval x = textToBareInterval (s);
if (isEmpty(x))
printf("1788.1\n");
else
printf("1788\n");
-----
1788.1 (as of M004.02) returns the Empty but this is containment violation in 1788 .
A possible solution of this contradiction is to preserve in 1788.1 syntax of 1788 interval literals.
Some literals are difficult for implementation, but 1788.1 would relax accuracy mode of textToInterval(s)
constructor on difficult strings instead of forbidding them.
Relaxation of accuracy mode on difficult strings doesn't contradict 1788. See the last paragraph
of the section 9.8 of 1788 .
Modified level2.pdf is attached.
It describes full syntax of interval literals in a style simpler than in 1788.
It also formulates relaxed accuracy of textToInterval(s) on difficult input strings.
Additions are in blue color, removal is in red color.
Please consider this as an amendment to M004.02 .
Best Regards,
-Dima