Lev Walkin | 026e21a | 2017-10-04 00:49:01 -0700 | [diff] [blame] | 1 | |
| 2 | -- OK: Everything is fine |
| 3 | |
| 4 | -- iso.org.dod.internet.private.enterprise (1.3.6.1.4.1) |
| 5 | -- .spelio.software.asn1c.test (9363.1.5.1) |
| 6 | -- .154 |
| 7 | |
| 8 | ModuleREALWithComponents |
| 9 | { iso org(3) dod(6) internet(1) private(4) enterprise(1) |
| 10 | spelio(9363) software(1) asn1c(5) test(1) 154 } |
| 11 | DEFINITIONS ::= BEGIN |
| 12 | |
| 13 | UnconstrainedREAL ::= REAL |
| 14 | |
| 15 | WeirdlyConstrainedREAL ::= REAL (3, ...) -- Not really constrained |
| 16 | |
Lev Walkin | b545070 | 2017-10-04 02:52:57 -0700 | [diff] [blame] | 17 | Indirect-IEEE-binary32 ::= UnconstrainedREAL (WITH COMPONENTS { |
| 18 | mantissa (-16777215..16777215), |
Lev Walkin | 290e2c7 | 2017-10-13 23:42:06 -0700 | [diff] [blame] | 19 | base (2), exponent (-149..104)}) |
Lev Walkin | b545070 | 2017-10-04 02:52:57 -0700 | [diff] [blame] | 20 | |
Lev Walkin | 026e21a | 2017-10-04 00:49:01 -0700 | [diff] [blame] | 21 | -- X.696 (08/2005) #12.2 and #12.3 |
| 22 | |
| 23 | -- IEEE 754 encoding single precision |
| 24 | IEEE-binary32-w ::= REAL (WITH COMPONENTS { |
| 25 | mantissa (-16777215..16777215), |
Lev Walkin | 290e2c7 | 2017-10-13 23:42:06 -0700 | [diff] [blame] | 26 | base (2), exponent (-149..104)}) |
Lev Walkin | 026e21a | 2017-10-04 00:49:01 -0700 | [diff] [blame] | 27 | |
| 28 | IEEE-binary32-0w ::= REAL (0 | WITH COMPONENTS { |
| 29 | mantissa (-16777215..16777215), |
Lev Walkin | 290e2c7 | 2017-10-13 23:42:06 -0700 | [diff] [blame] | 30 | base (2), exponent (-149..104)}) |
Lev Walkin | 026e21a | 2017-10-04 00:49:01 -0700 | [diff] [blame] | 31 | |
| 32 | IEEE-binary32-w0 ::= REAL (WITH COMPONENTS { |
| 33 | mantissa (-16777215..16777215), |
Lev Walkin | 290e2c7 | 2017-10-13 23:42:06 -0700 | [diff] [blame] | 34 | base (2), exponent (-149..104)} | 0) |
Lev Walkin | 026e21a | 2017-10-04 00:49:01 -0700 | [diff] [blame] | 35 | |
| 36 | -- IEEE 754 encoding double precision |
| 37 | IEEE-binary64-w ::= REAL (WITH COMPONENTS { |
| 38 | mantissa (-9007199254740991..9007199254740991), |
Lev Walkin | c44edc0 | 2017-10-04 03:28:38 -0700 | [diff] [blame] | 39 | base (2), exponent (-1074..971)}) |
Lev Walkin | 026e21a | 2017-10-04 00:49:01 -0700 | [diff] [blame] | 40 | |
| 41 | IEEE-binary64-0w ::= REAL (0 | WITH COMPONENTS { |
| 42 | mantissa (-9007199254740991..9007199254740991), |
Lev Walkin | c44edc0 | 2017-10-04 03:28:38 -0700 | [diff] [blame] | 43 | base (2), exponent (-1074..971)}) |
Lev Walkin | 026e21a | 2017-10-04 00:49:01 -0700 | [diff] [blame] | 44 | |
| 45 | IEEE-binary64-w0 ::= REAL (WITH COMPONENTS { |
| 46 | mantissa (-9007199254740991..9007199254740991), |
Lev Walkin | c44edc0 | 2017-10-04 03:28:38 -0700 | [diff] [blame] | 47 | base (2), exponent (-1074..971)} | 0) |
Lev Walkin | 026e21a | 2017-10-04 00:49:01 -0700 | [diff] [blame] | 48 | |
Lev Walkin | b545070 | 2017-10-04 02:52:57 -0700 | [diff] [blame] | 49 | Test ::= SEQUENCE { |
| 50 | indirect-ieee-binary32 Indirect-IEEE-binary32, |
| 51 | ieee-binary32-w IEEE-binary32-w, |
| 52 | ieee-binary32-0w IEEE-binary32-0w, |
| 53 | ieee-binary32-w0 IEEE-binary32-w0, |
| 54 | ieee-binary64-w IEEE-binary64-w, |
| 55 | ieee-binary64-0w IEEE-binary64-0w, |
| 56 | ieee-binary64-w0 IEEE-binary64-w0 |
| 57 | } |
| 58 | |
Lev Walkin | 026e21a | 2017-10-04 00:49:01 -0700 | [diff] [blame] | 59 | END |