Advertisement
Guest User

Untitled

a guest
Jan 14th, 2021
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.72 KB | None | 0 0
  1. struct Polynomial* GCD(struct Polynomial* a, struct Polynomial* b) {
  2.        struct Polynomial* temp = makePolynomial(a->deg);
  3.        while (b->deg != 0 || fabs(b->coeff[0]) > ZERO) {  
  4.              for(int i = 0; i < a->deg + 1; i++)
  5.                  temp->coeff[i] = a->coeff[i];
  6.  
  7.              a->deg = b->deg;
  8.              a->coeff = realloc(a->coeff, (a->deg+1)*sizeof(*a->coeff));
  9.              for(int i = 0; i < a->deg + 1; i++)
  10.                    a->coeff[i] = b->coeff[i];
  11.  
  12.              dividePolynomials(temp, b, b);
  13.  
  14.              temp->deg = a->deg;
  15.              temp->coeff = realloc(temp->coeff, (a->deg + 1) * sizeof(*temp->coeff));
  16.        }
  17.  
  18.        findDeg(a);
  19.  
  20.        free(temp);
  21.  
  22.        return a;
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement