Witam
Czy ktoś z was spotkał sie z gotowymi procedurami lub funkcjami Asemblerowymi wykonujacymi operacje (sumowanie, mnożenie, odejmowanie, exp) na liczbach zespolonych, zależy mi aby były one bardzo szybkie. Będę wdzieczny za wszelką pomoc.
Pozdrawiam
// napisałem takowe fuknkcje ale zwątpilem w ich sluszność, choć muszę przyznać że widzę już jakieś postępy, jak dojdę do czegoś konkretnego to postaram się to zamieścić na stronce
Oto jedna fukcja która mnoży dwie liczby zespolone:
przy czym zmienna typu TComplex np. "z" to
z.x --> część rzeczywista
z.y --> część urojona
Function FCMult(Const za,zb: TComplex): TComplex;
var
a,b,c,d,e,f :Double;
Begin
a := za.x;
b := za.y;
c := zb.x;
d := zb.y;
asm
finit
//------- X
fld b {a.y} {5}
fld d {b.y} {4} ; fmul ST(0),ST(1) {wynik mnożenia}
fld a {a.x} {3}
fld c {b.x} {2} ; fmul ST(0),ST(1) ; fsub ST(0),ST(2)
fst e {result.x ze stosu}
//------ y
fld d {b.y} {1} ; fmul ST(0),ST(2) {a.x * b.y}
fld c {b.x} {0} ; fmul ST(0),ST(5) {a.y * b.x}
fadd ST(0),ST(1) {Suma}
fstp f {result.y ze stosu}
end;
RESULT.x := e;
RESULT.y := f;
End ;