fn powi(comptime T: type, x: T, y: T) error{Overflow, Underflow}!T

Returns the power of x raised by the integer y (x^y).

Errors:

  • Overflow: Integer overflow or Infinity
  • Underflow: Absolute value of result smaller than 1 Edge case rules ordered by precedence:
  • powi(T, x, 0) = 1 unless T is i1, i0, u0
  • powi(T, 0, x) = 0 when x > 0
  • powi(T, 0, x) = Overflow
  • powi(T, 1, y) = 1
  • powi(T, -1, y) = -1 for y an odd integer
  • powi(T, -1, y) = 1 unless T is i1, i0, u0
  • powi(T, -1, y) = Overflow
  • powi(T, x, y) = Overflow when y >= @bitSizeOf(x)
  • powi(T, x, y) = Underflow when y < 0

Parameters

T: type,
x: T,
y: T,