do multiplication in floating point to avoid overflow
update data
Merge branch 'tmp1'