Patent ID: 8752021

Claim:
A computer-implemented method comprising: selecting a first impure function; determining an input space for said first impure function, said input space comprising a range of input values for input parameters for said first impure function; tracing said first impure function during execution and capturing operational data comprising input values and returned results; determining a first subset of said input space where said first impure function behaves as a pure function; receiving a new input vector, said new input vector comprising at least one input value not comprised in said operational data; determining that said new input vector is within said first subset of said input space; and memoizing said first impure function for said new input vector; determining a second subset of said input space where said first impure function behaves as an impure function; receiving a second new input vector, said second input vector comprising input values not found in said operational data; determining that said second new input vector is within said second subset of said input space; and not memoizing said first impure function for said second new input vector.