// internal var name -> original var name
OpenIntIntHashMap internalToOriginalMap = new OpenIntIntHashMap();
// original var name -> internal var name
OpenIntIntHashMap sourceIndices = new OpenIntIntHashMap();
IntArrayList sourceValues = readSourceValues(reader, sourceIndices);
for (int originalVarName : sourceIndices.keys().elements())
{
internalToOriginalMap.put(sourceIndices.get(originalVarName), originalVarName);
}
IntArrayList values = new IntArrayList();
for (int i = 0; i < sourceValues.size(); i++)
{
int sourceVar = sourceValues.get(i);
if (sourceVar != 0)
{
int sign = sourceVar > 0 ? 1 : -1;
int var = sign * sourceIndices.get(Math.abs(sourceVar));
values.add(var);
}
else
{
if(!values.isEmpty())
{
addTriplets(internalToOriginalMap, values);
values.clear();
}
}
}
formula.setVarMappings(internalToOriginalMap);