>В данном коде видна основная ошибка, человек мыслит как математик а
>не как программистНичего подобного.
>если есть задание получать числа в диапазоне от 0.0000 до 0.9999 то
>нужно работать с float по другому представить нельзя.
Ой, как же так, float ведь не нужен?
>а если идет хранение в int, то идет постоянное преобразование, это медленно.
Еще раз - где там преобразования? Если ты про из float и в начале и во float в конце, я уже сказал что это бред. Где еще?
>получили немного лучший результат. но идет падением точности.
Что за машина? Когда-то FPU вообще был отдельно от процессора, вот там float'ы действительно были медленнее. У тебя такой?
Я тестирую на core2duo, и 32 бита и 64. Вот тебе float, double и int на 32 битах, SIZE=1024, ITERS=1024*1024, чтобы тестировать числодробилку, а не память. Для int MAX=65535, чтобы не было вообще никаких преобразований, int64_t соответственно убран.
time ./float
blend(0.2036, 0.0478, 0.8507) = 0.1803
1.37 real 1.37 user 0.00 sys
time ./double
blend(0.2036, 0.0478, 0.8507) = 0.1803
1.38 real 1.38 user 0.00 sys
time ./int
blend(0.2036, 0.0478, 0.8507) = 0.1803
2.03 real 2.02 user 0.00 sys
Дальше спорить будешь?