| Copyright | (c) 2011-2014 Daniel Fischer | 
|---|---|
| License | MIT | 
| Maintainer | Daniel Fischer <daniel.is.fischer@googlemail.com> | 
| Stability | Provisional | 
| Portability | Non-portable (GHC extensions) | 
| Safe Haskell | Safe | 
| Language | Haskell2010 | 
Math.NumberTheory.Powers.Integer
Description
Synopsis
- integerPower :: Integer -> Int -> Integer
- integerWordPower :: Integer -> Word -> Integer
Documentation
integerPower :: Integer -> Int -> Integer #
Power of an Integer by the left-to-right repeated squaring algorithm.
   This needs two multiplications in each step while the right-to-left
   algorithm needs only one multiplication for 0-bits, but here the
   two factors always have approximately the same size, which on average
   gains a bit when the result is large.
For small results, it is unlikely to be any faster than (^), quite
   possibly slower (though the difference shouldn't be large), and for
   exponents with few bits set, the same holds. But for exponents with
   many bits set, the speedup can be significant.
Warning: No check for the negativity of the exponent is performed, a negative exponent is interpreted as a large positive exponent.
integerWordPower :: Integer -> Word -> Integer #
Same as integerPower, but for exponents of type Word.