Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site lsuc.UUCP Path: utzoo!lsuc!msb From: msb@lsuc.UUCP (Mark Brader) Newsgroups: net.unix-wizards,net.lang Subject: Re: smart compilers Message-ID: <230@lsuc.UUCP> Date: Wed, 26-Dec-84 02:51:12 EST Article-I.D.: lsuc.230 Posted: Wed Dec 26 02:51:12 1984 Date-Received: Wed, 26-Dec-84 03:52:09 EST References: <6599@brl-tgr.ARPA> <979@opus.UUCP> <1146@ut-ngp.UUCP> <18397@lanl.ARPA> <2061@umcp-cs.UUCP> Reply-To: msb@lsuc.UUCP (Mark Brader) Organization: Law Society of Upper Canada, Toronto Lines: 22 Summary: All examples given so far for that DO optimization are wrong Ho hum, all of you are wrong. The CORRECT optimization for: DO 100 I = 1 TO 10 IF (Y .GT. 0) X(I) = SQRT(Y) 100 CONTINUE Is, in Ratfor syntax: IF (Y > 0) { TEMP = SQRT(Y) DO I = 1,10 X(I) = TEMP } ELSE I = 11 (In some implementations the number 11 will be something else, most likely 10, but leaving I unchanged is clearly wrong!) Moral: This is not only trickier than it looks, it's trickier than that! Mark Brader