# hodgeRing -- create a ring containing algebraic classes on moduli spaces of curves

## Description

The function hodgeRing must must be called before integral in order to initialize a ring QQ[$\psi_1, ..., \psi_a, k_1, ..., k_b, \lambda_1, ..., \lambda_c$] containing variables used by integral. The inputs g and n should be at least as large as the genus and number of points that will used. Overestimating the values of g and n are fine, but initializing these numbers too small will result in error messages.

## Caveat

The output of hodgeRing is not a geometric object but a computational one. The intersection numbers are calculated recursively using pullbacks by natural morphisms (c.f., equations (4), (8)--(11), and (13) of [Y]). Rather than initializing a new tautological ring for every step of this recursion, this package provides the function hodgeRing to the user to create a ring large enough to contain all the variables which might be needed, and uses endomorphisms of the master ring instead of natural morphisms between several rings.

Here are some examples:

 i1 : R = hodgeRing (4, 1); i2 : integral (1, 1, psi_1) warning: clearing value of symbol tempCh to allow access to subscripted variables based on it : debug with expression debug 1257 or with command line option --debug 1257 1 o2 = -- 24 o2 : R i3 : integral (3, 0, lambda_1^6) warning: clearing value of symbol tempCh to allow access to subscripted variables based on it : debug with expression debug 1257 or with command line option --debug 1257 warning: clearing value of symbol tempCh to allow access to subscripted variables based on it : debug with expression debug 1257 or with command line option --debug 1257 1 o3 = ----- 90720 o3 : R

## References

[Y] Yang , S.Intersection numbers on ${\bar M}_{g,n}$.