- Usage:
`segreDimX(IX,IY,A)`

- Inputs:
`IX`, an ideal, a multi-homogeneous ideal defining a closed subscheme of ℙ^{n1}x...xℙ^{nm}; makeProductRing builds the graded coordinate ring of ℙ^{n1}x...xℙ^{nm}.`IY`, an ideal, a multi-homogeneous ideal defining a closed subscheme of ℙ^{n1}x...xℙ^{nm}; makeProductRing builds the graded coordinate ring of ℙ^{n1}x...xℙ^{nm}.`A`, a quotient ring, the Chow ring of ℙ^{n1}x...xℙ^{nm}. This ring can be built by applying makeChowRing to the coordinate ring of ℙ^{n1}x...xℙ^{nm}.

- Optional inputs:
`Verbose =>`a Boolean value

- Outputs:
`s`, a ring element, the dimension X part of the Segre class of the subscheme X defined by IX in the subscheme Y defined by IY as a class in the Chow ring of ℙ^{n1}x...xℙ^{nm}.

For subschemes X,Y of ℙ^{n1}x...xℙ^{nm} this command computes the dimension X part of the Segre class s(X,Y) of X in Y as a class in the Chow ring of ℙ^{n1}x...xℙ^{nm}. This is faster than computing the entire Segre class.

i1 : R = makeProductRing({2,2}) o1 = R o1 : PolynomialRing |

i2 : x = gens(R) o2 = {a, b, c, d, e, f} o2 : List |

i3 : Y = ideal(random({2,2},R)); o3 : Ideal of R |

i4 : X = Y+ideal(x_0*x_3+x_1*x_4); o4 : Ideal of R |

i5 : A = makeChowRing(R) o5 = A o5 : QuotientRing |

i6 : time s = segreDimX(X,Y,A) -- used 0.0341501 seconds 2 2 o6 = 2H + 4H H + 2H 1 1 2 2 o6 : A |

i7 : time segre(X,Y,A) -- used 0.0973529 seconds 2 2 2 2 2 2 o7 = 12H H - 6H H - 6H H + 2H + 4H H + 2H 1 2 1 2 1 2 1 1 2 2 o7 : A |

- segreDimX(Ideal,Ideal,QuotientRing)