procedure slnhalf(var s: scalar);
var
  i: integer;
  s1,s2: scalar;
begin { slnhalf }
  szero(s);
  sunion(sone,stwo,s1);
  for i:=14*hdim downto 1 do begin
    s2:=s;
    isdiv(i,s1);
    ssum(s1,s2,s);
    isdiv(2,s);
    s1:=sone;
  end;
  if hdim>(topint div 14) then writeln('slnhalf: error - hdim too large');
  sneg(s);
end { slnhalf };

