private float dot(Float4 a, Float4 b) { return a.x * b.x + a.y * b.y + a.z * b.z; }
public static extern CUResult cuParamSetv(CUfunction hfunc, int offset, ref Float4 ptr, uint numbytes);