 
   // Copy vertices and edges to device.
   cudaMemcpy((void*) vxLocs, g->vertexXLocs, g->numvertices * sizeof(float),
-    cudaMemcpyHostToDevice);
+      cudaMemcpyHostToDevice);
   cudaMemcpy((void*) vyLocs, g->vertexYLocs, g->numvertices * sizeof(float),
-    cudaMemcpyHostToDevice);
+      cudaMemcpyHostToDevice);
   cudaMemcpy((void*) edgeSources, g->edgeSources,
-    g->numedges * sizeof(unsigned int), cudaMemcpyHostToDevice);
+      g->numedges * sizeof(unsigned int), cudaMemcpyHostToDevice);
   cudaMemcpy((void*) edgeTargets, g->edgeTargets,
-    g->numedges * sizeof(unsigned int), cudaMemcpyHostToDevice);
+      g->numedges * sizeof(unsigned int), cudaMemcpyHostToDevice);
 
   unsigned int numblocks = ceil(g->numvertices / (float) BLOCK_SIZE);
 

    // Repulsion between vertices
    fa2Repulsion(gid, numvertices, vxLocs, vyLocs, forceX, forceY, numNeighbours);
    // Attraction on edges
    // FIXME
    //  fa2Attraction(gid, numvertices, vxLocs, vyLocs, numedges, edgeSources,
    //    edgeTargets, forceX, forceY, numNeighbours);

    // Calculate speed of vertices.
    // Update swing of vertices.

// Attraction on edges
__device__ void fa2Attraction(unsigned int gid, unsigned int numvertices,
    float* vxLocs, float* vyLocs, int numedges, unsigned int* edgeSources,
    unsigned int* edgeTargets, float* forceX, float* forceY, unsigned int* deg);

__device__ void fa2UpdateSwing(unsigned int gid, unsigned int numvertices,
    float* forceX, float* forceY, float* oldForceX, float* oldForceY,
