Reply-To: shar@nep.cplire.ru
Hello, Vladimir!
Пон Hоя 24 1997 23:34, Vladimir Vikulin написал All:
VV> Hе подскажет ли кто-нибудь алгоритм вычисления ArcSinуса? Или
VV> готовую функцию на Паскале?
Вот так:
Arcsin(x):=Arctan(x/Sqrt(1-x*x));
Или вот так:
function ArcSin( x:extended):extended; assembler;
var
sw:word;
asm
fld [x]
xor al,al
mov ah,byte ptr [x+9]
shl ah,1
jnc @plus
fchs
inc al
@plus:
{ fld1} db 0CDh, 35h, 0e8h
fld st(1)
fmul st,st(2)
fsub
fsqrt
fcom st(1)
fstsw [sw]
fwait
mov ah,byte ptr [sw+1]
sahf
jnb @l1
fxch
fpatan
{ fld1} db 0CDh, 35h, 0e8h
fchs
{ fldPi} db 0CDh, 35h, 0eBh
fscale
fstp St(1)
fsubrp st(1),st
jmp @2
@l1: fpatan
@2: shr al,1
jnc @end
fchs
@end:
end;
С уважением, Евгений
--- GoldED 2.42.G0214+
* Origin: LID, Evgeny Sharandin (2:5020/755.12)
|