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.
Bis ins Unendliche und zurück
sran
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.
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ägetrue
, 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