Bis ins Unendliche und zurück

Lesezeit: 2 Minuten

Benutzeravatar von srean
sran

Es gibt mathematische Operationen, die reelle Zahlen von +/- unendlich liefern. Zum Beispiel exp(-infinity) = 0. Gibt es einen Standard für mathematische Funktionen im Standard C Bibliothek, die IEEE-754-Unendlichkeiten akzeptiert (ohne NaN zu werfen oder zurückzugeben). Ich bin auf einem Linux-System und würde mich für eine solche Liste interessieren glibc. Ich konnte eine solche Liste in ihrem Online-Handbuch nicht finden. Zum Beispiel ihre Dokumentation auf exp erwähnt nicht, wie es damit umgeht -infinity Fall. Jede Hilfe wird sehr geschätzt.

  • Hast du es versucht exp(-infinity)? Hat es geworfen? Hat es NaN oder 0 bekommen?

    – Anders Abel

    6. Dezember 2011 um 12:54 Uhr

  • +1 sogar nur für den Titel 🙂

    – Matteo Italien

    6. Dezember 2011 um 12:55 Uhr

  • Der Sprachstandard sagt nichts darüber aus, ob Unendlich ein darstellbarer Wert ist, also ist dies sicherlich Sache der Implementierung.

    – Kerrek SB

    6. Dezember 2011 um 12:57 Uhr

  • @srean: POSIX exp garantiert +0 für -Inf.

    – Matte

    6. Dezember 2011 um 13:03 Uhr

  • ¤ IEEE 754 hat zwei Aspekte: binäre Darstellung und Semantik. Wenn std::numeric_limits<double>::is_iec559 Erträge true, dann ist die beabsichtigte Bedeutung, dass Sie sowohl Repräsentation als auch Semantik annehmen können. Aber in der Praxis kann man die Darstellung nur vermuten (z. B. g++ option --fastmath, IIRC). Wie @KerrekSB feststellt, müssen Sie die Dokumentation der Implementierung überprüfen. Oder probiere einfach Dinge aus. Prost & hth.,

    – Prost und hth. – Alf

    6. Dezember 2011 um 13:06 Uhr

Benutzeravatar von Sebastian Mach
Sebastian Mach

Das Siehe auch Abschnitt von Die math.h-Definition von POSIX Links zu den POSIX-Definitionen akzeptabler Domains.

Z.B fabs():

If x is ±0, +0 shall be returned.
If x is ±Inf, +Inf shall be returned.

Ich habe erwähnt Siehe auch-Abschnitt zu StackOverflow-Markdown:

acos(),
acosch(),
wie in(),
eine Lohe(),
atan2(),
cbrt(),
Decke (),
cos(),
cosch(),
erf(),
exp(),
expm1(),
fabelhaft (),
Boden(),
fmod(),
frexp(),
hypot(),
igb(),
isnan (),
j0(),
ldexp(),
lgamma(),
Protokoll(),
log10(),
log1p(),
logb(),
modf(),
danach(),
pow(),
Rest(),
druck(),
Schuppen (),
Sünde(),
Sünde (),
quadrat(),
bräunen(),
tanh(),
y0(),

Ich habe search/replace/regex-fu beigetragen. Wir brauchen jetzt nur noch jemanden mit cURL-fu.

  • Oh Mann ! Ich denke, ich hätte sagen sollen: “Jetzt, wo ich die URL habe, brauche ich die Liste nicht. Ich kann die von mir verwendeten Funktionen nachschlagen”. Aber vielen Dank, ich fühle mich schlecht, dass ich dich dazu gebracht habe, all das Zeug nachzuschlagen.

    – stöhn

    6. Dezember 2011 um 13:54 Uhr

  • @srean: Das ist okay, es ist nützlich für mich 🙂

    – Sebastian Mach

    6. Dezember 2011 um 13:57 Uhr

  • Wenn Sie diese alle an einem ordentlichen Ort haben möchten, sind die Posix-Randfälle (fast) alle aus Anhang F des C-Standards geerbt.

    – Stefan Kanon

    6. Dezember 2011 um 15:32 Uhr

  • @Stephen: Cool, das wusste ich nicht. Es ist jedoch über meinem Fu, sie auf faule Weise in Markdown umzuwandeln.

    – Sebastian Mach

    6. Dezember 2011 um 15:43 Uhr

In C99 ist es in Anhang F:

F.9.3.1 The exp functions
-- exp(±0) returns 1.
-- exp(-∞) returns +0.
-- exp(+∞) returns +∞.

Anhang F ist normativ und:

Eine Implementierung, die definiert __STDC_IEC_559__ müssen den Spezifikationen in diesem Anhang entsprechen.

1433480cookie-checkBis ins Unendliche und zurück

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy