log2 in C++?
-
Abend, also laut dieser Seite ( http://www.cprogramming.com/fod/log2.html ) gibt es in C++ eine Funktion log2, wenn man cmath einbindet. Ich habe den Header <cmath> eingebunden, aber wenn ich log2 verwende bekomme ich im VS 2005 diese Fehlermeldung:
error C3861: 'log2': identifier not foundIch habe es auch mit <math.h> versucht, aber das brauchte auch nichts. Sind die Infos auf der Seite fehlerhaft oder wieso gibt es die Funktion bei mir nicht?
-
http://www.cplusplus.com/reference/clibrary/cmath/
laut referenz gibts nur den natürlichen und den 10er logarithmus
/edit: Im Standard, $26.5 wird auch kein log2 erwähnt
implementieren lässt sichs aber leicht:
double log2(double d) {return log(d)/log(2) ;}
-
lt cpp-reference gibts nur log und log10. Hab den Artikel nicht gelesen, aber ich würde sagen der stimmt nicht ganz.
-
DerMitdenLinks schrieb:
lt cpp-reference gibts nur log und log10. Hab den Artikel nicht gelesen, aber ich würde sagen der stimmt nicht ganz.
Probieren geht über studieren
In sehr vielen Bibliotheken gibt es keinen ln sondern nur nen log und log10. Falls dies der Fall ist, stellt im "Regelfall" der log den natürlichen Logarithmus dar.
-
pumuckl schrieb:
/edit: Im Standard, $26.5 wird auch kein log2 erwähnt
Ist mir echt zu teuer für so einen lausigen Standard, der nicht mal log2 mitbringt...
-
Gemeint war §26.5. Das ist der Abschnitt des Standards. §26 für den numerischen Teil der Standardbibliothek und Unterabschnitt .5 für die mathematischen C-Funktionen.
Kaufen muss man das Ding auch nicht, wenn einem ein sehr früher, auf C++03 basierender C++0x Entwurf reicht.
Bzgl 2er-Logarithmus sind noch ldexp und frexp interessant. Ich habe es selbst nicht ausprobiert, aber ich kann mir vorstellen, dass diese Funktionen auf den meisten Rechnern sehr effizient sind.
Gruß,
SP
-
Sebastian Pizer schrieb:
Gemeint war §26.5...
Ähm, du verstehst wohl gar keinen Spaß, was? Ein solcher Vertipper muss doch genutzt werden!

-
Leute, ihr sollte euch mal die URL genauer anschauen. Dort steht "C Programming". Drei mal dürft ihr raten, wo es ein
log2in der Standardbibliothek gibt. Richtig, C99!
http://en.wikipedia.org/wiki/Math.hHat ein C Programmierer wohl wieder C++ Programmierer gespielt

Grüssli