note
	description: "Integer values coded on 16 bits"
	external_name: "System.Int16"
	assembly: "mscorlib"
	library: "Free implementation of ELKS library"
	status: "See notice at end of class."
	legal: "See notice at end of class."
	date: "$Date: 2020-04-15 18:06:04 +0000 (Wed, 15 Apr 2020) $"
	revision: "$Revision: 104046 $"

frozen expanded class 
	INTEGER_16

inherit
	INTEGER_16_REF
		redefine
			is_less,
			plus,
			minus,
			product,
			quotient,
			power,
			integer_quotient,
			integer_remainder,
			opposite,
			identity,
			as_natural_8,
			as_natural_16,
			as_natural_32,
			as_natural_64,
			as_integer_8,
			as_integer_16,
			as_integer_32,
			as_integer_64,
			to_real,
			to_double,
			to_character_8,
			to_character_32,
			bit_and,
			bit_or,
			bit_xor,
			bit_not,
			bit_shift_left,
			bit_shift_right
		end

create 
	default_create,
	make_from_reference

convert
	make_from_reference ({INTEGER_16_REF}),
	to_real: {REAL_32},
	to_double: {REAL_64},
	to_integer_32: {INTEGER_32},
	to_integer_64: {INTEGER_64}

feature -- Comparison

	is_less alias "<" (other: INTEGER_16): BOOLEAN
			-- Is current integer less than other?
		do
			Result := Precursor (other)
		end
	
feature -- Basic operations

	plus alias "+" (other: INTEGER_16): INTEGER_16
			-- Sum with other
		do
			Result := Precursor (other)
		end

	minus alias "-" alias "" (other: INTEGER_16): INTEGER_16
			-- Result of subtracting other
		do
			Result := Precursor (other)
		end

	product alias "*" alias "×" (other: INTEGER_16): INTEGER_16
			-- Product by other
		do
			Result := Precursor (other)
		end

	quotient alias "/" alias "÷" (other: INTEGER_16): REAL_64
			-- Division by other
		do
			Result := Precursor (other)
		end

	identity alias "+": INTEGER_16
			-- Unary plus
		do
			Result := Precursor
		end

	opposite alias "-" alias "": INTEGER_16
			-- Unary minus
		do
			Result := Precursor
		end

	integer_quotient alias "//" (other: INTEGER_16): INTEGER_16
			-- Integer division of Current by other
		do
			Result := Precursor (other)
		end

	integer_remainder alias "\\" (other: INTEGER_16): INTEGER_16
			-- Remainder of the integer division of Current by other
		do
			Result := Precursor (other)
		end

	power alias "^" (other: REAL_64): REAL_64
			-- Integer power of Current by other
		do
			Result := Precursor (other)
		end
	
feature -- Conversion

	as_natural_8: NATURAL_8
			-- Convert item into an NATURAL_8 value.
		do
			Result := Precursor
		end

	as_natural_16: NATURAL_16
			-- Convert item into an NATURAL_16 value.
		do
			Result := Precursor
		end

	as_natural_32: NATURAL_32
			-- Convert item into an NATURAL_32 value.
		do
			Result := Precursor
		end

	as_natural_64: NATURAL_64
			-- Convert item into an NATURAL_64 value.
		do
			Result := Precursor
		end

	as_integer_8: INTEGER_8
			-- Convert item into an INTEGER_8 value.
		do
			Result := Precursor
		end

	as_integer_16: INTEGER_16
			-- Convert item into an INTEGER_16 value.
		do
			Result := Precursor
		end

	as_integer_32: INTEGER_32
			-- Convert item into an INTEGER_32 value.
		do
			Result := Precursor
		end

	as_integer_64: INTEGER_64
			-- Convert item into an INTEGER_64 value.
		do
			Result := Precursor
		end

	to_real: REAL_32
			-- Convert item into a REAL_32
		do
			Result := Precursor
		end

	to_double: REAL_64
			-- Convert item into a REAL_64
		do
			Result := Precursor
		end

	to_character_8: CHARACTER_8
			-- Associated character in 8 bit version.
		do
			Result := Precursor
		end

	to_character_32: CHARACTER_32
			-- Associated character in 32 bit version.
		do
			Result := Precursor
		end
	
feature -- Bit operations

	bit_and alias "&" alias "" (i: INTEGER_16): INTEGER_16
			-- Bitwise and between Current' and i.
		do
			Result := Precursor (i)
		end

	bit_or alias "|" alias "" (i: INTEGER_16): INTEGER_16
			-- Bitwise or between Current' and i.
		do
			Result := Precursor (i)
		end

	bit_xor alias "" (i: INTEGER_16): INTEGER_16
			-- Bitwise xor between Current' and i.
		do
			Result := Precursor (i)
		end

	bit_not alias "": INTEGER_16
			-- One's complement of Current.
		do
			Result := Precursor
		end

	bit_shift_left alias "|<<" alias "" (n: INTEGER_32): INTEGER_16
			-- Shift Current from n position to left.
		do
			Result := Precursor (n)
		end

	bit_shift_right alias "|>>" alias "" (n: INTEGER_32): INTEGER_16
			-- Shift Current from n position to right.
		do
			Result := Precursor (n)
		end
	
note
	copyright: "Copyright (c) 1984-2020, Eiffel Software and others"
	license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
	source: "[
		Eiffel Software
		5949 Hollister Ave., Goleta, CA 93117 USA
		Telephone 805-685-1006, Fax 805-685-6869
		Website http://www.eiffel.com
		Customer support http://support.eiffel.com
	]"

end -- class INTEGER_16

Generated by ISE EiffelStudio