From 44dfdcf546f020f6e5546b28ac85bd722b55afdd Mon Sep 17 00:00:00 2001 From: Joe Slag Date: Mon, 9 Apr 2007 18:36:35 +0000 Subject: [PATCH] minor optimization git-svn-id: svn://rubyforge.org/var/svn/rubyvote/trunk@23 1440c7f4-e209-0410-9a04-881b5eb134a8 --- lib/rubyvote/condorcet.rb | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/rubyvote/condorcet.rb b/lib/rubyvote/condorcet.rb index b0471ec..4dd1745 100644 --- a/lib/rubyvote/condorcet.rb +++ b/lib/rubyvote/condorcet.rb @@ -229,12 +229,15 @@ class CloneproofSSDResult < CondorcetResult candidates = [candidates] unless candidates.class == Array candidates.each do |cand1| candidates.each do |cand2| - candidates.each do |cand3| - if transitive_defeats.include?( [ cand2, cand1 ] ) and - transitive_defeats.include?( [ cand1, cand3 ] ) and - not transitive_defeats.include?( [ cand2, cand3 ] ) and - not cand2 == cand3 - transitive_defeats << [ cand2, cand3 ] + unless cand1 == cand2 + candidates.each do |cand3| + if not cand2 == cand3 and + not cand1 == cand3 and + transitive_defeats.include?( [ cand2, cand1 ] ) and + transitive_defeats.include?( [ cand1, cand3 ] ) and + not transitive_defeats.include?( [ cand2, cand3 ] ) + transitive_defeats << [ cand2, cand3 ] + end end end end -- 2.39.5