aboutsummaryrefslogtreecommitdiff
path: root/dsf.c
diff options
context:
space:
mode:
Diffstat (limited to 'dsf.c')
-rw-r--r--dsf.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/dsf.c b/dsf.c
index f4deb1e..207357d 100644
--- a/dsf.c
+++ b/dsf.c
@@ -60,17 +60,23 @@ done:
sfree(inverse_elements);
}
-int *snew_dsf(int size)
+void dsf_init(int *dsf, int size)
{
int i;
- int *ret;
-
- ret = snewn(size, int);
+
for (i = 0; i < size; i++) {
/* Bottom bit of each element of this array stores whether that element
* is opposite to its parent, which starts off as false */
- ret[i] = i << 1;
+ dsf[i] = i << 1;
}
+}
+
+int *snew_dsf(int size)
+{
+ int *ret;
+
+ ret = snewn(size, int);
+ dsf_init(ret, size);
/*print_dsf(ret, size); */