Thanks for all the replies - you are very nice people! Don't worry Jeff, I assumed you weren't telling me what 1*1 equals! I got your point.
James Stroud impressively got to the heart of what I was trying to do - which was just to wrap up the code here: en.wikipedia.org/wiki/Fibonacci_number_program#Matrix_equation in object-oriented fashion but without too much overhead - I appreciate you taking the time James! Thanks. I managed to do what i wanted with the code below, though there's definitely a lack of understanding on my part with respect to how Python works - binding/re-binding? - that I'll have to study. Cheers 'n' all class FibonacciMatrix: def __init__( self ): self.a = 1 self.b = 1 self.c = 0 def Copy( self ): copy = FibonacciMatrix() copy.a = self.a copy.b = self.b copy.c = self.c return copy def __mul__( self, other ): result = FibonacciMatrix() result.a = self.a * other.a + self.b * other.b result.b = self.a * other.b + self.b * other.c result.c = self.b * other.b + self.c * other.c return result def __pow__( self, N ): if N == 1: return self if N & 1 == 0: return pow( self * self, N/2 ) else: return self * pow( self * self, (N-1)/2 ) A = FibonacciMatrix() ** 8 print '------------------------------' print A.a -- http://mail.python.org/mailman/listinfo/python-list