Thema: Delphi Gleitkommaüberlauf

Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#1

Gleitkommaüberlauf

  Alt 17. Mär 2019, 14:48
Beispiel:
Soll mit folgenden Step (2048, 1024, 512, 256, 128, 64, 32, 16, 8, 4) durchlaufen werden..


Delphi-Quellcode:
  ie := FFFTSize;
  for n := 1 to FFTLog do
  begin
    w := Coef[FFTLog - n];
    in_ := ie div 2;
    u.r := 1;
    u.i := 0;

    for j := 0 to (in_ - 1) do
    begin
      for i := j to (FFFTSize - 1) do
      begin
        if (i mod ie) <> 0 then
          continue;

        io := i + in_;

        tp.r := Dat[i].r + Dat[io].r;
        tp.i := Dat[i].i + Dat[io].i;

        tq.r := Dat[i].r - Dat[io].r;
        tq.i := Dat[i].i - Dat[io].i;

        Dat[io].r := tq.r * u.r - tq.i * u.i;
        Dat[io].i := tq.i * u.r + tq.r * u.i;
        Dat[i] := tp;
      end;

      sr := u.r;
      u.r := u.r * w.r - u.i * w.i;
      u.i := u.i * w.r + sr * w.i;
    end;
    ie := ie div 2;
  end;
bekomme aber immer einen Gleitkommaüberlauf woran könnte es liegen?
Ich gehe eigentlich davon aus das diese Abfrage genau das tut was ich oben als Beispiel angegeben habe.
Delphi-Quellcode:
if (i mod ie) <> 0 then
  continue;
gruss
  Mit Zitat antworten Zitat