diff options
author | Erich Eckner <git@eckner.net> | 2019-10-18 15:10:07 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2019-10-18 15:10:07 +0200 |
commit | e5457f7f50db8b629808349380c8f0a403b4a4f1 (patch) | |
tree | 7a95b24d81d9a0e3019afe59c498799a40e2fb27 | |
parent | de833edbbee7f3b8c90427db0753b17d898e6c1c (diff) | |
download | epost-e5457f7f50db8b629808349380c8f0a403b4a4f1.tar.xz |
werteunit.pas: reBei2DDoResSmi() und imBei2DDoResSmi() neu
-rw-r--r-- | werteunit.pas | 31 |
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; |