IP Library › Granted Patent US 9,037,798
Granted Patent B2
US 9,037,798 · App. 13/133,880 · Granted May 19, 2015

System and method of operating a computing device to perform memoization including transforming input/output parameters to reduce redundancies and efficiently cache data

Inventor: Albert Anatolievich Lysko (Pretoria, ZA)
Assignee: CSIR
G06F1/0353G06F12/08G06F17/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,037,798
App. No.
13/133,880
Granted
May 19, 2015
Kind
B2
Abstract

A system ( 200 ) and a method ( 100 ) of operating a computing device to perform memoization are disclosed. The method includes determining whether a result of a function is stored in a cache and, if so, retrieving the result from the cache and, if not, calculating the result and storing it in the cache. The method ( 100 ) includes transforming ( 104 ) by the computing device at least one selected from the input parameters and the output parameters of the function, the transforming being based on an analysis of the function and its input arguments to establish whether or not there is a possible relationship reflecting redundancy among the input parameters and output parameters of the function. The transforming may include at least one of: use of symmetry, scaling, linear shift, interchanging of variables, inversion, polynomial and/or trigonometric transformations, spectral or logical transformations, fuzzy transformations, and systematic arrangement of parameters.

Claims (20)

1. A method of operating a computing device having a non-transitory computer-readable medium comprising a cache, wherein the computing device is operated to perform memoization with respect to a function having a relationship reflecting redundancy among at least one selected from the group composed of its input parameters and its output parameters, wherein the function is used to calculate a system of equations or matrix elements, tensor elements, or vector elements, and wherein the method includes operating the computing device to:

transform the input parameters;

retrieve from the cache the output parameters, if present, based on the transformed input parameters; and

transform the output parameters which includes defining a specific order in which the system of equations or the elements of the matrix, tensor, or vector are calculated, thereby to optimize memoization; wherein the transforming of the output parameters compensates for the transformation of the input parameters.

2. A method as claimed in claim 1 , wherein transforming the input parameters includes pre-processing of the input parameters.

3. A method as claimed in claim 1 , wherein transforming the input parameters includes at least one selected from the group composed of utilization/application of symmetry, scaling, linear shift, interchanging of variables, inversion, polynomial and/or trigonometric transformations, spectral transformations, logical transformations, fuzzy transformations, data compression and data decompression.

4. A method as claimed in claim 1 , wherein transforming the parameters includes bringing the parameters to a desired systematic arrangement.

5. A method as claimed in claim 1 , further comprising storing in the cache an indication of how the input parameters were transformed.

6. A method as claimed in claim 1 , wherein transforming the output parameters includes at least one selected from the group composed of utilization/application of symmetry, scaling, linear shift, interchanging of variables, inversion, polynomial and/or trigonometric transformations, and spectral transformations, logical transformations, fuzzy transformations, data compression and decompression.

7. A method as claimed in claim 1 , further comprising storing in the cache an indication of how the output parameters are transformed.

8. A method as claimed in claim 1 , further comprising storing in the cache an indication of the relationship between the input parameters and the output parameters.

9. A system for memoization, the system including:

a computing device;

a non-transitory computer-readable medium comprising:

a cache; and

a computer program configured to direct the operation of the computing device such that the computing device is operable to perform memoization with respect to a function having a relationship reflecting redundancy among at least one selected from the group composed of its input parameters and its output parameters, wherein the function is used to calculate a system of equations or matrix elements, tensor elements, or vector elements, and wherein the computing device is operable to:

transform the input parameters;

retrieve from the cache the output parameters, if present, based on the transformed input parameters; and

transform the output parameters which includes defining a specific order in which the system of equations or the elements of the matrix, tensor, or vector are calculated, thereby to optimize memoization; wherein the transforming of the output parameters compensates for the transformation of the input parameters.

10. A non-transitory computer-readable medium having stored thereon a computer program which, when executed by a computer, causes the computer to perform the method as claimed in claim 1 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2011
From: LYSKO, ALBERT ANATOLIEVICH
To: CSIR
Reel/Frame 026419/0362 →
Priority Claims (1)
ZA 2008/10479 · Dec 10, 2008 · national
Continuity (1)
Related Publication 20110302371A1 · Dec 8, 2011