Может при умножениях переполнение где-то возникает а последующая
программная фильтрация(есть?) сглаживает это в генерацию? Когда-то
использовал float point либы микрочипа (для pic16 на асме), так оно
не работало пока не обнулял используемые в либ регистры.