|
|
1.1 root 1: /* The Plum Hall Validation Suite for C
2: * Unpublished copyright (c) 1986-1991, Chiron Systems Inc and Plum Hall Inc.
3: * VERSION: 4
4: * DATE: 1993-01-01
5: * The "ANSI" mode of the Suite corresponds to the official ANSI C, X3.159-1989.
6: * As per your license agreement, your distribution is not to be moved or copied outside the Designated Site
7: * without specific permission from Plum Hall Inc.
8: */
9:
10: /****************************************************************************
11: ** Self-checking C source code generated by EGEN component of **
12: ** The Plum Hall Validation Suite for C. **
13: ** (C) 1986-1988 Chiron Systems Inc and Plum Hall Inc **
14: ** EGEN Version 1.09.000 88/08/21 **
15: ** **
16: ** EGEN -P -R7 -V -A -N5 -Dreal.gen ( @ @ ) @ ( @ @ ) **
17: ****************************************************************************/
18: #include "defs.h"
19:
20:
21: int main()
22: {
23: extern char *Filename;
24: auto float f1;
25: auto float * pf1;
26: auto float f2;
27: auto float * pf2;
28: auto float f3;
29: auto float * pf3;
30: auto float f4;
31: auto float * pf4;
32: auto double d1;
33: auto double * pd1;
34: auto double d2;
35: auto double * pd2;
36: auto double d3;
37: auto double * pd3;
38: auto double d4;
39: auto double * pd4;
40: auto double d5;
41: auto double * pd5;
42: auto double d6;
43: auto double * pd6;
44:
45: f1 = fvalue(1.000000E+000);
46: pf1 = &f1;
47: f2 = fvalue(2.000000E+000);
48: pf2 = &f2;
49: f3 = fvalue(3.000000E+000);
50: pf3 = &f3;
51: f4 = fvalue(4.000000E+000);
52: pf4 = &f4;
53: d1 = dvalue(1.000000000000000E+000);
54: pd1 = &d1;
55: d2 = dvalue(2.000000000000000E+000);
56: pd2 = &d2;
57: d3 = dvalue(3.000000000000000E+000);
58: pd3 = &d3;
59: d4 = dvalue(4.000000000000000E+000);
60: pd4 = &d4;
61: d5 = dvalue(5.000000000000000E+000);
62: pd5 = &d5;
63: d6 = dvalue(6.000000000000000E+000);
64: pd6 = &d6;
65: Filename = "real7.c";
66:
67: /* neg 5.00000000000000E+000 => -5.00000000000000E+000 */
68: /* 1.00000E+000 == -5.00000000000000E+000 => 0 */
69: /* 4.00000000000000E+000 /= 2.00000000000000E+000 => 2.00000000000000E+000 */
70: /* 6.00000000000000E+000 = 2.00000000000000E+000 => 2.00000000000000E+000 */
71: /* 0 <= 2.00000000000000E+000 => 1 */
72: iequals(__LINE__, ((*pf1 == ( - d5)) <= (d6 = (d4 /= d2))), 1);
73: dequals(__LINE__, d4, 2.00000000000000E+000);
74: dequals(__LINE__, d6, 2.00000000000000E+000);
75:
76: /* 2.00000E+000 > 2.00000000000000E+000 => 0 */
77: /* 0 != 2.00000000000000E+000 => 1 */
78: /* pre-- 1.00000E+000 => 0.00000E+000 */
79: /* 2.00000E+000 - 0.00000E+000 => 2.00000E+000 */
80: /* 1 / 2.00000E+000 => 5.00000E-001 */
81: fequals(__LINE__, (((*pf2 > d4) != d6) / (*pd4 - ( -- f1))), 5.00000E-001);
82: fequals(__LINE__, f1, 0.00000E+000);
83:
84: /* 1.00000000000000E+000 = 2.00000000000000E+000 => 2.00000000000000E+000 */
85: /* 4.00000E+000 -= 2.00000E+000 => 2.00000E+000 */
86: /* post-- -1.00000E+000 => 0.00000E+000 */
87: /* 0.00000E+000 == 2.00000E+000 => 0 */
88: /* 2.00000E+000 != 0 => 1 */
89: iequals(__LINE__, ((*pf4 -= (d1 = d4)) != (((*pf1)-- ) == d2)), 1);
90: fequals(__LINE__, f1, -1.00000E+000);
91: fequals(__LINE__, d1, 2.00000E+000);
92: fequals(__LINE__, f4, 2.00000E+000);
93:
94: /* 3.00000000000000E+000 /= 2.00000000000000E+000 => 1.50000000000000E+000 */
95: /* 2.00000000000000E+000 -= 1.50000000000000E+000 => 5.00000000000000E-001 */
96: /* 2.00000E+000 * 2.00000E+000 => 4.00000E+000 */
97: /* 2.00000E+000 += 4.00000E+000 => 6.00000E+000 */
98: /* 5.00000E-001 && 6.00000E+000 => 1 */
99: iequals(__LINE__, ((*pd4 -= (d3 /= *pd2)) && (d1 += (f4 * *pf2))), 1);
100: fequals(__LINE__, d1, 6.00000E+000);
101: fequals(__LINE__, d3, 1.50000E+000);
102: fequals(__LINE__, d4, 5.00000E-001);
103:
104: /* 2.00000E+000 != 5.00000000000000E+000 => 1 */
105: /* 1 && -1.00000E+000 => 1 */
106: /* 2.00000E+000 && -1.00000E+000 => 1 */
107: /* 3.00000E+000 /= 1 => 3.00000E+000 */
108: /* 1 - 3.00000E+000 => -2.00000E+000 */
109: fequals(__LINE__, (((*pf4 != *pd5) && f1) - (f3 /= (f2 && f1))), -2.00000E+000);
110: fequals(__LINE__, f3, 3.00000E+000);
111:
112: return report(Filename);
113: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.