The option Output is only used by the commands CSM, Segre, Chern and Euler to specify the type of output to be returned to the used. This option will be ignored when used with CompMethod PnResidual or bertini. The option will also be ignore when Method=>DirectCompleteInt is used. The default output for all these methods is ChowRingElelment which will return an element of the appropriate Chow ring. All methods also have an option HashForm which returns additional information computed by the methods during their standard operation.
i1 : R = ZZ/32749[x_0..x_6]
o1 = R
o1 : PolynomialRing
|
i2 : A=ChowRing(R)
o2 = A
o2 : QuotientRing
|
i3 : I=ideal(random(2,R),R_0*R_1*R_6-R_0^3);
o3 : Ideal of R
|
i4 : csm=CSM(A,I,Output=>HashForm)
o4 = MutableHashTable{...4...}
o4 : MutableHashTable
|
i5 : peek csm
6 5 4 3 2
o5 = MutableHashTable{{0, 1} => 2h + 23h + 32h + 33h + 18h + 5h }
1 1 1 1 1 1
6 5 4 3 2
CSM => 10h + 12h + 22h + 16h + 6h
1 1 1 1 1
6 5 4 3 2
{0} => 6h + 18h + 26h + 22h + 10h + 2h
1 1 1 1 1 1
6 5 4 3 2
{1} => 6h + 17h + 28h + 27h + 14h + 3h
1 1 1 1 1 1
|
i6 : CSM(A,ideal I_0)==csm#{0}
o6 = true
|
i7 : CSM(A,ideal(I_0*I_1))==csm#{0,1}
o7 = true
|
i8 : c=Chern( I, Output=>HashForm)
o8 = MutableHashTable{...6...}
o8 : MutableHashTable
|
i9 : peek c
2 3 4 5 6
o9 = MutableHashTable{SegreList => {0, 0, 6h , -30h , 114h , -390h , 1266h }}
1 1 1 1 1
2 3 4 5 6
Glist => {1, 3h , 3h , 3h , 3h , 3h , 3h }
1 1 1 1 1 1
6 5 4 3 2
Segre => 1266h - 390h + 114h - 30h + 6h
1 1 1 1 1
6 5 4 3 2
Chern => 90h - 12h + 30h + 12h + 6h
1 1 1 1 1
6 5 4 3 2
CF => 90h - 12h + 30h + 12h + 6h
1 1 1 1 1
6 5 4 3 2
G => 3h + 3h + 3h + 3h + 3h + 3h + 1
1 1 1 1 1 1
|
i10 : seg=Segre( I, Output=>HashForm)
o10 = MutableHashTable{...4...}
o10 : MutableHashTable
|
i11 : peek seg
2 3 4 5 6
o11 = MutableHashTable{SegreList => {0, 0, 6h , -30h , 114h , -390h , 1266h }}
1 1 1 1 1
2 3 4 5 6
Glist => {1, 3h , 3h , 3h , 3h , 3h , 3h }
1 1 1 1 1 1
6 5 4 3 2
Segre => 1266h - 390h + 114h - 30h + 6h
1 1 1 1 1
6 5 4 3 2
G => 3h + 3h + 3h + 3h + 3h + 3h + 1
1 1 1 1 1 1
|
i12 : eu=Euler( I, Output=>HashForm)
o12 = MutableHashTable{...5...}
o12 : MutableHashTable
|
i13 : peek eu
o13 = MutableHashTable{Euler => 10 }
6 5 4 3 2
{0, 1} => 2h + 23h + 32h + 33h + 18h + 5h
1 1 1 1 1 1
6 5 4 3 2
CSM => 10h + 12h + 22h + 16h + 6h
1 1 1 1 1
6 5 4 3 2
{0} => 6h + 18h + 26h + 22h + 10h + 2h
1 1 1 1 1 1
6 5 4 3 2
{1} => 6h + 17h + 28h + 27h + 14h + 3h
1 1 1 1 1 1
|
The MutableHashTable returned with the option Output=>HashForm contains different information depending on the method with which it is used. Additionally if the option InputIsSmooth is used then the hash table returned by the methods Euler and CSM will be the same as that returned by Chern. When using the CSM command in the default configurations (that is Method=>InclusionExclusion, CompMethod=>ProjectiveDegree) there is the additional option to set Output=>HashFormXL. This returns all the usual information that Output=>HashForm would for this configuration with the addition of the projective degrees and Segre classes of singularity subschemes generated by the hypersurfaces considered in the inclusion/exclusion procedure, that is in finding the CSM class of all hypersurfaces generated by taking a product of some subsets of generators of the input ideal. Note that, since the CSM class of a subscheme equals the CSM class of its reduced scheme, or equivalently for us the CSM class corresponding to an ideal I equals the CSM class of the radical of I, then internally we always work with radical ideals (for efficiency reasons). Hence the projective degrees and Segre classes computed internally will be those of the radical of an ideal defined by a polynomial which is a product of some subset of the generators. We illustrate this with an example below.
i14 : csmXLhash=CSM(A,I,Output=>HashFormXL)
o14 = MutableHashTable{...10...}
o14 : MutableHashTable
|
i15 : peek csmXLhash
o15 = MutableHashTable{G(Jacobian){0} => 0 }
Segre(Jacobian){0} => 0
6 5 4 3 2
Segre(Jacobian){0, 1} => 390h - 386h + 150h - 42h + 8h
1 1 1 1 1
6 5 3 2
Segre(Jacobian){1} => - 160h + 32h - 4h + 2h
1 1 1 1
6 5 4 3 2
G(Jacobian){0, 1} => 10h + 10h + 10h + 10h + 8h + 4h + 1
1 1 1 1 1 1
2
G(Jacobian){1} => 2h + 2h + 1
1 1
6 5 4 3 2
{0, 1} => 2h + 23h + 32h + 33h + 18h + 5h
1 1 1 1 1 1
6 5 4 3 2
CSM => 10h + 12h + 22h + 16h + 6h
1 1 1 1 1
6 5 4 3 2
{0} => 6h + 18h + 26h + 22h + 10h + 2h
1 1 1 1 1 1
6 5 4 3 2
{1} => 6h + 17h + 28h + 27h + 14h + 3h
1 1 1 1 1 1
|
i16 : K=ideal I_0*I_1;
o16 : Ideal of R
|
i17 : CSM(A,radical K)==CSM(A,K)
o17 = true
|
i18 : J=ideal jacobian radical K;
o18 : Ideal of R
|
i19 : segJ=Segre(A,J,Output=>HashForm)
o19 = MutableHashTable{...4...}
o19 : MutableHashTable
|
i20 : csmXLhash#("G(Jacobian)"|toString({0,1}))==segJ#"G"
o20 = true
|
i21 : csmXLhash#("Segre(Jacobian)"|toString({0,1}))==segJ#"Segre"
o21 = true
|