def get_table_index(node_assignment, givens_assignments)
x = []
indices = []
index = 0
if givens_assignments.length != @givens.length
raise "Error. Number of assignments does not match node."
end
if @givens.length > 0
givens_assignments.length.times { |i|
assignment = givens_assignments[i]
indices[i] = @givens[i].outcomes.index(assignment)
}
x[givens_assignments.length-1] = @outcomes.length
(givens_assignments.length-2).downto(0) { |j|
x[j] = x[j+1] * @givens[j+1].outcomes.length
}
givens_assignments.length.times { |i|
index += x[i] * indices[i]
}
end
index += @outcomes.index(node_assignment)
return index
end