PDL :: Badvalues.

PDL :: BadValues enthält eine Diskussion über die Unterstützung von schlechten Wert in PDL.
Jetzt downloaden

PDL :: Badvalues. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Doug Burke
  • Website des Verlags:
  • http://search.cpan.org/~djburke/Inline-SLang-1.00/SLang.pod

PDL :: Badvalues. Stichworte


PDL :: Badvalues. Beschreibung

PDL :: BadValues enthält eine Diskussion über schlechte Werteunterstützung in PDL. PDL :: BadValues enthält eine Diskussion über schlechte Werteunterstützung in PDL.Was sind schlechte Werte und warum sollte ich mich mit ihnen stören? Manchmal ist es nützlich, einen bestimmten Wert angeben zu können, ist "schlecht" oder "fehlt". Beispielsweise produzieren CCDs, die in Astronomie verwendet werden, 2D-Bilder, die nicht perfekt sind, da bestimmte Bereiche aufgrund von Unvollkommenheiten im Detektor ungültige Daten enthalten. Während PDLs leistungsstarke Indexroutinen und das gesamte komplizierte Geschäft mit DataFlow, Slices usw. bedeuten, dass diese Regionen in der Verarbeitung ignoriert werden können, ist es unbeholfen zu tun. Es wäre viel einfacher, $ C = $ A + $ B sagen zu können, und lassen Sie den gesamten Mundgerät dem Computer. Wenn Sie nicht daran interessiert sind, dann können Sie (zu Recht) besorgt sein, wie dies die Geschwindigkeit beeinflusst von PDL, da der Überkopf der Überprüfung auf einen schlechten Wert bei jeder Operation groß sein kann. Aus diesem Grund wurde der Code so schnell wie möglich geschrieben - insbesondere beim Betrieb von Piddles, die keine schlechten Werte enthalten. In der Tat sollten Sie im Wesentlichen keine Geschwindigkeitsunterschiede bemerken, wenn Sie mit Piddles arbeiten, die keine schlechten Werte enthalten. Wie immer, wenn Sie keine schlechten Werte nicht möchten, kommt die Konfiguration der PDL mit der Konfiguration von PDL mit der Rettung. Wenn Sie auf 0 oder undef eingestellt sind, wird die BAD-VALUE-Unterstützung ignoriert. Über das einzige Mal, dass ich denke, dass Sie dies verwenden müssen - ich zugegeben, ich bin voreingenommen;) - ist, wenn Sie einen begrenzten Festplatten- oder Speicherplatz haben, da die Größe des Codes erhöht wird (siehe unten). Sie können auch Fragen Sie "Nun, mein Computer unterstützt IEEE NAN, also habe ich das schon." Nun, ja und nein - viele Routinen, wie z. B. y = sin (x), werden NANs proportieren, ohne dass der Benutzer anders ist, aber Routinen wie QSort oder Finding des Medians eines Arrays muss jedoch erneut codiert werden erledigen Sie schlechte Werte. Bei Floating-Point Datentypes werden NAN und INF, um schlechte Werte zu kennzeichnen, wenn die Option BadVAL_USENAN in Ihrer Konfigurationsdatei auf 1 eingestellt ist. Andernfalls werden spezielle Werte verwendet (default schlechte Werte). Ich habe keine Benchmarks, um zu sehen, welche Option schneller ist. Es gibt einen experimentellen FEXTURE badval_per_pdl, der, falls eingestellt, verschiedene schlechte Werte für separate Piddles desselben Typs aufweisen. Dies funktioniert derzeit nicht mit der Option BadVAL_USENAN; Wenn beide eingestellt sind, ignoriert PDL den BADVAL_USENAN-Value.code-Zunahme aufgrund von schlechten Werten. Keiner der anderen Optionen: zB Karma, FFTW, GSL und 3D waren): mit_BadAd = 0size des Blib-Verzeichnisses nach einem erfolgreichen Make = 4963 KB: Blib / Arch = 2485 KB und Blib / lib = 1587 kb.with_badaddad = 1size von Blib-Verzeichnis nach erfolgreichem Make = 5723 KB: Blib / Arch = 3178 KB und Blib / LIB = 1613 KB.SO, der Gesamtsteigerung beträgt nur 15% - nicht viel, um für alle Wunder zu bezahlen, die schlechte Werte bieten. Der Quellcode Wird für diesen Test verwendet, hatte die große Mehrheit der Kernroutinen (z. B. in Basic /) umgewandelt, um schlechte Werte zu verwenden, während nur sehr wenige der "externen" Routinen (dh alles andere in der PDL-Verteilung) geändert worden war. Perl Anforderungen: · Perl.


PDL :: Badvalues. Zugehörige Software