Линейная интерполяция с плавающей запятой

Чтобы выполнить линейную интерполяцию между двумя переменными a и b с учетом дроби f , я сейчас использую этот код :

float lerp(float a, float b, float f) 
{
    return (a * (1.0 - f)) + (b * f);
}

Думаю, есть более эффективный способ сделать это. Я использую микроконтроллер без FPU, поэтому операции с плавающей запятой выполняются программно. Они достаточно быстрые, но для сложения или умножения требуется примерно 100 циклов.

Есть предложения?

nb Для ясности уравнения в приведенном выше коде мы можем не указывать 1.0 ] как явный литерал с плавающей запятой.

24
задан waterproof 30 December 2018 в 11:09
поделиться