Сначала посмотрел стандартный метод Ньютона - все прекрасно в матлабе сходится, 6 итерация мне хватает. Только в этом случае используется деление. Есть ли методы его избежать ?
Посмотрел код в DSPLIB (с55) и вообще ничего не понял. Во первых откуда они взяли такую формулу ?
Implementation Notes The square root of a number(x) can be calculated using Newtons method. An initial approximation is guessed and then the approximation gets recomputed using the formula, new approximation = old - (old^2 -x)/2 The new approximation then becomes the old approximation and the process is repeated until the desired accuracy is reached.
И то что в самом коде - совсем непонятно. Если работаем с Q15 то причем здесь мантисса с экспонентой ? MANT AC0, AC0 ::NEXP AC0, T3 ;normalize the input Потом еще почему-то появляются обращения к таблице.