Are we confident about the precision here.  You are multiplying two int64 before dividing by 2^31.  I might be happier to see

    (delta_temp >> 15) * (delta_temp >> 16)