Powers of numbers or matrices $m^n$ can be computed by working on the exponent $n$ from left to right (from the most significant to the least significant bit). This method has the advantage that each iteration of the loop requires only one multiplication with large numbers, whereas the second multiplication - if the bit is equal to one - is with the original $m$. For Fibonacci numbers, this matrix $m$ consists only of zeroes and ones.
1. Program the left-to-right method in general form (for powers of numbers), similar to the definition of BinaryPower [] in Section 7.1.3.
2. Write a special version of the definition for the computation of the $n$th Fibonacci number and compare its run time with method fibh[] from Section 7.2.6.