// Biblioteca simples de números complexos :-) // Carlos Maziero, DINF/UFPR 2020 #include #include #include #include "cpx.h" // conversão de coordenadas polares em retangulares. // Obs: esta é uma função interna; com o modificador "static", // ela só pode ser acessada por código dentro deste arquivo. static void polar_to_rect (float r, float a, float *x, float *y) { // implementação da função // ... } // define os valores de um número complexo cpx_t cpx (float r, float i) { cpx_t new = {r, i} ; return (new) ; } // soma de dois complexos cpx_t cpx_sum (cpx_t a, cpx_t b) { cpx_t sum ; sum.r = a.r + b.r ; sum.i = a.i + b.i ; return (sum) ; } // diferença de dois complexos cpx_t cpx_sub (cpx_t a, cpx_t b) { cpx_t sum ; sum.r = a.r - b.r ; sum.i = a.i - b.i ; return (sum) ; } // produto de dois complexos cpx_t cpx_mul (cpx_t a, cpx_t b) { cpx_t prod ; prod.r = a.r * b.r - a.i * b.i ; prod.i = a.r * b.i + a.i * b.r ; return (prod) ; } // implementação das demais funções // ...