diff --git a/2.10/Source/VarEyefish.pas b/2.10/Source/VarEyefish.pas index 04cf264..bd1ff5e 100644 --- a/2.10/Source/VarEyefish.pas +++ b/2.10/Source/VarEyefish.pas @@ -23,12 +23,45 @@ uses /////////////////////////////////////////////////////////////////////////////// procedure TVariationEyefish.CalcFunction; +{$if false} var r: double; begin - r := 2 / (sqrt(FTx^ * FTx^ + FTy^ * FTy^) + 1); - FPx^ := FPx^ + vvar * r * FTx^; - FPy^ := FPy^ + vvar * r * FTy^; + r := 2 * vvar / (sqrt(FTx^ * FTx^ + FTy^ * FTy^) + 1); + FPx^ := FPx^ + r * FTx^; + FPy^ := FPy^ + r * FTy^; +{$else} +asm + fld qword ptr [eax+vvar] + fadd st, st + + mov ecx, [eax+FTy] + fld qword ptr [ecx] + mov ecx, [eax+FTx] + fld qword ptr [ecx] + + fld st(1) + fmul st, st + fld st(1) + fmul st, st + fadd + fsqrt + + fld1 + fadd + fdivp st(3), st + + fmul st, st(2) + mov ecx, [eax+FPx] + fadd qword ptr [ecx] + fstp qword ptr [ecx] + + fmulp + mov ecx, [eax+FPy] + fadd qword ptr [ecx] + fstp qword ptr [ecx] + +{$ifend} end; ///////////////////////////////////////////////////////////////////////////////