uhm, double type float point operations are not very well optimized :?