indexing
	description: "Some useful facilities on objects of basic types"

class interface
	BASIC_ROUTINES

feature -- Conversion

	charconv (i: INTEGER): CHARACTER
			-- Character corresponding to ascii code i
	
feature -- Basic operations

	abs (n: INTEGER): INTEGER
			-- Absolute value of n
		ensure
			non_negative_result: Result >= 0

	bottom_int_div (n1, n2: INTEGER): INTEGER
			-- Greatest lower bound of the integer division of n1 by n2

	rsign (r: REAL): INTEGER
			-- Sign of r:
			-- -1 if r < 0
			--  0 if r = 0
			-- +1 if r > 0
		ensure
			correct_negative: (r < 0) = (Result = - 1);
			correct_zero: (r = 0) = (Result = 0);
			correct_positive: (r > 0) = (Result = + 1)

	sign (n: INTEGER): INTEGER
			-- Sign of n:
			-- -1 if n < 0
			--  0 if n = 0
			-- +1 if n > 0
		ensure
			correct_negative: (n < 0) = (Result = - 1);
			correct_zero: (n = 0) = (Result = 0);
			correct_positive: (n > 0) = (Result = + 1)

	up_int_div (n1, n2: INTEGER): INTEGER
			-- Least upper bound of the integer division
			-- of n1 by n2
	
invariant

		-- from GENERAL
	reflexive_equality: standard_is_equal (Current);
	reflexive_conformance: conforms_to (Current);

end -- class BASIC_ROUTINES