Patent ID: 8645447

Claim:
A method of improving at least one of an efficiency and a speed of a linear algebra processing on a computer, said method comprising: downloading an application program from a memory of said computer holding one or more application programs in storage for execution by said computer, said application program directed to an application having at least one processing involving a linear algebra processing of matrix data; and executing said application program on a processor of said computer, wherein said application program accesses a library accessible to said processor of subroutines for said linear algebra processing, said library including a subroutine for performing an in-place data transposition processing of matrix data stored in a memory of said computer that stores data during execution of said application program, said subroutine comprising a method for transposing data of a rectangular matrix A to form a transpose A′ of said matrix A, said method comprising: determining, using a processor on said computer, a largest order square submatrix within a residual of said rectangular matrix A not yet transposed; subdividing said residual of said rectangular matrix A into one or more square submatrices A ij , each having said largest order; executing an in-place transposition of each of said square submatrices A ij ; and storing said transposed square submatrices A ij in a memory as data structures representing said transposed square submatrices, said data structures mapped as being concatenated in a formation of said transpose A′.