3b1b-manim/manimlib/shaders/inserts/complex_functions.glsl
2021-10-11 06:21:47 -07:00

15 lines
No EOL
376 B
GLSL

vec2 complex_mult(vec2 z, vec2 w){
return vec2(z.x * w.x - z.y * w.y, z.x * w.y + z.y * w.x);
}
vec2 complex_div(vec2 z, vec2 w){
return complex_mult(z, vec2(w.x, -w.y)) / (w.x * w.x + w.y * w.y);
}
vec2 complex_pow(vec2 z, int n){
vec2 result = vec2(1.0, 0.0);
for(int i = 0; i < n; i++){
result = complex_mult(result, z);
}
return result;
}