20 lines
407 B
Text
20 lines
407 B
Text
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)
|
||
}
|