How do I use the pow command?
I need to basicly do 10^x
I dont know how to do it with the pow command if any one could help me I would be thankful
This is a discussion on Question.. within the C++ Programming forums, part of the General Programming Boards category; How do I use the pow command? I need to basicly do 10^x I dont know how to do it ...
How do I use the pow command?
I need to basicly do 10^x
I dont know how to do it with the pow command if any one could help me I would be thankful
<batman>
pow!!!!
zap!!!!
</batman>
> How do I use the pow command?
Read the manual page, follow the examples?
n = pow(x, y);
If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
If at first you don't succeed, try writing your phone number on the exam paper.
>How do I use the pow command?
Code:double answer = pow(10., x)
As such,Code:double pow( double base, double exp );
Do NOT use integers with this function. The standard states that implementations are free to overload floating-point functions to their float, double and long double types. So, its possible that your implementation has pow defined as:Code:double result; double exp = 3; // for instance result = pow(10.0, exp);
double pow( float base, float exp );
double pow( double base, double exp );
double pow( long double base, long double exp );
If you use an integer as an argument to one or both parameters, the compiler will complain your attempt is ambiguous. Even if it does not (because some compilers do not overload or provide preprocessor policies), your code may fail to compile on other implementations.
Originally Posted by brewbuck:
Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.
>Do NOT use integers with this function.
Doesn't C++ have a:
I have no idea how to check this. Maybe the C++ standard has a list?Code:double pow( double base, int exp );
If you need to do ints, just write it all out:
Code:x = x*x*x*x*x*x*x*x*x*x //x^10
You are joking right?Originally Posted by manutd
Originally Posted by brewbuck:
Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.
Yes.
I checked the library for Dev-C++ and it does have a:
I dunno if it's standard though.Code:double pow( double base, int exp );
It's not. I don't understand why you can't just use a cast to double for intermediate use of pow() though.
As citizen said. It's not a big deal to use a cast in this situation. Cast to whatever floating-point type is more appropriate, adorn the literal or define floating-point variables, do what you must. But avoid using integers even if your compiler happily says everything is alright
Originally Posted by brewbuck:
Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.
>It's not.
Do you have a copy of the C++ standard to verify that? Because I'm fairly certain it's in there.
>But avoid using integers even if your compiler happily says everything is alright
I see no reason to avoid using int for the exponent. Unless you're compiling C code.
> Do you have a copy of the C++ standard to verify that?
I can find a reference.
http://www.dinkumware.com/manuals/?m...=math.html#pow
Barring you don't trust that, various implementations will let you know what is available by extention if you look it up in the help files.
Well... the standard does in fact state the following signatures for pow (26.5.6):
float pow(float, int)
float pow(float, float)
double pow(double, int)
double pow(double, double)
long double pow(long double, int)
long double pow(long double, long double)
So yes, an int exponent will not generate ambiguity.
Originally Posted by brewbuck:
Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.