const up=true; down=false; topint=32767; { max allowed integer value } strnglen=600; { max length of strings to represent hreals } exmax=10000; { max exponent, smaller than topint/2 } zdim=80; { a number between 79 and 100 } type longstring=varying[strnglen] of char; hint=array[0..hdim] of integer; hreal=record si: integer; { sign } ma: hint; { mantissa } ex: integer; { exponent, base 10000 } end; scalar=record l: hreal; { lower bound } u: hreal; { upper bound } end; vector=array[0..vdim] of scalar; ltuple=array[0..lmax] of scalar; matrix=array[0..lmax,0..lmax] of scalar; vtuple=array[0..lmax] of vector; zeros=array[0..zdim] of scalar; var trunc,underflow,overflow: boolean; e: array[0..edim] of integer; { used by rquot } sone,stwo,shalf: scalar; { the numbers 1,2,1/2 }