V10/cmd/lcc/ph/real13.c

/* The Plum Hall Validation Suite for C
 * Unpublished copyright (c) 1986-1991, Chiron Systems Inc and Plum Hall Inc.
 * VERSION: 4
 * DATE: 1993-01-01
 * The "ANSI" mode of the Suite corresponds to the official ANSI C, X3.159-1989.
 * As per your license agreement, your distribution is not to be moved or copied outside the Designated Site
 * without specific permission from Plum Hall Inc.
 */

/****************************************************************************
 ** Self-checking C source code generated by EGEN component of             **
 **    The Plum Hall Validation Suite for C.                               **
 **    (C) 1986-1988 Chiron Systems Inc and Plum Hall Inc                  **
 **    EGEN Version 1.09.000  88/08/21                                     **
 **                                                                        **
 **    EGEN -P -R13 -V -A -N5 -Dreal.gen ( @ @ ) @ ( @ @ )                 **
 ****************************************************************************/
#include  "defs.h"


int main()
	{
	extern char *Filename;
	auto float f1;
	auto float * pf1;
	auto float f2;
	auto float * pf2;
	auto float f3;
	auto float * pf3;
	auto float f4;
	auto float * pf4;
	auto double d1;
	auto double * pd1;
	auto double d2;
	auto double * pd2;
	auto double d3;
	auto double * pd3;
	auto double d4;
	auto double * pd4;
	auto double d5;
	auto double * pd5;
	auto double d6;
	auto double * pd6;

	f1 = fvalue(1.000000E+000);
	pf1 = &f1;
	f2 = fvalue(2.000000E+000);
	pf2 = &f2;
	f3 = fvalue(3.000000E+000);
	pf3 = &f3;
	f4 = fvalue(4.000000E+000);
	pf4 = &f4;
	d1 = dvalue(1.000000000000000E+000);
	pd1 = &d1;
	d2 = dvalue(2.000000000000000E+000);
	pd2 = &d2;
	d3 = dvalue(3.000000000000000E+000);
	pd3 = &d3;
	d4 = dvalue(4.000000000000000E+000);
	pd4 = &d4;
	d5 = dvalue(5.000000000000000E+000);
	pd5 = &d5;
	d6 = dvalue(6.000000000000000E+000);
	pd6 = &d6;
	Filename = "real13.c";

	/* 3.00000000000000E+000 /= 1.00000E+000 => 3.00000000000000E+000 */
	/* 6.00000000000000E+000 *= 3.00000000000000E+000 => 1.80000000000000E+001 */
	iequals(__LINE__, ((*pd6 *= (d3 /= *pf1)) || ((*pf3 >= d4) != f1)), 1);
	dequals(__LINE__, d3, 3.00000000000000E+000);
	dequals(__LINE__, d6, 1.80000000000000E+001);

	/* 2.00000E+000 * 1.00000000000000E+000 => 2.00000000000000E+000 */
	/* 1.00000E+000 /= 2.00000E+000 => 5.00000E-001 */
	/* 2.00000E+000 < 3.00000E+000 => 1 */
	/* 3.00000E+000 += 1 => 4.00000E+000 */
	/* 5.00000E-001 <= 4.00000E+000 => 1 */
	iequals(__LINE__, ((f1 /= (f2 * d1)) <= (*pd3 += (d2 < *pf3))), 1);
	fequals(__LINE__, d3, 4.00000E+000);
	fequals(__LINE__, f1, 5.00000E-001);

	/* 4.00000000000000E+000 <= 1.00000000000000E+000 => 0 */
	/* 3.00000E+000 *= 0 => 0.00000E+000 */
	/* 4.00000E+000 <= 5.00000E+000 => 1 */
	/* 2.00000E+000 = 1 => 1.00000E+000 */
	/* 0.00000E+000 > 1.00000E+000 => 0 */
	iequals(__LINE__, ((f3 *= (d3 <= d1)) > (*pd2 = (f4 <= *pd5))), 0);
	fequals(__LINE__, d2, 1.00000E+000);
	fequals(__LINE__, f3, 0.00000E+000);

	/* pre-- 1.80000000000000E+001 => 1.70000000000000E+001 */
	/* 1.70000000000000E+001 - 1.00000000000000E+000 => 1.60000000000000E+001 */
	/* post++ 2.00000000000000E+000 => 1.00000000000000E+000 */
	/* 1.00000000000000E+000 != 4.00000000000000E+000 => 1 */
	/* 1.60000000000000E+001 == 1 => 0 */
	iequals(__LINE__, ((( -- *pd6) - d1) == (((*pd2)++ ) != d4)), 0);
	dequals(__LINE__, d2, 2.00000000000000E+000);
	dequals(__LINE__, d6, 1.70000000000000E+001);

	/* 5.00000E-001 > 2.00000E+000 => 0 */
	/* 4.00000000000000E+000 += 0 => 4.00000000000000E+000 */
	/* pre++ 0.00000E+000 => 1.00000E+000 */
	/* 2.00000E+000 && 1.00000E+000 => 1 */
	/* 4.00000E+000 <= 1 => 0 */
	iequals(__LINE__, ((*pd3 += (*pf1 > *pf2)) <= (*pd2 && ( ++ f3))), 0);
	fequals(__LINE__, f3, 1.00000E+000);
	fequals(__LINE__, d3, 4.00000E+000);

	return 	report(Filename);
	}