summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2019-10-18 15:10:07 +0200
committerErich Eckner <git@eckner.net>2019-10-18 15:10:07 +0200
commite5457f7f50db8b629808349380c8f0a403b4a4f1 (patch)
tree7a95b24d81d9a0e3019afe59c498799a40e2fb27
parentde833edbbee7f3b8c90427db0753b17d898e6c1c (diff)
downloadepost-e5457f7f50db8b629808349380c8f0a403b4a4f1.tar.xz
werteunit.pas: reBei2DDoResSmi() und imBei2DDoResSmi() neu
-rw-r--r--werteunit.pas31
1 files changed, 31 insertions, 0 deletions
diff --git a/werteunit.pas b/werteunit.pas
index 4c8005a..db14755 100644
--- a/werteunit.pas
+++ b/werteunit.pas
@@ -25,6 +25,8 @@ type
function abstandsQuadratFuerDominanz(dist: tExtPoint; spitze: tInt64Point; xFak,yFak: extended): extended; inline; overload;
function abstandsQuadratFuerDominanz(dist,spitze: tInt64Point; xFak,yFak: extended): extended; inline; overload;
function torusAbstandsQuadrat(von,nach: tInt64Point; metrik: tExtPoint; istVollKomplex: longint): extended; inline;
+ function reBei2DDoResSmi(x,y: int64): extended; inline;
+ function imBei2DDoResSmi(x,y: int64): extended; inline;
public
werte: array of wGen;
params: tExtraInfos;
@@ -2241,6 +2243,35 @@ begin
result:=metrik['x']*sqr(tmp['x'])+metrik['y']*sqr(tmp['y']);
end;
+function tLLWerte.reBei2DDoResSmi(x,y: int64): extended; inline;
+begin // Realteil an Position xG+xF,yG+yF bei 2d doResSmi-geordneten Werten
+ if 2*abs(x)>params.xSteps then
+ fehler('tLLWerte.reBei2DDoResSmi(): Position außerhalb des gültigen x-Bereichs abgefragt!');
+ if 2*abs(y)>params.tSiz then
+ fehler('tLLWerte.reBei2DDoResSmi(): Position außerhalb des gültigen t-Bereichs abgefragt!');
+ // reRe
+ result:=werte[abs(x)+abs(y)*params.xSteps];
+ if (x=0) or (y=0) then
+ exit;
+ // - imIm
+ result:=result - werte[params.xSteps-abs(x)+(params.tSiz-abs(y))*params.xSteps] * sign(x) * sign(y);
+end;
+
+function tLLWerte.imBei2DDoResSmi(x,y: int64): extended; inline;
+begin // Imaginärteil an Position xG+xF,yG+x bei 2d doResSmi-geordneten Werten
+ if 2*abs(x)>params.xSteps then
+ fehler('tLLWerte.imBei2DDoResSmi(): Position außerhalb des gültigen x-Bereichs abgefragt!');
+ if 2*abs(y)>params.tSiz then
+ fehler('tLLWerte.imBei2DDoResSmi(): Position außerhalb des gültigen t-Bereichs abgefragt!');
+ result:=0;
+ // imRe
+ if x>0 then
+ result:=werte[(params.xSteps-abs(x))+abs(y)*params.xSteps]*sign(x);
+ // reIm
+ if y>0 then
+ result:=werte[abs(x)+(params.tSiz-abs(y))*params.xSteps]*sign(y);
+end;
+
procedure tLLWerte.fenstereWerte(xMi,xMa,tMi,tMa: int64; xFen,tFen: tFenster; hg: tExtendedArray);
var
i,j: int64;