Numbers.Protocols.Exponentiation protocol (numbers v5.2.4)

For supporting Numbers.pow/2.

Link to this section Summary

Functions

Power function, x^n.

Link to this section Types

Specs

t() :: term()

Link to this section Functions

Link to this function

pow(num, integer_power)

Specs

pow(t(), non_neg_integer()) :: t()

Power function, x^n.

Unless a dedicated fast power algorithm exists for your data structure, you could use the 'Exponentiation by Squaring' algorithm, by calling Numbers.Helper.pow_by_sq(num, integer_power) in the implementation, which is a reasonably fast algorithm that uses log(n) multiplication steps.