More precisely, these methods can be applied to elements of a monoid, where the term one stands for the neutral element of the monoid. We assume, that every class, which uses these routines, implements their own power function, that handles the case of negative exponents appropriately and then calls the template function. If a new, faster routine is implemented, the interface function will be changed appropriately and you don't have to change your own code.
E can be either of type bigint or unsigned long .
E can be either of type bigint or unsigned long .