static void setPeriodicBoxArgs(OpenCLContext& cl, cl::Kernel& kernel, int index) { if (cl.getUseDoublePrecision()) { kernel.setArg<mm_double4>(index++, cl.getPeriodicBoxSizeDouble()); kernel.setArg<mm_double4>(index++, cl.getInvPeriodicBoxSizeDouble()); kernel.setArg<mm_double4>(index++, cl.getPeriodicBoxVecXDouble()); kernel.setArg<mm_double4>(index++, cl.getPeriodicBoxVecYDouble()); kernel.setArg<mm_double4>(index, cl.getPeriodicBoxVecZDouble()); } else { kernel.setArg<mm_float4>(index++, cl.getPeriodicBoxSize()); kernel.setArg<mm_float4>(index++, cl.getInvPeriodicBoxSize()); kernel.setArg<mm_float4>(index++, cl.getPeriodicBoxVecX()); kernel.setArg<mm_float4>(index++, cl.getPeriodicBoxVecY()); kernel.setArg<mm_float4>(index, cl.getPeriodicBoxVecZ()); } }
static void setInvPeriodicBoxSizeArg(OpenCLContext& cl, cl::Kernel& kernel, int index) { if (cl.getUseDoublePrecision()) kernel.setArg<mm_double4>(index, cl.getInvPeriodicBoxSizeDouble()); else kernel.setArg<mm_float4>(index, cl.getInvPeriodicBoxSize()); }