METHOD AND SYSTEM FOR FAST 90 DEGREE ROTATION OF ARRAYS
First Claim
1. A computer-implemented method to rotate a 2N by 2N array in the counter-clockwise direction, the computer-implemented method comprising:
- loading 2N elements of each row of the array into vector registers of a SIMD unit;
interleaving the 2N elements of each row in the top half of the array with the 2N elements of a corresponding row in the bottom half of the array so that each element from the top half of the array precedes an element from a corresponding row in the bottom half of the array; and
repeating said loading and interleaving operations a total of N times.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and system to rotate a 2N by 2N array are described. Consistent with one embodiment of the present invention, the 2N elements of the 2N rows of a 2N by 2N array are loaded from memory into the vector registers of a processor'"'"'s single instruction multiple data (SIMD) unit. Next, the elements of the rows in the top half of the array are interleaved with corresponding elements from a corresponding row in the bottom half of the array. The loading and interleaving operations are repeated N times before the results, stored in the vector registers, are written back to memory.
-
Citations
20 Claims
-
1. A computer-implemented method to rotate a 2N by 2N array in the counter-clockwise direction, the computer-implemented method comprising:
-
loading 2N elements of each row of the array into vector registers of a SIMD unit; interleaving the 2N elements of each row in the top half of the array with the 2N elements of a corresponding row in the bottom half of the array so that each element from the top half of the array precedes an element from a corresponding row in the bottom half of the array; and repeating said loading and interleaving operations a total of N times. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-implemented method to rotate a 2N by 2N array in the clockwise direction, the computer-implemented method comprising:
-
loading 2N elements of each row of the array into vector registers of a SIMD unit; interleaving the 2N elements of each row in the top half of the array with the 2N elements of a corresponding row in the bottom half of the array so that each element from the top half of the array follows an element from a corresponding row in the bottom half of the array; and repeating said loading and said interleaving operations a total of N times. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer-readable medium storing instructions, which, when executed, cause a computer to perform a method to rotate a 2N by 2N array in the counter-clockwise direction, the method comprising:
-
loading 2N elements of each row of the array into vector registers of a SIMD unit; interleaving the 2N elements of each row in the top half of the array with the 2N elements of a corresponding row in the bottom half of the array so that each element from the top half of the array precedes an element from a corresponding row in the bottom half of the array; and repeating said loading and interleaving operations a total of N times. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A computer-readable medium storing instructions, which, when executed, cause a computer to perform a method to rotate a 2N by 2N array in the clockwise direction, the method comprising:
-
loading 2N elements of each row of the array into vector registers of a SIMD unit; interleaving the 2N elements of each row in the top half of the array with the 2N elements of a corresponding row in the bottom half of the array so that each element from the top half of the array follow an element from a corresponding row in the bottom half of the array; and repeating said loading and interleaving operations a total of N times. - View Dependent Claims (20)
-
Specification