In reply to Rick Wicklin.

So it's down to how my computer accesses it's memory? One way it's pulling in values from consecutive memory locations (presumably this is optimized in some way), the other way it's pulling in data from locations that are 300*8 bytes apart. I think this means that internally the matrices are stored in column major order.