Patent ID: 8195731

Claim:
A computer program product embodied on a non-transitory computer readable medium, the computer program product including instructions which, when executed by a processor, cause the processor to perform a method comprising: receiving an n-dimensional function; identifying a plurality of initial points by sampling the received n-dimensional function; inserting all of the initial points into a first list; evaluating each of the initial points in the first list against a function; inserting into a second list each of the initial points of the first list which evaluate against the function to less than a predetermined tolerance value; in response to inserting into the second list each of the initial points of the first list which evaluated against the function to less than the predetermined tolerance value, inserting each of the initial points in the first list into a third list, and clearing the first list; constructing at least one simplex utilizing each of the initial points in the third list; selecting at least one simplex from the at least one simplex constructed utilizing each of the initial points in the third list; calculating a position for a root within the selected at least one simplex; inserting the calculated position for the root within the selected at least one simplex into the first list as a point; evaluating the point in the first list, of the calculated position for the root within the selected simplex, against the function utilized to evaluate each of the initial points in the first list; and inserting into the second list the point in the first list in response to the point in the first list being evaluated against the function to less than the predetermined tolerance value.