Polynomial long division: Difference between revisions

Line 290:
poly.popBack();
return (cast(int)poly.length) - 1;
}
 
static T[] mul(T)(T item, int n) {
return array(take(repeat(item), n));
}
 
Line 302 ⟶ 298:
throw new Exception("ZeroDivisionError");
if (dN >= dD) {
q = mularray(take(repeat(0.0), dN));
while (dN >= dD) {
double[]auto d = mularray(take(repeat(0.0), dN - dD)) ~ D;
double mult = q[dN - dD] = N[$-1] / d[$-1];
d[] *= mult;
Line 312 ⟶ 308:
r = N;
} else {
q = [0.0];
r = N;
}
Line 322 ⟶ 318:
double[] D = [-3.0, 1.0, 0.0, 0.0];
auto qr = polyDiv(N, D);
writeln("Polynomial Long Division:");
writefln(" %s / %s = %s remainder %s", N, D, qr._0, qr._1);
}</lang>
Anonymous user