Функция гиперболического тангенса
Если взять два числа A и B и сложить их, то процессор проделает одну операцию сложения,так?
А сколько операций и каких проделает процессор, если я хочу взять гиперболический тангенс от аргумента?
Например, tanh(3).
Такой же вопрос про экспоненту в какой либо степени. Напрмиер, exp(3)
Код:
function Exp(const X: Extended): Extended;
asm
{ e**x = 2**(x*log2(e)) }
FLD X
FLDL2E { y := x*log2e; }
FMUL
FLD ST(0) { i := round(y); }
FRNDINT
FSUB ST(1), ST { f := y - i; }
FXCH ST(1) { z := 2**f }
F2XM1
FLD1
FADD
FSCALE { result := z * 2**i }
FSTP ST(1)
end;
asm
{ e**x = 2**(x*log2(e)) }
FLD X
FLDL2E { y := x*log2e; }
FMUL
FLD ST(0) { i := round(y); }
FRNDINT
FSUB ST(1), ST { f := y - i; }
FXCH ST(1) { z := 2**f }
F2XM1
FLD1
FADD
FSCALE { result := z * 2**i }
FSTP ST(1)
end;