
PROCEDURE FI(x: INT): TEXT = 
  BEGIN RETURN Fmt.Int(x) END FI;

PROCEDURE Compare(READONLY a, b: Ts): [-1..+1];
  (*
    Returns +1 if "a" dominates "b", "-1" if "b" dominates "a",
    "0" if "a = b" or they are incomparable. *)

PROCEDURE Bump(
    VAR s: Ts; 
    alpha: LONG;
    READONLY d: Ts;
  );
  (*
    Sets " s := s + alpha*d". *)

PROCEDURE Compare(READONLY a, b: Ts): [-1..+1] =

PROCEDURE Bump(
    VAR s: Ts; 
    alpha: LONG;
    READONLY d: Ts;
  ) =
  BEGIN
    FOR k := 0 TO LAST(s) DO
      s[k] := s[k] + alpha * d[k] 
    END
  END Bump;

PROCEDURE FI(x: INT): TEXT = 
  BEGIN RETURN Fmt.Int(x) END FI;

  
PROCEDURE SGN(x: INT): [-1..+1] =
  BEGIN
    IF x < 0 THEN RETURN -1 ELSIF x > 0 THEN RETURN +1 ELSE RETURN 0 END
  END SGN;

(* Last edited on 2000-01-12 08:32:00 by stolfi *)
