'BEGIN' 'INTEGER' I, J, CASE; 'REAL' X, Y; 'PROCEDURE' REQUAL(A, B); 'VALUE' A, B; 'REAL' A, B; 'IF' A # B 'THEN' 'BEGIN' OUTREAL(99, A); OUTREAL(99, B); OUTREAL(99, CASE) 'END' 'ELSE' CASE := CASE + 1; CASE := 1; X := 2.0; Y := 3.0; I := 2; J := 3; REQUAL(X^I, 4.0); 'IF' I^J # 8 'THEN' 'BEGIN' OUTREAL(99, I^J); OUTREAL(99, 8); 'END'; REQUAL(X^0, 1.0); 'IF' I^0 # 1 'THEN' 'BEGIN' OUTREAL(99, I^0); OUTREAL(99, 1) 'END'; REQUAL(X^( - I), 1.0 / (2.0 * 2.0)); REQUAL(I^( - I), 1.0 / (2.0 * 2.0)); REQUAL(X^Y, EXP(Y * LN(X))); REQUAL(J^Y, EXP(Y * LN(J))); REQUAL(0.0^X, 0.0); REQUAL(0^X, 0.0); 'COMMENT' SHOULD FAIL; REQUAL(( - X)^Y, - 1) 'END'