I = carpet(a1,a2)
I = carpet(a1,a2,m)
(I,xmat,ymat) = carpet(a1,a2,Scrolls=>true)
The routine carpet(a1,a2,m) sets a = min(a1,a2), b = max(a1,a2), and forms two matrices from m: X:the 2 x a matrix that is the first a cols of m; Y:the 2 x b matrix that is the nex b cols of m–that is, cols a1..a1+a2-1 of m; Let Ix, Iy be the ideals of 2 x 2 minors of X and Y. If $a,b\geq 2$,the routine returns Ix+Iy+Imixed, where Imixed consists of the quadrics "outside minor - inside minor", that is, $det(X_{\{i\}},Y_{\{j+1\}})-det(X_{\{i+1\}}|Y_{\{j\}})$, for each pair of (i,i+1), (j,j+1) in the ranges a1 and a2.
If m is usual ideal of the scroll of type (a,b), then carpet(a,b,m) produces the same ideal (over a different ring) as carpet(a,b). This is the ideal of the 2-dimensional rational normal scroll Scroll(a1,a2) is the ideal of 2 x 2 minors of X|Y. The ideal I to be constructed is the ideal of the unique (numerically) K3 scheme that is a double structure on the scroll S(a1,a2).
When a,b > 1, the carpet ideal I is the sum $Ix+Iy$ plus the ideal Imixed
When a = b = 1, I is the square of the determinant of X|Y.
When a = 1, b>1 (or symmetrically), I is defined as in the case a,b>1, after replacing $$ X = \begin{pmatrix} x_0 \\ x_1 \end{pmatrix} $$
by the 2 x 2 matrix $$ \begin{pmatrix} x_0^2 & x_0*x_1 \\ x_0*x_1 & x_1^2 \end{pmatrix} $$ and changing $a$ to 2.
|
|
|
|
|
|
|
We require $a1,a2 \ge 1$. If $a1>a2$ then the blocks are reversed, so that the smaller block always comes first. The script generalizeScroll is a more general tool that can do the same things.
The object carpet is a method function with options.