История изменений
Исправление Zubok, (текущая версия) :
Но блин... как может простое умножение int на float работать так долго.
Если к бочке меда добавить ложку говна, то будет бочка говна. Умножение int на float выполняется так, что int преобразуется во float и они умножаются как float на float.
И долго - это понятие относительное. Скорости MSP430 и AVR - это еще бабушка на двое сказала. А программная реализация арифметики в FP - это вещь такая. Ну и что, что 16 МГц vs 20 МГц и 8 vs 16 бит. Тем более, что математика FP в MSPGCC написана на Си и неоптимальна, скорее всего.
И странно, что у тебя компилятор константы заранее не считает из выражений. У тебя оптимизация какая используется?
Исправление Zubok, :
Но блин... как может простое умножение int на float работать так долго.
Если к бочке меда добавить ложку говна, то будет бочка говна. Умножение int на float выполняется так, что int преобразуется во float и они умножаются как float на float.
И долго - это понятие относительное. Скорости MSP430 и AVR - это еще бабушка на двое сказала. А программная реализация арифметики в FP - это вещь такая. Ну и что, что 16 МГц vs 20 МГц и 8 vs 16 бит. Тем более, что математика FP в MSPGCC написана на Си и неоптимальна, скорее всего.
И странно, что у тебя компилятор константы априори не считает из выражений. У тебя оптимизация какая используется?
Исходная версия Zubok, :
Но блин... как может простое умножение int на float работать так долго.
Если к бочке меда добавить ложку говна, то будет бочка говна. Умножение int на float выполняется так, что int преобразуется во float и они умножаются как float на float.