             inv_quat_multiply(orientation, conjqm2, mbody);
             transpose_dot(ex_space, ey_space, ez_space, mbody, angmom2);
             
-            angmom2.x *= 0.5;
-            angmom2.y *= 0.5;
-            angmom2.z *= 0.5;
-            angmom2.w = 0.0;
+            angmom2.x *= 0.5f;
+            angmom2.y *= 0.5f;
+            angmom2.z *= 0.5f;
+            angmom2.w = 0.0f;
             
             // update angular velocity
             float4 angvel2;

        float4 vel2 = make_float4(0.0f, 0.0f, 0.0f, 0.0f);
        float4 mbody, tbody, fquat;
        
        float dt_half = 0.5 * deltaT;
        float onednft, onednfr, tmp, scale_t, scale_r, scale_v, akin_t, akin_r;
        
        onednft = 1.0 + (float) (npt_rdata_dimension) / (float) (npt_rdata_nf_t);
        onednfr = (float) (npt_rdata_dimension) / (float) (npt_rdata_nf_r);

        tmp = -1.0 * dt_half * (npt_rdata_eta_dot_t0 + onednft * npt_rdata_epsilon_dot);
        scale_t = exp(tmp);
        tmp = -1.0 * dt_half * (npt_rdata_eta_dot_r0 + onednfr * npt_rdata_epsilon_dot);
        scale_r = exp(tmp);
        tmp = dt_half * npt_rdata_epsilon_dot;
        scale_v = deltaT * __expf(tmp) * maclaurin_series(tmp);

    
    __shared__ float4 vel, angvel, ex_space, ey_space, ez_space;
    
    float dt_half = 0.5f * deltaT;
    
    int idx_body = -1;
    
