-// #include "support_kernels.cu"
+// #include "support_kernels.cu0
 #include <stdio.h>
 #include "../profiling/bonsai_timing.h"
 PROF_MODULE(dev_approximate_gravity);


/*********** Forces *************/

__device__ float4 add_acc(
    float4 acc,  const float4 pos,
    const float massj, const float3 posj,
    const float eps2)

          const int address      = (approxM[n_approx + laneId] << 1) + approxM[n_approx + laneId];
#ifndef TEXTURES
          const float4 monopole  = multipole_data[address    ];
#else
          const float4 monopole  = tex1Dfetch(texMultipole, address);
#endif

          sh_mass[laneId] = monopole.w;
          sh_pos [laneId] = make_float3(monopole.x,  monopole.y,  monopole.z);

#ifndef _QUADRUPOLE_
          for (int i = 0; i < WARP_SIZE; i++)
            for (int k = 0; k < NI; k++)
              acc_i[k] = add_acc(acc_i[k], pos_i[k], sh_mass[i], sh_pos[i], eps2);
#else
          for (int i = 0; i < WARP_SIZE; i++)
          {
            const int address = approxM[n_approx + i] * 3;
            const float4  Q0  = tex1Dfetch(texMultipole, address + 1);
            const float4  Q1  = tex1Dfetch(texMultipole, address + 2);
            for (int k = 0; k < NI; k++)
              acc_i[k] = add_acc(acc_i[k], pos_i[k], sh_mass[i], sh_pos[i], Q0, Q1, eps2);
          }
#endif /* _QUADRUPOLE_ */
          apprCount += WARP_SIZE*NI;
        }
#endif
