Abstraction of numeric types that may be raised to a power using the exponentiation operator `x ^ n` which accepts an instance of `Exponentiable` as its first operand, and an exponent as its second operand.

```function exp(Float x) => e^x;
```

The exponentiation operation should obey the usual index laws, including:

• `x^0 == 1`
• `x^1 == x`
• `x^(-1) == 1/x`
• `x^(m+n) == x^m * x^n`
• `x^(m-n) == x^m / x^n`
• `x^(m*n) == (x^m)^n`
• `(x*y)^n == x^n * y^n`

where `0` is the additive identity, and `1` is the multiplicative identity.

Note that in general, the type of the exponent may be different to the numeric type which is exponentiated. For example, a `Rational` number class might be a subtype of `Exponentiable<Rational,Integer>`, thus accepting only whole-number exponents.

See also `Integer`, `Float`

no type hierarchy

• `Exponentiable`
• `Numeric`
• `Invertible`
• `Summable`
• `Exponentiable` of
• `Float`
• `Integer`
 Inherited Attributes Attributes inherited from: `Object` Attributes inherited from: `Invertible``negated`
 Methods `power` Source Code`shared formal This power(Other other)`The result of raising this number to the given power.
 Inherited Methods Methods inherited from: `Object``equals()` Methods inherited from: `Invertible``minus()` Methods inherited from: `Numeric` Methods inherited from: `Summable``plus()`