Methods and systems for refactoring a problem include refactoring an original problem having a dimension that cannot be broken into an integer number of portions, each portion having a number of problem elements equal to a size of a systolic array, into a new problem having a dimension that can be broken into an integer number of portions, each portion having a number of problem elements equal to the size of the systolic array. The new problem is solved with the systolic array. The systolic array has a size defined by an integer number of processing elements and is configured to solve portions of problems having a number of problem elements equal to the number of processing elements.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method for refactoring a problem, comprising: refactoring, using a processor, an original problem having a dimension that cannot be broken into an integer number of portions, each portion having a number of problem elements equal to a size of a systolic array, into a new problem having a dimension that can be broken into an integer number of portions, each portion having a number of problem elements equal to the size of the systolic array; and solving the new problem with the systolic array, said systolic array having a size defined by an integer number of processing elements and is configured to solve portions of problems having a number of problem elements equal to the number of processing elements. 2. The method of claim 1, wherein refactoring comprises converting an input matrix, having a first dimension that cannot be evenly divided into the size of the systolic array, into a new matrix, having a first dimension that can be evenly divided into the size of the systolic array. 3. The method of claim 2, wherein converting the input matrix comprises determining new parameters using a same set of parameters for each matrix element. 4. The method of claim 2, wherein converting the input matrix comprises determining new parameters using different parameters for at least one matrix element. 5. The method of claim 2, wherein the new matrix comprises parameters of the input matrix and further comprises a set of new parameters for an extended portion of the new matrix. 6. The method of claim 1, wherein the new problem has the same solution as the solution of the original problem. 7. The method of claim 1, further comprising solving the new problem by dividing the new problem into an integer number of portions, each portion having a same size as the systolic array. 8. The method of claim 7, wherein the systolic array comprises an integer number of processing elements and a results buffer. 9. The method of claim 8, wherein solving the new problem comprises iteratively solving the portions of the new problem based on a stored result from a previous portion. 10. A computer readable storage medium comprising a computer readable program for refactoring a problem, wherein the computer readable program when executed on a computer causes the computer to perform the steps of claim 1. 11. A method for solving a problem, comprising: refactoring, using a processor, an original problem having a dimension that cannot be broken into an integer number of portions, each portion having a same size as a systolic array, into a new problem having a dimension that can be broken into an integer number of portions, each portion having the same size as the systolic array, said refactoring being performed by converting an input matrix, having a first dimension that cannot be evenly divided into the size of the systolic array, into a new matrix having a first dimension that can be evenly divided into the size of the systolic array, said new matrix comprising parameters of the input matrix and a set of new parameters for an extended portion of the new matrix; and solving the new problem by dividing the new problem into an integer number of portions, each portion having a same size as the systolic array and solving the portions of the new problem based on a stored result from a previous portion, wherein the systolic array comprises an integer number of processing elements and a results buffer. 12. A system for refactoring a problem, comprising: a systolic array having a size defined by an integer number of processing elements configured to solve a portion of a problem having a number of problem elements equal to the number of processing elements; a refactoring module comprising a processor configured to refactor an original problem having a dimension that cannot be broken into an integer number of portions, each portion having a number of problem elements equal to the size of the systolic array, into a new problem having a dimension that can be broken into an integer number of portions, each portion having a number of problem elements equal to the size of the systolic array. 13. The system of claim 12, wherein the refactoring module is further configured to convert an input matrix, having a first dimension that cannot be evenly divided into the size of the systolic array, into a new matrix having, a first dimension that can be evenly divided into the size of the systolic array. 14. The system of claim 13, further comprising a parameter module configured to determine new parameters using a same set of parameters for each matrix element. 15. The system of claim 13, further comprising a parameter module configured to determine new parameters using different parameters for at least one matrix element. 16. The system of claim 13, wherein the new matrix comprises parameters of the input matrix and further comprises a set of new parameters for an extended portion of the new matrix. 17. The system of claim 12, wherein the new problem has the same solution as the solution of the original problem. 18. The system of claim 12, wherein the systolic array is configured to divide the new problem into an integer number of portions, each portion having a same size as the systolic array, and to solve the new problem. 19. The system of claim 18, wherein the systolic array comprises an integer number of processing elements and a results buffer. 20. The system of claim 19, wherein the systolic array is further configured to iteratively solve the portions of the new problem based on a stored result from a previous portion.