deferred class interface NUMERIC
--
-- This class describes a ring.
--
feature(s) from HASHABLE
hash_code: INTEGER
-- The hash-code value of Current.
ensure
good_hash_value: Result >= 0
feature(s) from NUMERIC
infix "+" (other: like Current): like Current
-- Sum with 'other' (commutative).
require
other /= Void
infix "-" (other: like Current): like Current
-- Result of substracting other.
require
other /= Void
infix "*" (other: like Current): like Current
-- Product by other.
require
other /= Void
infix "/" (other: like Current): NUMERIC
-- Division by other.
require
other /= Void;
divisible(other)
infix "^" (exp: INTEGER): NUMERIC
-- Current raised to exp-th power.
require
exp >= 0
prefix "+": like Current
-- Unary plus of Current.
prefix "-": like Current
-- Unary minus of Current.
divisible (other: like Current): BOOLEAN
-- May Current be divided by other ?
require
other /= Void
one: like Current
-- Neutral element for "*" and "/".
zero: like Current
-- Neutral element for "+" and "-".
sign: INTEGER
-- Sign of Current (0 -1 or 1).
ensure
- 1 <= Result;
Result <= 1
infix "<" (other: like Current): BOOLEAN
-- Is Current strictly less than other?
infix ">" (other: like Current): BOOLEAN
end of deferred NUMERIC