TeX synthetic division in Macaulay2
There might be a small audience for this code (algebraic geometers teaching precalculus!), so I figured I’d put it out there on the internet.
Let’s say you want to put a synthetic division problem in a TeX document. Let’s also say that you are a user of Macaulay2. You can then use the following code to get the desired result.
Macaulay2, version 1.4
with packages: ConwayPolynomials, Elimination, IntegralClosure, LLLBases, PrimaryDecomposition, ReesAlgebra, TangentCone
i1 : writeSyntheticDivision = (f,a) -> (
x := first gens ring f;
A := reverse apply(first degree f+1,i->coefficient(x^i,f));
B := {};
C := {A_0};
scan(A_{1..(#A-1)},b->(
B = B|{a*(last C)};
C = C|{b+(last B)};
)
);
string := "\\begin{array}{r|"|concatenate apply(A,i->"r")|"}\n";
string = string|"\\cline{2-"|toString(#A+1)|"}\n";
string = string|toString a|concatenate apply(A,i->"&"|toString i)|"\\\\\n";
string = string|"\\multicolumn{2}{r}{}"|concatenate apply(B,i->"&"|toString i)|"\\\\\\cline{2-"|toString(#A+1)|"}\n";
string = string|"\\multicolumn{2}{r}{"|toString C_0|"}"|concatenate apply(C_{1..(#C-1)},i->"&"|toString i)|"\\\\\n";
string = string|"\\end{array}\n";
print string
)
o1 = writeSyntheticDivision
o1 : FunctionClosure
i2 : R = QQ[x]
o2 = R
o2 : PolynomialRing
i3 : writeSyntheticDivision(x^4-x^3-7*x^2+13*x-6,1)
\begin{array}{r|rrrrr}
\cline{2-6}
1&1&-1&-7&13&-6\\
\multicolumn{2}{r}{}&1&0&-7&6\\\cline{2-6}
\multicolumn{2}{r}{1}&0&-7&6&0\\
\end{array}