procedure sabs0(var x1,x2: scalar);
begin { sabs0 }
  with x1 do begin
    if l.si>=0 then x2.u:=u
    else if u.si<=0 then begin
      x2.u:=l;
      x2.u.si:=-l.si;
    end
    else begin
      l.si:=-l.si;
      if irdiff(u,l)>0 then x2.u:=u else x2.u:=l;
      l.si:=-l.si;
    end;
  end;
  x2.l.si:=0;
end { sabs0 };

