mplexnumbers.html
    vec2 complex_pow(vec2 x, vec2 y) {
      float rho = length(x);
      float theta = arg(x);
      float angle = C * theta + D * log(rho);
      float real = cos(angle);
      float imag = sin(angle);
      return vec2(real, imag) * (pow(rho, C) * pow(M_E, -D * theta));
    }

    vec2 complex_sin(vec2 x) {
      vec2 iz = complex_mul(vec2(0.0, 1.0), x);
      vec2 inz = complex_mul(vec2(0.0, -1.0), x);
      vec2 eiz = complex_pow( vec2(M_E, 0.0), iz );
      vec2 einz = complex_pow( v