### Author Topic: complex cpow()  (Read 554 times)

#### TimoVJL

• Global Moderator
• Member
• Posts: 1883
##### complex cpow()
« on: September 21, 2019, 02:42:34 pm »
It's time to check complex functions, like cpow():
Code: [Select]
`#include <stdio.h>#include <complex.h>// https://en.cppreference.com/w/c/numeric/complex/cpowint main(void){        double complex z = cpow(1.0+2.0*I, 2);    printf("(1+2i)^2 = %.1f%+.1fi\n", creal(z), cimag(z));     double complex z2 = cpow(-1, 0.5);    printf("(-1+0i)^0.5 = %.1f%+.1fi\n", creal(z2), cimag(z2));     double complex z3 = cpow(conj(-1), 0.5); // other side of the cut    printf("(-1-0i)^0.5 = %.1f%+.1fi\n", creal(z3), cimag(z3));     double complex z4 = cpow(I, I); // i^i = exp(-pi/2)    printf("i^i = %f%+fi\n", creal(z4), cimag(z4));}`expected result:
Code: [Select]
`(1+2i)^2 = -3.0+4.0i(-1+0i)^0.5 = 0.0+1.0i(-1-0i)^0.5 = 0.0-1.0ii^i = 0.207880+0.000000i`
Code: [Select]
`#include <stdio.h>#include <complex.h>int main(void){ double complex base = -1.23; for (double f = 1.7; f < 2.31; f += 0.1) { double complex exponent = f; double complex result = cpow(base, exponent); printf("-1.23^%.2f = %f %fi\n", f, creal(result), cimag(result)); } return 0;}`
May the source be with you