Exercise 1.19
Let \(T_{pq}(a,b) = (bq+aq+ap,bp+aq).\) Applying \(T_{pq}\) twice gives
$$ \begin{aligned} & \ \ \ \ \ \ T_{pq}(T_{pq}(a,b)) \ &= \ T_{pq}(bq+aq+ap,bp+aq) \ &= \ ((bp +aq)q + (bq + aq + ap)q + (bq+aq+ap)p), \ & \ \ \ \ \ \ \ (bp+aq)p + (bq+aq+ap)q)\ &= \ (bpq + aq^2 + bq(q+p) + aq(q+p) + ap(q+p)), \ & \ \ \ \ \ \ \ bp^2 + aqp + bq^2 +aq^2 + apq) \ &=(b-q + aq^2 +bq^2 + bpq + aq^2 + apq+ apq +ap^2, \ & \ \ \ \ \ \ \ bp^2 +apq+bq^2 + aq^2 + apq) \ &= \ (b(q^2 + 2pq) + a(q^2 +2pq) + a(p^2 + q^2), \ & \ \ \ \ \ \ \ b(p^2+q^2)+a(q^2 + 2pq)) \ &= \ T_{p'q'}(a,b) \end{aligned} $$ where \(p' = p^2 + q^2\) and \(q' = q^2 + 2pq\).
Using this, we can implement fib with \(\Theta(\log n)\) time complexity: