 	if(myID < numCells) {
 		double temp = 0;
 		for (int qp = 0; qp < numPoints; qp++) {
-			temp += d_left[myId + qp*numCells];
+			temp += d_left[myID + qp*numCells];
 		}
-		d_out[myID]
+		d_out[myID]=temp;
 	}
 }
 


	if(colMajor)
		cudaDocontractDataDataScalar_kernelColMajor<<<gridSize, blockSize>>>(d_left,
			d_right, d_out, numCells,numPoints,);
	else
		cudaDocontractDataDataScalar_kernelRowMajor<<<gridSize, blockSize>>>(d_left,
		d_right, d_out, numCells,numPoints,);
	cudaMemcpy(h_out, d_out, sizeof(double) * numCells, cudaMemcpyDeviceToHost);

}

	if(myID < numCells) {
		double temp = 0;
		for (int qp = 0; qp < numPoints; qp++) {
			temp += d_left[myID + qp*numCells];
		}
		d_out[myID]= temp;
	}
}

void
cudaDoContractDataDataScalar(double * h_out,
		double * h_inLeft,
		double * h_inRight,
		int numCells,
