Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void
- bn_poly_synthetic_division(register struct bn_poly *quo, register struct bn_poly *rem, register const struct bn_poly *dvdend, register const struct bn_poly *dvsor)
- {
- register size_t divisor;
- register size_t n;
- *quo = *dvdend;
- *rem = bn_Zero_poly;
- if (dvsor->dgr > dvdend->dgr) {
- quo->dgr = -1;
- } else {
- quo->dgr = dvdend->dgr - dvsor->dgr;
- }
- if ((rem->dgr = dvsor->dgr - 1) > dvdend->dgr)
- rem->dgr = dvdend->dgr;
- for (n=0; n <= quo->dgr; ++n) {
- quo->cf[n] /= dvsor->cf[0];
- for (divisor=1; divisor <= dvsor->dgr; ++divisor) {
- quo->cf[n+divisor] -= quo->cf[n] * dvsor->cf[divisor]; /* seg fault here... */
- }
- }
- for (n=1; n<=(rem->dgr+1); ++n) {
- rem->cf[n-1] = quo->cf[quo->dgr+n];
- quo->cf[quo->dgr+n] = 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment