IntPower
-
Wohl mein Fehler, falsch gelesen, da ich davon ausging das math.hpp == <math> wäre. Scheint wohl nicht so zu sein.

-
Danke Braunstein, mit #include <math.hpp> funktioniert auch IntPower.
Was ist denn besser, A:math.h und pow nutzen oder B:math.hpp und IntPower nutzen?
Gibts da ne Faustregel? Ich würde denken, letzteres ist besser, weil ich es in der Hilfe nachlesen kann und es für VCL gemacht ist!?!
-
Hallo
Wenn man es richtig macht
#include <cmath> ... std::pow(...)dann ist es am besten, denn das ist konform zum C++ Standard.
bis bald
akari
-
Wenn es um Geschwindigkeit geht sollte IntPower besser sein. Da hier aber nur zwei ints im Spiel sind kann man die Funktion auch schnell selbst schreiben.
-
Der Vollständigkeit halber kannst Du Dir auch des Potenzberechnungs-Metaprogrammierungsbeispiel bei wikipedia ansehen (wenn's ganz schnell gehen soll)
-
mach doch mal
#include <math.h> ... int x,y; ... x = (int)pow(x,y); ...
-
Hallo
@Schurke : Und was von dem was du hier gepostest hast wurde noch nicht von anderen gepostet?
bis bald
akari
-
zudem es noch falsch ist. Richtig heißt es
#include <cmath>
-
Jetzt verwirrt ihr mich schon wieder:
pow funktioniert bei mir mit #include <math>
IntPower funktioniert bei mir mit #include <Math.hpp>

@witte_: Das soll Geschwindigkeit bringen, richtig? Ich glaube für Templates bin ich noch nicht bereit...
-
Das Beispiel für Template-Metaprogrammierung aus dem Link bringt dir nur was, wenn beide Parameter zur Compilezeit feststehen. Da kannst du dir das auch selber vorher ausrechnen und eintragen. Wenn nur der Exponent feststeht kann man sowas machen
template<int exp> int ipow(int val) { for( int i=0; i<exp; ++i) val *= val; return val; }Ein guter Compiler merkt, dass das Ende der Schleife zur Compilezeit feststeht und optimiert sie dann raus (loop unrolling). Auch das kann man natürlich mit Metaprogrammierung selber machen.