public void Execute(int workItemIndex) { int start, end; batchData.GetConstraintRange(workItemIndex, out start, out end); for (int i = start; i < end; ++i) { var pair = pairs[i]; float4 distanceA = renderablePositions[pair.particleB] - smoothPositions[pair.particleA]; float4 distanceB = renderablePositions[pair.particleA] - smoothPositions[pair.particleB]; anisotropies[pair.particleA] += BurstMath.multrnsp(distanceA, distanceA) * pair.avgKernel; anisotropies[pair.particleB] += BurstMath.multrnsp(distanceB, distanceB) * pair.avgKernel; } }