Цитата(Malyshko @ Dec 11 2010, 01:40)

Как на ассемблере заполнить функцию y=exp(0.75*x)*arccos((x)^0.75)?
Видимо можно ускорить вычисление, даже не переходя на ассемблер, если отказаться от возведения x в плавающую степень 0.75, а представить число 0.75 в виде рациональной дроби 3/4. Тогда возведение в эту степень будет эквивалентно двойному квадратному корню из куба x. Т.е.
X^0.75 = sqrt( sqrt ( x*x*x))
или, вынося квадрат x из под внутреннего корня, окончательно имеем:
X^0.75 = sqrt( x * sqrt (x))
Такое будет вычисляться много быстрее, чем возведение в дробную степень.
P.S. Когда в выражениях присутствуют сложные функции типа квадратных корней, тригонометрических функций, а особенно возведения в стпень, то потуги ускорения вычислений, путем перехода на ассемблер, оказываются безрезультатными - выигрыш в скорости получается ничтожным. Единственным исключением была моя борьба с вычислением гауссинаны exp(-(x-x0)^2/sigma^2), которую мне удалось ускорить почти вдвое, за счет переписывания кода для экспоненты (x86 не имеет встроенной инструкции для вычисления экспоненты и ее приходится вычислять через логарифмы).