{ scalar.i snormalize(var s: scalar); check/correct underflow szero(var x: scalar); x:=0 ssset(s: longstring; var x: scalar); x:=(value described by s) sinit; define sone,stwo,shalf,overflow sdone(f: string); check overflow, write done sread(f: string; var x: scalar); read x from file named f swrite(f: string; var x: scalar); write x to file named f seq0(var x: scalar): boolean; x=0 sge(var x1,x2: scalar): boolean; x1>=x2 sgt(var x1,x2: scalar): boolean; x1>x2 sle(var x1,x2: scalar): boolean; x1<=x2 slt(var x1,x2: scalar): boolean; x1=0 ssum(var x1,x2,x3: scalar); x3:=x1+x2 sneg(var x: scalar); x:=-x shrink(var s: scalar); shrink s to its approx middle pt senlarge(var x: scalar); x:=[rdown(x.l),rup(x.u)] sdiff(var x1,x2,x3: scalar); x3:=x1-x2 ismult(i: integer; var x: scalar ); x:=x*i sprod(var x1,x2,x3: scalar); x3:=x1*x2 isdiv(i: integer; var x: scalar ); x:=x/i squot(var x1,x2,x3: scalar); x3:=x1/x2 ssqrt(var x1,x2: scalar); x2:=sqrt(x1) ispower(i: integer; var x1,x2: scalar); x2:=x1^i isfactorial(i: integer; var x:scalar); x:=i! Notes: Address of last argument has to be different from others. Call sinit first. The global quantities are procedures from reps.i const topint= ; strnglen= ; exmax= ; hdim= ; edim= ; up:=true; down:=false; type longstring=varying[strnglen] of char; hint=array[0..hdim] of integer; hreal=record si: integer; ma: hint; ex: integer; end; scalar=record l: hreal; u: hreal; end; var trunc,underflow,overflow: boolean; e: array[0..edim] of integer; sone,stwo,shalf: scalar; ( the numbers 1,2,1/2 ) ------------------------------------------------------------------------------} %include 'scalar/snormalize'; %include 'scalar/szero'; %include 'scalar/ssset'; %include 'scalar/sinit'; %include 'scalar/sdone'; %include 'scalar/sread'; %include 'scalar/swrite'; %include 'scalar/seq0'; %include 'scalar/sge'; %include 'scalar/sgt'; %include 'scalar/sle'; %include 'scalar/slt'; %include 'scalar/ssub'; %include 'scalar/sinter'; %include 'scalar/sunion'; %include 'scalar/sabs'; %include 'scalar/sabs0'; %include 'scalar/ssymm'; %include 'scalar/ssum'; %include 'scalar/sneg'; %include 'scalar/shrink'; %include 'scalar/senlarge'; %include 'scalar/sdiff'; %include 'scalar/ismult'; %include 'scalar/sprod'; %include 'scalar/isdiv'; %include 'scalar/squot'; %include 'scalar/ssqrt'; %include 'scalar/ispower'; %include 'scalar/isfactorial';