diff --git a/examples/test_fmm.c b/examples/test_fmm.c
index 63adabff545f6257034f70c7b5f3d5935821a61c..eaa89ee5a0d91c6b85eed1ae39924e843dd49044 100644
--- a/examples/test_fmm.c
+++ b/examples/test_fmm.c
@@ -629,81 +629,6 @@ static inline void iact_self_pc(struct cell *c, struct cell *leaf,
   }
 }
 
-/**
- * @brief Compute the interactions between all particles in a cell
- *        and all particles in the other cell (N^2 algorithm)
- *
- * @param ci The #cell containing the particles.
- * @param cj The #cell containing the other particles
- */
-static inline void iact_pair_direct_dp(struct cell *ci, struct cell *cj) {
-
-  int i, j, k;
-  int count_i = ci->count, count_j = cj->count;
-  double xi[3];
-  float dx[3], ai[3], mi, mj, r2, w, ir;
-  struct part *parts_i = ci->parts, *parts_j = cj->parts;
-
-#ifdef SANITY_CHECKS
-
-  /* Bad stuff will happen if cell sizes are different */
-  if (ci->h != cj->h)
-    error("Non matching cell sizes !! h_i=%f h_j=%f\n", ci->h, cj->h);
-
-#endif
-
-  /* Loop over all particles in ci... */
-  for (i = 0; i < count_i; i++) {
-
-    /* Init the ith particle's data. */
-    for (k = 0; k < 3; k++) {
-      xi[k] = parts_i[i].x[k];
-      ai[k] = 0.0f;
-    }
-    mi = parts_i[i].mass;
-
-    /* Loop over every particle in the other cell. */
-    for (j = 0; j < count_j; j++) {
-
-      /* Compute the pairwise distance. */
-      for (r2 = 0.0, k = 0; k < 3; k++) {
-        dx[k] = xi[k] - parts_j[j].x[k];
-        r2 += dx[k] * dx[k];
-      }
-
-      /* Apply the gravitational acceleration. */
-      ir = 1.0f / sqrtf(r2);
-      w = const_G * ir * ir * ir;
-      mj = parts_j[j].mass;
-      for (k = 0; k < 3; k++) {
-        float wdx = w * dx[k];
-        parts_j[j].a[k] += wdx * mi;
-        ai[k] -= wdx * mj;
-      }
-
-#ifdef COUNTERS
-      ++count_direct_unsorted;
-#endif
-
-#if ICHECK >= 0 && 0
-      if (parts_i[i].id == ICHECK)
-        printf(
-            "[NEW] Interaction with particle id= %d (pair i) a=( %e %e %e )\n",
-            parts_j[j].id, -mi * w * dx[0], -mi * w * dx[1], -mi * w * dx[2]);
-
-      if (parts_j[j].id == ICHECK)
-        printf(
-            "[NEW] Interaction with particle id= %d (pair j) a=( %e %e %e )\n",
-            parts_i[i].id, mj * w * dx[0], mj * w * dx[1], mj * w * dx[2]);
-#endif
-
-    } /* loop over every other particle. */
-
-    /* Store the accumulated acceleration on the ith part. */
-    for (k = 0; k < 3; k++) parts_i[i].a[k] += ai[k];
-
-  } /* loop over all particles. */
-}
 
 static inline void iact_pair_direct(struct cell *ci, struct cell *cj) {
 
@@ -844,85 +769,6 @@ void iact_pair(struct cell *ci, struct cell *cj) {
   }
 }
 
-/**
- * @brief Compute the interactions between all particles in a cell.
- *
- * @param c The #cell.
- */
-void iact_self_direct_dp(struct cell *c) {
-  int i, j, k, count = c->count;
-  double xi[3] = {0.0, 0.0, 0.0};
-  float ai[3] = {0.0, 0.0, 0.0}, mi, mj, dx[3] = {0.0, 0.0, 0.0}, r2, ir, w;
-  struct cell *cp, *cps;
-  struct part *parts = c->parts;
-
-#ifdef SANITY_CHECKS
-
-  /* Early abort? */
-  if (count == 0) error("Empty cell !");
-
-#endif
-
-  /* If the cell is split, interact each progeny with itself, and with
-     each of its siblings. */
-  if (c->split) {
-    for (cp = c->firstchild; cp != c->sibling; cp = cp->sibling) {
-      iact_self_direct_dp(cp);
-      for (cps = cp->sibling; cps != c->sibling; cps = cps->sibling)
-        iact_pair(cp, cps);
-    }
-
-    /* Otherwise, compute the interactions directly. */
-  } else {
-
-    /* Loop over all particles... */
-    for (i = 0; i < count; i++) {
-
-      /* Init the ith particle's data. */
-      for (k = 0; k < 3; k++) {
-        xi[k] = parts[i].x[k];
-        ai[k] = 0.0;
-      }
-      mi = parts[i].mass;
-
-      /* Loop over every following particle. */
-      for (j = i + 1; j < count; j++) {
-
-        /* Compute the pairwise distance. */
-        for (r2 = 0.0, k = 0; k < 3; k++) {
-          dx[k] = xi[k] - parts[j].x[k];
-          r2 += dx[k] * dx[k];
-        }
-
-        /* Apply the gravitational acceleration. */
-        ir = 1.0f / sqrtf(r2);
-        w = const_G * ir * ir * ir;
-        mj = parts[j].mass;
-        for (k = 0; k < 3; k++) {
-          float wdx = w * dx[k];
-          parts[j].a[k] += wdx * mi;
-          ai[k] -= wdx * mj;
-        }
-
-#if ICHECK >= 0
-        if (parts[i].id == ICHECK)
-          message("[NEW] Interaction with particle id= %d (self i)",
-                  parts[j].id);
-
-        if (parts[j].id == ICHECK)
-          message("[NEW] Interaction with particle id= %d (self j)",
-                  parts[i].id);
-#endif
-
-      } /* loop over every other particle. */
-
-      /* Store the accumulated acceleration on the ith part. */
-      for (k = 0; k < 3; k++) parts[i].a[k] += ai[k];
-
-    } /* loop over all particles. */
-
-  } /* otherwise, compute interactions directly. */
-}
 
 void iact_self_direct(struct cell *c) {
   int i, j, k, count = c->count;