procedure sval(var v: vector; var r,x,y: scalar); var n: integer; s1,s2: scalar; begin { sval } sabs(x,s1); squot(s1,r,s2); isdiv(vdim+1,s2); sdiff(sone,s2,s1); if s1.l.si<=0 then writeln('sval: argument too large') else begin squot(sone,s1,s2); sprod(s2,v[vdim],y); ssymm(y,y); for n:=vdim-1 downto 0 do begin sprod(x,y,s1); ssum(v[n],s1,y); end; end; end { sval };