ETSI's Bug Tracker - Part 01: TTCN-3 Core Language
View Issue Details

ID | Project | Category | View Status | Date Submitted | Last Update
0006695 | Part 01: TTCN-3 Core Language | Clarification | public | 04-03-2014 16:49 | 06-01-2015 19:10

Reporter | Jacob Wieland - Spirent |
Assigned To | Gyorgy Rethy |
Priority | normal | Severity | minor | Reproducibility | always
Status | closed | Resolution | fixed |
Platform |  | OS |  | OS Version |
Product Version | v4.5.1 (published 2013-04) |
Target Version | v4.7.1 (published 2015-06) | Fixed in Version | v4.7.1 (published 2015-06) |
Clause Reference(s) | 7.1.1
Source (company - Author) | Testing Technologies - Jacob Wieland

Summary | 0006695: restriction on arithmetic operators should be put in a restriction section or should be dropped altogether

Description

the restriction on the arithmetic float operators are only mentioned in a NOTE, but not in a proper restriction.
It is unclear why these restrictions exist in the first place as in other languages, clear semantics of using the special values as operands exist:
Infinity * -Infinity == -Infinity
Infinity * Infinity == Infinity
-Infinity * -Infinity == Infinity
Infinity * positive_number == Infinity
Infinity * 0.0 == NaN
Infinity * negative_number == -Infinity
-Infinity * positive_number == -Infinity
-Infinity * 0.0 == NaN
-Infinity * negative_number == Infinity
X * NaN == NaN
Infinity / (Infinity or NaN or -Infinity) == NaN
Infinity / positive_number == Infinity
Infinity / negative_number == -Infinity
-Infinity / positive_number == -Infinity
-Infinity / negative_number == Infinity
-Infinity / (Infinity or NaN or -Infinity) == NaN
(Infinity or NaN or -Infinity) / Infinity == NaN
(Infinity or NaN or -Infinity) / -Infinity == NaN
NaN / X == NaN
X / NaN == NaN
Therefore, I think the restriction should be dropped.

Steps To Reproduce |
Additional Information |
Tags | No tags attached.
Relationships |
Attached Files | CR6695_update_proposal.docx (14,971) 10-04-2014 14:54 http://oldforge.etsi.org/mantis/file_download.php?file_id=3006&type=bug CR6695_update_proposal-v3.docx (13,695) 07-10-2014 15:57 http://oldforge.etsi.org/mantis/file_download.php?file_id=3103&type=bug

Issue History
Date Modified | Username | Field | Change
04-03-2014 16:49 | Jacob Wieland - Spirent | New Issue |
07-04-2014 16:46 | Gyorgy Rethy | Note Added: 0011947 |
07-04-2014 16:57 | Gyorgy Rethy | Assigned To | => Axel Rennoch
07-04-2014 16:57 | Gyorgy Rethy | Status | new => assigned
10-04-2014 14:54 | Axel Rennoch | File Added: CR6695_update_proposal.docx |
10-04-2014 14:55 | Axel Rennoch | Assigned To | Axel Rennoch => Gyorgy Rethy
10-04-2014 14:58 | Axel Rennoch | Note Added: 0012012 |
10-04-2014 14:58 | Axel Rennoch | Status | assigned => confirmed
20-06-2014 11:40 | Gyorgy Rethy | Project | TTCN-3 Change Requests => Part 01: TTCN-3 Core Language
20-06-2014 11:40 | Gyorgy Rethy | Product Version | => v4.5.1 (published 2013-04)
20-06-2014 11:40 | Gyorgy Rethy | Target Version | => v4.7.1 (published 2015-06)
06-10-2014 10:24 | Gyorgy Rethy | Note Added: 0012219 |
06-10-2014 10:24 | Gyorgy Rethy | Note Edited: 0012219 | bug_revision_view_page.php?bugnote_id=12219#r67
06-10-2014 10:24 | Gyorgy Rethy | Note Edited: 0012219 | bug_revision_view_page.php?bugnote_id=12219#r68
06-10-2014 12:01 | Jacob Wieland - Spirent | Note Added: 0012228 |
06-10-2014 15:38 | Gyorgy Rethy | Note Added: 0012233 |
06-10-2014 15:39 | Gyorgy Rethy | Assigned To | Gyorgy Rethy => Jens Grabowski
07-10-2014 15:57 | Jens Grabowski | File Added: CR6695_update_proposal-v3.docx |
07-10-2014 15:57 | Jens Grabowski | Assigned To | Jens Grabowski => Gyorgy Rethy
07-10-2014 15:57 | Jens Grabowski | Status | confirmed => assigned
07-10-2014 15:57 | Jens Grabowski | Status | assigned => resolved
07-10-2014 15:57 | Jens Grabowski | Resolution | open => fixed
06-01-2015 19:10 | Gyorgy Rethy | Note Added: 0012658 |
06-01-2015 19:10 | Gyorgy Rethy | Status | resolved => closed
06-01-2015 19:10 | Gyorgy Rethy | Fixed in Version | => v4.7.1 (published 2015-06)

Notes

(0011947)
Gyorgy Rethy
07-04-2014 16:46

stf478: check how operations are handled in other languages.

(0012012)
Axel Rennoch
10-04-2014 14:58

Problem: a note prevents arithmetic float operators for special float values infinity, -infinity and not_a_number
Analysis:
a) IEEE 754:2008 standard allow operation (ch 6.1):
Infinity * -Infinity == -Infinity
Infinity * Infinity == Infinity
-Infinity * -Infinity == Infinity
Infinity * positive_number == Infinity
Infinity * negative_number == -Infinity
-Infinity * positive_number == -Infinity
-Infinity * negative_number == Infinity
Infinity / positive_number == Infinity
Infinity / negative_number == -Infinity
-Infinity / positive_number == -Infinity
-Infinity / negative_number == Infinity
b) IEEE 754:2008 standard defines exceptions (i.e. invalid_operation=NaN, 7.1):
Infinity * 0.0 == NaN
-Infinity * 0.0 == NaN
X * NaN == NaN
Infinity / (Infinity or NaN or -Infinity) == NaN
-Infinity / (Infinity or NaN or -Infinity) == NaN
(Infinity or NaN or -Infinity) / Infinity == NaN
(Infinity or NaN or -Infinity) / -Infinity == NaN
NaN / X == NaN
X / NaN == NaN

(0012219)
Gyorgy Rethy
06-10-2014 10:24

Using float in TTCN-3 is twofold:
- they are data sent in message fields (e.g. signal strength in dB); in this context special values can also appear
- used as numbers in the TTCN-3 code (behaviour), e.g. timer values and durations (delays), calculating averages etc. In this context operations make sense, but using special values make not.
We have to decide which way to go: making the note a mandatory text or allow operations an special values?
*It needs STF discussion*

(0012228)
Jacob Wieland - Spirent
06-10-2014 12:01

Treating them differently would be confusing, I think.

(0012233)
Gyorgy Rethy
06-10-2014 15:38

Add a sentence that operations of IEEE 754 to be followed.

(0012658)
Gyorgy Rethy
06-01-2015 19:10

Added to draft V4.6.3