AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi FLOAT_INVALID_OPERATION und FLOAT_OVERFLOW nur 64Bit

FLOAT_INVALID_OPERATION und FLOAT_OVERFLOW nur 64Bit

Ein Thema von venice2 · begonnen am 15. Jul 2021 · letzter Beitrag vom 19. Jul 2021
Antwort Antwort
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#1

AW: FLOAT_INVALID_OPERATION und FLOAT_OVERFLOW nur 64Bit

  Alt 16. Jul 2021, 19:53
Hast du denn mal den rangecheck eingebaut?
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#2

AW: FLOAT_INVALID_OPERATION und FLOAT_OVERFLOW nur 64Bit

  Alt 16. Jul 2021, 19:58
Hast du denn mal den rangecheck eingebaut?
Das sind Grundvoraussetzungen.
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#3

AW: FLOAT_INVALID_OPERATION und FLOAT_OVERFLOW nur 64Bit

  Alt 16. Jul 2021, 20:06
Delphi-Quellcode:
//...
ip := Q + (le1 - 1);

          if ip > High(fi) then //rangecheck
            raise Exception.Create('Fehler');
          if ip > High(FR) then
            raise Exception.Create('Fehler');

          tr := FR[ip] * ur - FI[ip] * ui; // FLOAT_INVALID_OPERATION nur 64Bit
          ti := FR[ip] * ui + FI[ip] * ur;
Läuft das bei dir durch, oder wird ein Fehler angezeigt?
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#4

AW: FLOAT_INVALID_OPERATION und FLOAT_OVERFLOW nur 64Bit

  Alt 16. Jul 2021, 20:15
Delphi-Quellcode:
//...
ip := Q + (le1 - 1);

          if ip > High(fi) then //rangecheck
            raise Exception.Create('Fehler');
          if ip > High(FR) then
            raise Exception.Create('Fehler');

          tr := FR[ip] * ur - FI[ip] * ui; // FLOAT_INVALID_OPERATION nur 64Bit
          ti := FR[ip] * ui + FI[ip] * ur;
Läuft das bei dir durch, oder wird ein Fehler angezeigt?
Falls hier ein Fehler auftreten sollte und ich habe unter den Option die Bereichsprüfung eingeschaltet dann sollte der Debugger einen Fehler melden oder?
Aber ich kann es auch mal auf diese weise versuchen. Danke!

Das ist was ich meinte mit Grundvoraussetzung.

EDIT:
Aber der rangecheck hat nichts mit FLOAT_INVALID_OPERATION zu tun oder?
Habe es versucht.
FLOAT_INVALID_OPERATION kommt trotzdem auch mit deinem rangecheck

Geändert von venice2 (16. Jul 2021 um 20:19 Uhr)
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#5

AW: FLOAT_INVALID_OPERATION und FLOAT_OVERFLOW nur 64Bit

  Alt 16. Jul 2021, 20:42
Die Frage ist, ob die die Range-Prüfung ausgelöst wird. Wenn FLOAT_INV.. vorher kommt, liegt es zumindest nicht daran, dass du auf einen ungültigen Speicherbereich zugreift.
Wenn du auf Speicherbereich nach dem Array zugreift würdest, dann kann dadurch schon der Fehler FLOAT_INV ausgelöst werden, je nachdem was dort steht.
Da wie bereits erwähnt ein array of single bei 0 startet müsste auch sample bei 0 beginnen und auch in die anderen beiden schleifen dürften immer nur bis samplecount-1 laufen.

Geändert von brechi (16. Jul 2021 um 20:50 Uhr)
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#6

AW: FLOAT_INVALID_OPERATION und FLOAT_OVERFLOW nur 64Bit

  Alt 16. Jul 2021, 20:51
Die Frage ist, ob die die Range-Prüfung ausgelöst wird. Wenn FLOAT_INV.. vorher kommt, liegt es zumindest nicht daran, dass du auf einen ungültigen Speicherbereich zugreift.
Wenn du auf Speicherbereich nach dem Array zugreift würdest, dann kann dadurch schon der Fehler FLOAT_INV ausgelöst werden, je nachdem was dort steht.
Da wie bereits erwähnt ein array of single bei 0 startet müsste auch sample bei 0 beginnen und auch in die anderen beiden schleifen dürften immer nur bis samplecount-1 laufen.
Ich sagte schon
Zitat:
FLOAT_INVALID_OPERATION kommt trotzdem auch mit deinem rangecheck
Also danach.
Und nein diese werden nicht ausgelöst.

Aber ein versuch war es wert.

Habe es deaktiviert und werde die Daten Faden ohne die Wave Daten zu glätten.
Die Funktion habe ich vor 20 Jahren von Klaus Langbein aus dem VB-Forum bekommen der ist aber leider verstorben.
Na ja wie dem auch sei.

Am ende ein Programm das ich alleine verwende daher nicht so wichtig.
Danke für euer Interesse.

Geändert von venice2 (16. Jul 2021 um 22:14 Uhr)
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#7

AW: FLOAT_INVALID_OPERATION und FLOAT_OVERFLOW nur 64Bit

  Alt 19. Jul 2021, 14:53
Falls mir doch noch jemand bei dem Problem helfen möchte hier ist der Quelltext.
Quelltext entfernt. Bei bedarf lade ich ihn nochmal hoch.

In uBass
procedure TBassPlayer.DrawData(PaintDC: HDC);
müssen diese Zeilen wieder aktiviert werden.

// TIA: array[1..512] of single;
// XFFT(TRA, TIA, -1, 1, 511);

und anschließend so ändern.
Delphi-Quellcode:
TIA: array[1..256] of single;
XFFT(TRA, TIA, -1, 1, 255);
die anderen bitte kommentiert lassen (ist nur ein Test)

DragDrop einen Ordner mit *.mp3 Dateien.
Wenn ein Titel gefällt diesen zu Favoriten addieren erst danach wird eine m3u erstellt mit den Lieblings Titeln.
Beim nächsten Start wird die m3u automatisch geöffnet.

Unter Plugins Settings muß "Use WaveFade" eingeschaltet sein um die Glättung der Wave Daten zu testen.
Mindest Voraussetzung Windows 10

Geändert von venice2 (19. Jul 2021 um 22:28 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz