Path: utzoo!utgpu!watmath!att!tut.cis.ohio-state.edu!gem.mps.ohio-state.edu!ginosko!uunet!aecom!werner From: werner@aecom.yu.edu (Craig Werner) Newsgroups: comp.lang.postscript Subject: Bug in PostScript math Keywords: 200/3 Message-ID: <2395@aecom.yu.edu> Date: 10 Aug 89 01:40:19 GMT Distribution: na Organization: Albert Einstein Coll. of Med., NY Lines: 65 I recently encountered a problem that seems to be do to a bug in the PostScript arithmetic routines built into an Apple LaserWriter IINT. Consider the following: 1) divide 200 by 5, save the 40 in a variable 2) add 200, later subtract 200 3) divide the variable byt the current value, the answer is 1.0 4) truncate the 1.0, the answer should still be 1.0. Now divide 200 by 3, saving 66.6667. When you truncate the 1.0 in step 4, the result is 0.0 If you don't believe me, run the following code fragment with the variable "nlines" (~4 lines from the bottom) set to either 5 or 3. Please note, however, that since the truncation is necessary in the logic of the loop, the bug causes an infinite loop. All the functionality of the following routine has been removed, only the logic and debugging statements remain. %!PS /inch {72 mul} def /str 11 string def /DEBUG { dup str cvs show ( ) show } def /Times-Roman findfont 8 scalefont setfont /COUNTER 0 def 1 inch 10 inch COUNTER 10 mul sub moveto /linMSEG { MZeroPoint sub /_finish exch def MZeroPoint sub /_start exch def _start DEBUG dup linelimit div DEBUG truncate DEBUG dup /Line exch def linelimit mul sub DEBUG /rstart exch def _finish Line linelimit mul sub DEBUG /rfinish exch def /COUNTER COUNTER 1 add def 1 inch 10 inch COUNTER 10 mul sub moveto copypage rfinish linelimit le {} { Line 1 add linelimit mul MZeroPoint add _finish MZeroPoint add linMSEG } ifelse } def /COUNTER 0 def /start 200 def /finish 400 def /length finish start sub def /nlines 3 def /MZeroPoint 200 def /linelimit length nlines div def start finish linMSEG -- Craig Werner (future MD/PhD, 4.5 years down, 2.5 to go) werner@aecom.YU.EDU -- Albert Einstein College of Medicine (1935-14E Eastchester Rd., Bronx NY 10461, 212-931-2517) "If it weren't for politicians, who would fashion disorder out of chaos."