about summary refs log tree commit diff homepage
path: root/docs
diff options
context:
space:
mode:
authorEric Rizzi <eric.rizzi@gmail.com>2015-02-16 11:46:01 -0500
committerEric Rizzi <eric.rizzi@gmail.com>2015-04-01 14:22:02 -0400
commit76b6ae9a16dcb643456a98a845dc8d44df3aa049 (patch)
treeea2adf9401be35c035ed01304de266aae71b8b3d /docs
parentd9bcbba2c94086039c11c86200670639ee2ec19f (diff)
downloadklee-76b6ae9a16dcb643456a98a845dc8d44df3aa049.tar.gz
Commit of improved IndependentSolver::getIniitalValues().
Previous implementation simply passed the entire constraint forward
without any factoring of the constraint at all.  This is a problem
since it is highly likely that there are cached solutions to pieces
of the constraint.  The new implementation breaks the entire
constraint down into its requisite factors and passes each piece
forward, one by one, down the solver chain.  After an answer is
returned, it is integrated into a larger solution.  Since, by
definition, no factor can affect another, we can safely create a
solution to the larger constraint from the answers of its smaller
pieces.

The reconstruction of the solution is done by analyzing which parts of
an array a factor touches.  If the factor is the only one to reference
a particular array, then all of the values calculated in the solution
for that array are included in the final answer.  If the factor
references a particular element of the array (for example, arr[1]),
then only the value in index 1 of array arr will be included in the
solution.
Diffstat (limited to 'docs')
0 files changed, 0 insertions, 0 deletions