Visit (and possibly change) all matrix entries using the fastest possible order.
The fastest walking order depends on the exact matrix class. It may be different from traditional row or column orders.
@param visitor visitor used to process all matrix entries
@exception MatrixVisitorException if the visitor cannot process an entry
@see #walkInRowOrder(RealMatrixChangingVisitor)
@see #walkInRowOrder(RealMatrixPreservingVisitor)
@see #walkInRowOrder(RealMatrixChangingVisitor,int,int,int,int)
@see #walkInRowOrder(RealMatrixPreservingVisitor,int,int,int,int)
@see #walkInColumnOrder(RealMatrixChangingVisitor)
@see #walkInColumnOrder(RealMatrixPreservingVisitor)
@see #walkInColumnOrder(RealMatrixChangingVisitor,int,int,int,int)
@see #walkInColumnOrder(RealMatrixPreservingVisitor,int,int,int,int)
@see #walkInOptimizedOrder(RealMatrixPreservingVisitor)
@see #walkInOptimizedOrder(RealMatrixChangingVisitor,int,int,int,int)
@see #walkInOptimizedOrder(RealMatrixPreservingVisitor,int,int,int,int)
@return the value returned by {@link RealMatrixChangingVisitor#end()} at the endof the walk