         tra,
         swg,
         speed,
-        forceX,
-        forceY,
         oldForceX,
         oldForceY,
         dispX,

    unsigned int* edgeTargets, float* forceX, float* forceY);

__device__ void fa2UpdateSwing(unsigned int gid, unsigned int numvertices,
    float* forceX, float* forceY, float* oldForceX, float* oldForceY,
    float* swg);
__device__ void fa2UpdateTract(unsigned int gid, unsigned int numvertices,
    float* forceX, float* forceY, float* oldForceX, float* oldForceY,
    float* tra);
__device__ void fa2UpdateSwingGraph(unsigned int gid, unsigned int numvertices,
    float* swg, int* deg, float* gswing);


// Updates the swing for each vertex, as described in the Force Atlas 2 paper.
__device__ void fa2UpdateSwing(unsigned int gid, unsigned int numvertices,
    float forceX, float forceY, float* oldForceX, float* oldForceY,
    float* swg)
{
  if (gid < numvertices)
  {
    float fx = forceX;
    float fy = forceY;
    vectorSubtract(&fx, &fy, oldForceX[gid], oldForceY[gid]);
    float vlen = vectorGetLength(fx, fy);
    swg[gid] = vlen;
