pow

Calculates xy.

Special Values
xypow(x, y)div 0invalid?
anything±0.01.0nono
|x| > 1+∞+∞nono
|x| < 1+∞+0.0nono
|x| > 1-∞+0.0nono
|x| < 1-∞+∞nono
+∞> 0.0+∞nono
+∞< 0.0+0.0nono
-∞odd integer > 0.0-∞nono
-∞> 0.0, not odd integer+∞nono
-∞odd integer < 0.0-0.0nono
-∞< 0.0, not odd integer+0.0nono
±1.0±∞-NaNnoyes
< 0.0finite, nonintegralNaNnoyes
±0.0odd integer < 0.0$(PLUSMNINF)yesno
±0.0< 0.0, not odd integer+∞yesno
±0.0odd integer > 0.0±0.0nono
±0.0> 0.0, not odd integer+0.0nono
  1. Unqual!F pow(F x, G n)
  2. typeof(Unqual!(F).init * Unqual!(G).init) pow(F x, G n)
  3. real pow(I x, F y)
  4. Unqual!(Largest!(F, G)) pow(F x, G y)
    @nogc @trusted pure nothrow
    Unqual!(Largest!(F, G))
    pow
    (
    F
    G
    )
    (
    F x
    ,
    G y
    )

Examples

1 assert(pow(1.0, 2.0) == 1.0);
2 assert(pow(0.0, 0.0) == 1.0);
3 assert(pow(1.5, 10.0).feqrel(57.665) > 16);
4 
5 // special values
6 assert(pow(1.5, real.infinity) == real.infinity);
7 assert(pow(0.5, real.infinity) == 0.0);
8 assert(pow(1.5, -real.infinity) == 0.0);
9 assert(pow(0.5, -real.infinity) == real.infinity);
10 assert(pow(real.infinity, 1.0) == real.infinity);
11 assert(pow(real.infinity, -1.0) == 0.0);
12 assert(pow(-real.infinity, 1.0) == -real.infinity);
13 assert(pow(-real.infinity, 2.0) == real.infinity);
14 assert(pow(-real.infinity, -1.0) == -0.0);
15 assert(pow(-real.infinity, -2.0) == 0.0);
16 assert(pow(1.0, real.infinity) is -real.nan);
17 assert(pow(0.0, -1.0) == real.infinity);
18 assert(pow(real.nan, 0.0) == 1.0);

Meta

Suggestion Box / Bug Report