Polynomial long division
func poly_long_div(rn, rd) {
var n = rn.map{_}
var gd = rd.len
if (n.len >= gd) {
return(gather {
while (n.len >= gd) {
var piv = n[0]/rd[0]
take(piv)
{ |i|
n[i] -= (rd[i] * piv)
} << ^(n.len `min` gd)
n.shift
}
}, n)
}
return([0], rn)
}Example:
Output:
Last updated
Was this helpful?