From 147e8ec7ee7d3e0aa2a4647b1151c1c56f51ea29 Mon Sep 17 00:00:00 2001 From: Craig de Stigter Date: Thu, 27 Oct 2011 17:14:44 +1300 Subject: [PATCH] add a cluster.remove() method for convenience when creating derived algorithms --- pygvm/__init__.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pygvm/__init__.py b/pygvm/__init__.py index e3eae9b..fdd36a7 100644 --- a/pygvm/__init__.py +++ b/pygvm/__init__.py @@ -76,6 +76,19 @@ def add_cluster(self, cluster): """ self.add(cluster.mass, cluster.center(), cluster.members) + def remove(self, mass, coords, members): + """ + Removes a point from the cluster. + This is not strictly needed for GVM, as members are never removed, + but it may be useful for creating derivative algorithms. + """ + self.mass -= mass + for i, coord in enumerate(coords): + self.m1[i] -= coord * mass + self.m2[i] -= coord * mass * mass + self.members.difference_update(members) + self.update() + def test(self, mass, coords): """ Computes the change in this clusters variance if it were to have a new point added to it.