Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

  • 30c6726
  • /
  • index.doctree
Raw File Download

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
content badge Iframe embedding
swh:1:cnt:4afc308cefbfb0894ec78747545163a3eb80d3f4
directory badge Iframe embedding
swh:1:dir:30c672617940030160137945fbcff02df465c936

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • content
  • directory
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
index.doctree
€cdocutils.nodes
document
q)q}q(U	nametypesq}q(X
click hereqˆX+strataalgebra.StrataAlgebra.do_all_productsqˆXtestingqNXsageq	ˆXdrew johnsonq
ˆXindices and tablesqNXs. yang's noteqˆX'strataalgebra.StrataAlgebraElement.dictq
ˆX(strataalgebra.StrataAlgebraElement.codimqˆX,strataalgebra.StrataAlgebraElement.integrateqˆX$strataalgebra.StrataAlgebra.boundaryqˆX%strataalgebra.StrataAlgebra.FZ_matrixqˆXr. pandharipande's expositionqˆX#strataalgebra.StrataAlgebra.hilbertqˆXinstallation and loadingqNXstrataalgebra.StrataAlgebraqˆX
how to useqNX$strataalgebra.StrataAlgebra.FZ_bettiqˆXstrataalgebra.StrataAlgebra.irrqˆX(strataalgebra.StrataAlgebra.print_strataqˆXtautrel.sageqˆX'strataalgebra.StrataAlgebra.get_stratumqˆX%strataalgebra.StrataAlgebra.MgnLb_intqˆXstrataalgebra.StrataAlgebra.psiqˆX!strataalgebra.StrataAlgebra.kappaqˆX,strataalgebra.StrataAlgebraElement.in_kernelqˆXstrataalgebra documentationq NX'strataalgebra.StrataAlgebra.MgnLb_classq!ˆX7strataalgebra.StrataAlgebra.FZ_matrix_pushforward_basisq"ˆX+strataalgebra.StrataAlgebra.basis_integralsq#ˆuUsubstitution_defsq$}q%Uparse_messagesq&]q'Ucurrent_sourceq(NU
decorationq)NUautofootnote_startq*KUnameidsq+}q,(hU
click-hereq-hhhUtestingq.h	Usageq/h
Udrew-johnsonq0hUindices-and-tablesq1hU
s-yang-s-noteq2h
h
hhhhhhhhhUr-pandharipande-s-expositionq3hhhUinstallation-and-loadingq4hhhU
how-to-useq5hhhhhhhUtautrel-sageq6hhhhhhhhhhh Ustrataalgebra-documentationq7h!h!h"h"h#h#uUchildrenq8]q9(cdocutils.nodes
comment
q:)q;}q<(U	rawsourceq=XÒStrataAlgegra documentation master file, created by
sphinx-quickstart on Thu Aug 31 18:54:11 2017.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.Uparentq>hUsourceq?X./Users/drewjohnson/mgn/strataalgebra/index.rstq@UtagnameqAUcommentqBU
attributesqC}qD(U	xml:spaceqEUpreserveqFUidsqG]UbackrefsqH]UdupnamesqI]UclassesqJ]UnamesqK]uUlineqLKUdocumentqMhh8]qNcdocutils.nodes
Text
qOXÒStrataAlgegra documentation master file, created by
sphinx-quickstart on Thu Aug 31 18:54:11 2017.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.qP…qQ}qR(h=Uh>h;ubaubcdocutils.nodes
compound
qS)qT}qU(h=Uh>hh?h@hAUcompoundqVhC}qW(hI]hJ]qXUtoctree-wrapperqYahH]hG]hK]uhLNhMhh8]qZcsphinx.addnodes
toctree
q[)q\}q](h=Uh>hTh?h@hAUtoctreeq^hC}q_(Unumberedq`KU
includehiddenqa‰h>XindexqbUcaptionqcNUglobqd‰hG]hH]U
titlesonlyqe‰hI]hJ]hK]Uentriesqf]qgUhiddenqh‰Uincludefilesqi]qjUmaxdepthqkKuhLKh8]ubaubcdocutils.nodes
section
ql)qm}qn(h=Uh>hh?h@hAUsectionqohC}qp(hI]hJ]hH]hG]qqh7ahK]qrh auhLK
hMhh8]qs(cdocutils.nodes
title
qt)qu}qv(h=Xstrataalgebra Documentationqwh>hmh?h@hAUtitleqxhC}qy(hI]hJ]hH]hG]hK]uhLK
hMhh8]qzhOXstrataalgebra Documentationq{…q|}q}(h=hwh>huubaubcdocutils.nodes
paragraph
q~)q}q€(h=X{Welcome! The ``strataalgebra`` module is designed to compute products in the strata algebra using `Sage`_. The strata algebra is of interest
because it has a natural surjective morphism to the tautological ring of the moduli space of curves. The kernel is (conjecturally) described by the Faber-Zagier relations. For more detail, see for example `R. Pandharipande's exposition`_.h>hmh?h@hAU	paragraphqhC}q‚(hI]hJ]hH]hG]hK]uhLKhMhh8]qƒ(hOX
Welcome! The q„…q…}q†(h=X
Welcome! The h>hubcdocutils.nodes
literal
q‡)qˆ}q‰(h=X``strataalgebra``hC}qŠ(hI]hJ]hH]hG]hK]uh>hh8]q‹hOX
strataalgebraqŒ…q}qŽ(h=Uh>hˆubahAUliteralqubhOXD module is designed to compute products in the strata algebra using q…q‘}q’(h=XD module is designed to compute products in the strata algebra using h>hubcdocutils.nodes
reference
q“)q”}q•(h=X`Sage`_Uresolvedq–Kh>hhAU	referenceq—hC}q˜(UnameXSageUrefuriq™Xsagemath.orgqšhG]hH]hI]hJ]hK]uh8]q›hOXSageqœ…q}qž(h=Uh>h”ubaubhOXñ. The strata algebra is of interest
because it has a natural surjective morphism to the tautological ring of the moduli space of curves. The kernel is (conjecturally) described by the Faber-Zagier relations. For more detail, see for example qŸ…q }q¡(h=Xñ. The strata algebra is of interest
because it has a natural surjective morphism to the tautological ring of the moduli space of curves. The kernel is (conjecturally) described by the Faber-Zagier relations. For more detail, see for example h>hubh“)q¢}q£(h=X `R. Pandharipande's exposition`_h–Kh>hhAh—hC}q¤(UnameXR. Pandharipande's expositionh™X$https://arxiv.org/pdf/1603.05151.pdfq¥hG]hH]hI]hJ]hK]uh8]q¦hOXR. Pandharipande's expositionq§…q¨}q©(h=Uh>h¢ubaubhOX.…qª}q«(h=X.h>hubeubcdocutils.nodes
target
q¬)q­}q®(h=X.. _Sage: sagemath.orgU
referencedq¯Kh>hmh?h@hAUtargetq°hC}q±(h™hšhG]q²h/ahH]hI]hJ]hK]q³h	auhLKhMhh8]ubh¬)q´}qµ(h=XG.. _R. Pandharipande's exposition: https://arxiv.org/pdf/1603.05151.pdfh¯Kh>hmh?h@hAh°hC}q¶(h™h¥hG]q·h3ahH]hI]hJ]hK]q¸hauhLKhMhh8]ubh~)q¹}qº(h=XŒThe product structure was implemented by `Drew Johnson`_, based on `S. Yang's note`_ describing the algorithm of Graber and
Pandharipande.
The program also computes the FZ relations using code copied from A. Pixton's `tautrel.sage`_ program.
The code was integrated into this package (with some modifications and optimizations) by Drew Johnson
(who takes responsibility for any bugs introduced!).h>hmh?h@hAhhC}q»(hI]hJ]hH]hG]hK]uhLKhMhh8]q¼(hOX)The product structure was implemented by q½…q¾}q¿(h=X)The product structure was implemented by h>h¹ubh“)qÀ}qÁ(h=X`Drew Johnson`_h–Kh>h¹hAh—hC}qÂ(UnameXDrew Johnsonh™Xhttp://pages.uoregon.edu/drewj/qÃhG]hH]hI]hJ]hK]uh8]qÄhOXDrew JohnsonqҁqÆ}qÇ(h=Uh>hÀubaubhOX, based on qȅqÉ}qÊ(h=X, based on h>h¹ubh“)qË}qÌ(h=X`S. Yang's note`_h–Kh>h¹hAh—hC}qÍ(UnameXS. Yang's noteh™Xhttps://arxiv.org/abs/0808.1974qÎhG]hH]hI]hJ]hK]uh8]qÏhOXS. Yang's noteqЅqÑ}qÒ(h=Uh>hËubaubhOX… describing the algorithm of Graber and
Pandharipande.
The program also computes the FZ relations using code copied from A. Pixton's qӅqÔ}qÕ(h=X… describing the algorithm of Graber and
Pandharipande.
The program also computes the FZ relations using code copied from A. Pixton's h>h¹ubh“)qÖ}q×(h=X`tautrel.sage`_h–Kh>h¹hAh—hC}qØ(UnameXtautrel.sageqÙh™X2http://math.mit.edu/~apixton/programs/tautrel.sageqÚhG]hH]hI]hJ]hK]uh8]qÛhOXtautrel.sageq܅qÝ}qÞ(h=Uh>hÖubaubhOX¤ program.
The code was integrated into this package (with some modifications and optimizations) by Drew Johnson
(who takes responsibility for any bugs introduced!).q߅qà}qá(h=X¤ program.
The code was integrated into this package (with some modifications and optimizations) by Drew Johnson
(who takes responsibility for any bugs introduced!).h>h¹ubeubh¬)qâ}qã(h=X1.. _Drew Johnson: http://pages.uoregon.edu/drewj/h¯Kh>hmh?h@hAh°hC}qä(h™hÃhG]qåh0ahH]hI]hJ]hK]qæh
auhLKhMhh8]ubh¬)qç}qè(h=XD.. _tautrel.sage: http://math.mit.edu/~apixton/programs/tautrel.sageh¯Kh>hmh?h@hAh°hC}qé(h™hÚhG]qêh6ahH]hI]hJ]hK]qëhauhLKhMhh8]ubh¬)qì}qí(h=X3.. _S. Yang's note: https://arxiv.org/abs/0808.1974h¯Kh>hmh?h@hAh°hC}qî(h™hÎhG]qïh2ahH]hI]hJ]hK]qðhauhLKhMhh8]ubh~)qñ}qò(h=XqIf you have any questions, comments, or find the code useful, please contact the author: ``werd2.718@gmail.com``.qóh>hmh?h@hAhhC}qô(hI]hJ]hH]hG]hK]uhLKhMhh8]qõ(hOXYIf you have any questions, comments, or find the code useful, please contact the author: qö…q÷}qø(h=XYIf you have any questions, comments, or find the code useful, please contact the author: h>hñubh‡)qù}qú(h=X``werd2.718@gmail.com``hC}qû(hI]hJ]hH]hG]hK]uh>hñh8]qühOXwerd2.718@gmail.comqý…qþ}qÿ(h=Uh>hùubahAhubhOX.…r}r(h=X.h>hñubeubeubhl)r}r(h=Uh>hh?h@hAhohC}r(hI]hJ]hH]hG]rh4ahK]rhauhLKhMhh8]r(ht)r}r	(h=XInstallation and loadingr
h>jh?h@hAhxhC}r(hI]hJ]hH]hG]hK]uhLKhMhh8]rhOXInstallation and loadingr
…r}r(h=j
h>jubaubh~)r}r(h=XžInstallation should be (hopefully) easy. ``strataalgebra`` is distributed as part of the ``mgn`` package on PyPI. `Click here`_ for installation instructions.rh>jh?h@hAhhC}r(hI]hJ]hH]hG]hK]uhLKhMhh8]r(hOX)Installation should be (hopefully) easy. r…r}r(h=X)Installation should be (hopefully) easy. h>jubh‡)r}r(h=X``strataalgebra``hC}r(hI]hJ]hH]hG]hK]uh>jh8]rhOX
strataalgebrar…r}r(h=Uh>jubahAhubhOX is distributed as part of the r…r }r!(h=X is distributed as part of the h>jubh‡)r"}r#(h=X``mgn``hC}r$(hI]hJ]hH]hG]hK]uh>jh8]r%hOXmgnr&…r'}r((h=Uh>j"ubahAhubhOX package on PyPI. r)…r*}r+(h=X package on PyPI. h>jubh“)r,}r-(h=X
`Click here`_h–Kh>jhAh—hC}r.(UnameX
Click hereh™X!https://pypi.python.org/pypi/mgn/r/hG]hH]hI]hJ]hK]uh8]r0hOX
Click herer1…r2}r3(h=Uh>j,ubaubhOX for installation instructions.r4…r5}r6(h=X for installation instructions.h>jubeubh¬)r7}r8(h=X1.. _Click here: https://pypi.python.org/pypi/mgn/h¯Kh>jh?h@hAh°hC}r9(h™j/hG]r:h-ahH]hI]hJ]hK]r;hauhLK!hMhh8]ubh~)r<}r=(h=XEOnce it is installed, you can load it in a Sage session by typing: ::r>h>jh?h@hAhhC}r?(hI]hJ]hH]hG]hK]uhLK#hMhh8]r@hOXBOnce it is installed, you can load it in a Sage session by typing:rA…rB}rC(h=XBOnce it is installed, you can load it in a Sage session by typing:h>j<ubaubcdocutils.nodes
literal_block
rD)rE}rF(h=X!sage: from strataalgebra import *h>jh?h@hAU
literal_blockrGhC}rH(hEhFhG]hH]hI]hJ]hK]uhLK%hMhh8]rIhOX!sage: from strataalgebra import *rJ…rK}rL(h=Uh>jEubaubeubhl)rM}rN(h=Uh>hh?h@hAhohC}rO(hI]hJ]hH]hG]rPh5ahK]rQhauhLK(hMhh8]rR(ht)rS}rT(h=X
How to userUh>jMh?h@hAhxhC}rV(hI]hJ]hH]hG]hK]uhLK(hMhh8]rWhOX
How to userX…rY}rZ(h=jUh>jSubaubcsphinx.addnodes
index
r[)r\}r](h=Uh>jMh?NhAUindexr^hC}r_(hG]hH]hI]hJ]hK]Uentries]r`(UsingleraX&StrataAlgebra (class in strataalgebra)hUNtrbauhLNhMhh8]ubcsphinx.addnodes
desc
rc)rd}re(h=Uh>jMh?NhAUdescrfhC}rg(Unoindexrh‰UdomainriXpyrjhG]hH]hI]hJ]hK]UobjtyperkXclassrlUdesctypermjluhLNhMhh8]rn(csphinx.addnodes
desc_signature
ro)rp}rq(h=X3StrataAlgebra(base, g, markings=(), make_vars=True)h>jdh?X^/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebrarrhAUdesc_signaturershC}rt(hG]ruhaUmodulervcdocutils.nodes
reprunicode
rwX
strataalgebrarx…ry}rzbhH]hI]hJ]hK]r{haUfullnamer|X
StrataAlgebrar}Uclassr~UUfirstr‰uhLNhMhh8]r€(csphinx.addnodes
desc_annotation
r)r‚}rƒ(h=Xclass h>jph?jrhAUdesc_annotationr„hC}r…(hI]hJ]hH]hG]hK]uhLNhMhh8]r†hOXclass r‡…rˆ}r‰(h=Uh>j‚ubaubcsphinx.addnodes
desc_addname
rŠ)r‹}rŒ(h=Xstrataalgebra.h>jph?jrhAUdesc_addnamerhC}rŽ(hI]hJ]hH]hG]hK]uhLNhMhh8]rhOXstrataalgebra.r…r‘}r’(h=Uh>j‹ubaubcsphinx.addnodes
desc_name
r“)r”}r•(h=j}h>jph?jrhAU	desc_namer–hC}r—(hI]hJ]hH]hG]hK]uhLNhMhh8]r˜hOX
StrataAlgebrar™…rš}r›(h=Uh>j”ubaubcsphinx.addnodes
desc_parameterlist
rœ)r}rž(h=X$base, g, markings=(), make_vars=Trueh>jph?jrhAUdesc_parameterlistrŸhC}r (hI]hJ]hH]hG]hK]uhLNhMhh8]r¡(csphinx.addnodes
desc_parameter
r¢)r£}r¤(h=XbasehC}r¥(hI]hJ]hH]hG]hK]uh>jh8]r¦hOXbaser§…r¨}r©(h=Uh>j£ubahAUdesc_parameterrªubj¢)r«}r¬(h=XghC}r­(hI]hJ]hH]hG]hK]uh>jh8]r®hOXg…r¯}r°(h=Uh>j«ubahAjªubj¢)r±}r²(h=Xmarkings=()hC}r³(hI]hJ]hH]hG]hK]uh>jh8]r´hOXmarkings=()rµ…r¶}r·(h=Uh>j±ubahAjªubj¢)r¸}r¹(h=Xmake_vars=TruehC}rº(hI]hJ]hH]hG]hK]uh>jh8]r»hOXmake_vars=Truer¼…r½}r¾(h=Uh>j¸ubahAjªubeubeubcsphinx.addnodes
desc_content
r¿)rÀ}rÁ(h=Uh>jdh?jrhAUdesc_contentrÂhC}rÃ(hI]hJ]hH]hG]hK]uhLNhMhh8]rÄ(h~)rÅ}rÆ(h=X'A ring representing the Strata algebra.rÇh>jÀh?X^/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebrarÈhAhhC}rÉ(hI]hJ]hH]hG]hK]uhLKhMhh8]rÊhOX'A ring representing the Strata algebra.rË…rÌ}rÍ(h=jÇh>jÅubaubcdocutils.nodes
field_list
rÎ)rÏ}rÐ(h=Uh>jÀh?NhAU
field_listrÑhC}rÒ(hI]hJ]hH]hG]hK]uhLNhMhh8]rÓcdocutils.nodes
field
rÔ)rÕ}rÖ(h=UhC}r×(hI]hJ]hH]hG]hK]uh>jÏh8]rØ(cdocutils.nodes
field_name
rÙ)rÚ}rÛ(h=X
Parametersh>jÕh?jrhAU
field_namerÜhC}rÝ(hI]hJ]hH]hG]hK]uhLKh8]rÞhOX
Parametersrß…rà}rá(h=Uh>jÚubaubcdocutils.nodes
field_body
râ)rã}rä(h=UhC}rå(hI]hJ]hH]hG]hK]uh>jÕh8]ræcdocutils.nodes
bullet_list
rç)rè}ré(h=UhC}rê(hI]hJ]hH]hG]hK]uh>jãh8]rë(cdocutils.nodes
list_item
rì)rí}rî(h=UhC}rï(hI]hJ]hH]hG]hK]uh>jèh8]rðh~)rñ}rò(h=XJbase (Ring) -- The ring of coefficients you want to work over, usually QQ.hC}ró(hI]hJ]hH]hG]hK]uh>jíh8]rô(csphinx.addnodes
literal_strong
rõ)rö}r÷(h=XbasehC}rø(hG]hH]UrefspecificrùˆhI]hJ]hK]uh>jñh8]rúhOXbaserû…rü}rý(h=Uh>jöubahAUliteral_strongrþubhOX (rÿ…r}r(h=Uh>jñubcsphinx.addnodes
pending_xref
r)r}r(h=UhC}r(UreftypeUobjrjùˆU	reftargetXRingrU	refdomainjjhG]hH]Urefexplicit‰hI]hJ]hK]uh>jñh8]rcsphinx.addnodes
literal_emphasis
r	)r
}r(h=jhC}r(hI]hJ]hH]hG]hK]uh>jh8]r
hOXRingr…r}r(h=Uh>j
ubahAUliteral_emphasisrubahAUpending_xrefrubhOX)…r}r(h=Uh>jñubhOX -- r…r}r(h=Uh>jñubhOX8The ring of coefficients you want to work over, usually r…r}r(h=X8The ring of coefficients you want to work over, usually h>jñubh‡)r}r(h=X``QQ``hC}r(hI]hJ]hH]hG]hK]uh>jñh8]rhOXQQr…r }r!(h=Uh>jubahAhubhOX.…r"}r#(h=X.h>jñubehAhubahAU	list_itemr$ubjì)r%}r&(h=UhC}r'(hI]hJ]hH]hG]hK]uh>jèh8]r(h~)r)}r*(h=Xg (int) -- The genus.hC}r+(hI]hJ]hH]hG]hK]uh>j%h8]r,(jõ)r-}r.(h=XghC}r/(hG]hH]jùˆhI]hJ]hK]uh>j)h8]r0hOXg…r1}r2(h=Uh>j-ubahAjþubhOX (r3…r4}r5(h=Uh>j)ubj)r6}r7(h=UhC}r8(UreftypejjùˆU	reftargetXintr9U	refdomainjjhG]hH]Urefexplicit‰hI]hJ]hK]uh>j)h8]r:j	)r;}r<(h=j9hC}r=(hI]hJ]hH]hG]hK]uh>j6h8]r>hOXintr?…r@}rA(h=Uh>j;ubahAjubahAjubhOX)…rB}rC(h=Uh>j)ubhOX -- rD…rE}rF(h=Uh>j)ubhOX
The genus.rG…rH}rI(h=X
The genus.h>j)ubehAhubahAj$ubjì)rJ}rK(h=UhC}rL(hI]hJ]hH]hG]hK]uh>jèh8]rMh~)rN}rO(h=Xkmarkings (tuple) -- The markings should be positive integers. Repeats are allowed. Defaults to no markings.hC}rP(hI]hJ]hH]hG]hK]uh>jJh8]rQ(jõ)rR}rS(h=XmarkingshC}rT(hG]hH]jùˆhI]hJ]hK]uh>jNh8]rUhOXmarkingsrV…rW}rX(h=Uh>jRubahAjþubhOX (rY…rZ}r[(h=Uh>jNubj)r\}r](h=UhC}r^(UreftypejjùˆU	reftargetXtupler_U	refdomainjjhG]hH]Urefexplicit‰hI]hJ]hK]uh>jNh8]r`j	)ra}rb(h=j_hC}rc(hI]hJ]hH]hG]hK]uh>j\h8]rdhOXtuplere…rf}rg(h=Uh>jaubahAjubahAjubhOX)…rh}ri(h=Uh>jNubhOX -- rj…rk}rl(h=Uh>jNubhOXWThe markings should be positive integers. Repeats are allowed. Defaults to no markings.rm…rn}ro(h=XWThe markings should be positive integers. Repeats are allowed. Defaults to no markings.h>jNubehAhubahAj$ubjì)rp}rq(h=UhC}rr(hI]hJ]hH]hG]hK]uh>jèh8]rsh~)rt}ru(h=X´make_vars (bool) -- Defaults to True. If True, creates variables ps, ps_, ka1, ... , ka{d} (where d is the dimension of the moduli space) that can be used to create basis elements.hC}rv(hI]hJ]hH]hG]hK]uh>jph8]rw(jõ)rx}ry(h=X	make_varshC}rz(hG]hH]jùˆhI]hJ]hK]uh>jth8]r{hOX	make_varsr|…r}}r~(h=Uh>jxubahAjþubhOX (r…r€}r(h=Uh>jtubj)r‚}rƒ(h=UhC}r„(UreftypejjùˆU	reftargetXboolr…U	refdomainjjhG]hH]Urefexplicit‰hI]hJ]hK]uh>jth8]r†j	)r‡}rˆ(h=j…hC}r‰(hI]hJ]hH]hG]hK]uh>j‚h8]rŠhOXboolr‹…rŒ}r(h=Uh>j‡ubahAjubahAjubhOX)…rŽ}r(h=Uh>jtubhOX -- r…r‘}r’(h=Uh>jtubhOX-Defaults to True. If True, creates variables r“…r”}r•(h=X-Defaults to True. If True, creates variables h>jtubh‡)r–}r—(h=X``ps``hC}r˜(hI]hJ]hH]hG]hK]uh>jth8]r™hOXpsrš…r›}rœ(h=Uh>j–ubahAhubhOX, r…rž}rŸ(h=X, h>jtubh‡)r }r¡(h=X``ps_``hC}r¢(hI]hJ]hH]hG]hK]uh>jth8]r£hOXps_r¤…r¥}r¦(h=Uh>j ubahAhubhOX, r§…r¨}r©(h=X, h>jtubh‡)rª}r«(h=X``ka1``hC}r¬(hI]hJ]hH]hG]hK]uh>jth8]r­hOXka1r®…r¯}r°(h=Uh>jªubahAhubhOX, ... , r±…r²}r³(h=X, ... , h>jtubh‡)r´}rµ(h=X	``ka{d}``hC}r¶(hI]hJ]hH]hG]hK]uh>jth8]r·hOXka{d}r¸…r¹}rº(h=Uh>j´ubahAhubhOXZ (where d is the dimension of the moduli space) that can be used to create basis elements.r»…r¼}r½(h=XZ (where d is the dimension of the moduli space) that can be used to create basis elements.h>jtubehAhubahAj$ubehAUbullet_listr¾ubahAU
field_bodyr¿ubehAUfieldrÀubaubh~)rÁ}rÂ(h=XFirst import the module: ::rÃh>jÀh?jÈhAhhC}rÄ(hI]hJ]hH]hG]hK]uhLKhMhh8]rÅhOXFirst import the module:rÆ…rÇ}rÈ(h=XFirst import the module:h>jÁubaubjD)rÉ}rÊ(h=X!sage: from strataalgebra import *h>jÀh?jÈhAjGhC}rË(hEhFhG]hH]hI]hJ]hK]uhLKhMhh8]rÌhOX!sage: from strataalgebra import *rÍ…rÎ}rÏ(h=Uh>jÉubaubh~)rÐ}rÑ(h=X&Construct a :class:`StrataAlgebra`: ::rÒh>jÀh?jÈhAhhC}rÓ(hI]hJ]hH]hG]hK]uhLKhMhh8]rÔ(hOXConstruct a rÕ…rÖ}r×(h=XConstruct a h>jÐubj)rØ}rÙ(h=X:class:`StrataAlgebra`rÚh>jÐh?h@hAjhC}rÛ(UreftypeXclassUrefwarnr܉U	reftargetrÝX
StrataAlgebraU	refdomainXpyrÞhG]hH]Urefexplicit‰hI]hJ]hK]UrefdocrßhbUpy:classràj}U	py:moduleráNuhLKh8]râh‡)rã}rä(h=jÚhC}rå(hI]hJ]ræ(UxrefrçjÞXpy-classrèehH]hG]hK]uh>jØh8]réhOX
StrataAlgebrarꅁrë}rì(h=Uh>jãubahAhubaubhOX:…rí}rî(h=X:h>jÐubeubjD)rï}rð(h=Xlsage: SA = StrataAlgebra(QQ,1,(1,2)); SA
Strata algebra with genus 1 and markings (1, 2) over Rational Fieldh>jÀh?jÈhAjGhC}rñ(hEhFhG]hH]hI]hJ]hK]uhLKhMhh8]ròhOXlsage: SA = StrataAlgebra(QQ,1,(1,2)); SA
Strata algebra with genus 1 and markings (1, 2) over Rational Fieldró…rô}rõ(h=Uh>jïubaubh~)rö}r÷(h=XSPrint the basis elements in a certain codimension, with their (arbitrary) index: ::røh>jÀh?jÈhAhhC}rù(hI]hJ]hH]hG]hK]uhLKhMhh8]rúhOXPPrint the basis elements in a certain codimension, with their (arbitrary) index:rû…rü}rý(h=XPPrint the basis elements in a certain codimension, with their (arbitrary) index:h>jöubaubjD)rþ}rÿ(h=Xusage: SA.print_strata(2)
**** i: 0
[0 1 2 0 0]
[0 0 0 2 1]
[0 1 1 0 1]
<BLANKLINE>
**** i: 1
[0 1 2 0 0]
[0 0 1 1 1]
[0 1 0 1 1]
<BLANKLINE>
**** i: 2
[  0   1   2   0]
[ka1   1   1   2]
<BLANKLINE>
**** i: 3
[     0      1      2      0]
[     0      1      1 ps + 2]
<BLANKLINE>
**** i: 4
[     0      1      2      0]
[     0 ps + 1      1      2]
<BLANKLINE>
**** i: 5
[     0      1      2      0]
[     0      1 ps + 1      2]
<BLANKLINE>
**** i: 6
[      0       1       2       0]
[      0       1       1       1]
[ka1 + 1       0       0       1]
<BLANKLINE>
**** i: 7
[     0      1      2      0]
[     0      1      1      1]
[     1      0      0 ps + 1]
<BLANKLINE>
**** i: 8
ka2
<BLANKLINE>
**** i: 9
ka1^2
<BLANKLINE>
**** i: 10
ka1*ps1
<BLANKLINE>
**** i: 11
ka1*ps2
<BLANKLINE>
**** i: 12
ps1^2
<BLANKLINE>
**** i: 13
ps1*ps2
<BLANKLINE>
**** i: 14
ps2^2
<BLANKLINE>h>jÀh?jÈhAjGhC}r(hEhFhG]hH]hI]hJ]hK]uhLKhMhh8]rhOXusage: SA.print_strata(2)
**** i: 0
[0 1 2 0 0]
[0 0 0 2 1]
[0 1 1 0 1]
<BLANKLINE>
**** i: 1
[0 1 2 0 0]
[0 0 1 1 1]
[0 1 0 1 1]
<BLANKLINE>
**** i: 2
[  0   1   2   0]
[ka1   1   1   2]
<BLANKLINE>
**** i: 3
[     0      1      2      0]
[     0      1      1 ps + 2]
<BLANKLINE>
**** i: 4
[     0      1      2      0]
[     0 ps + 1      1      2]
<BLANKLINE>
**** i: 5
[     0      1      2      0]
[     0      1 ps + 1      2]
<BLANKLINE>
**** i: 6
[      0       1       2       0]
[      0       1       1       1]
[ka1 + 1       0       0       1]
<BLANKLINE>
**** i: 7
[     0      1      2      0]
[     0      1      1      1]
[     1      0      0 ps + 1]
<BLANKLINE>
**** i: 8
ka2
<BLANKLINE>
**** i: 9
ka1^2
<BLANKLINE>
**** i: 10
ka1*ps1
<BLANKLINE>
**** i: 11
ka1*ps2
<BLANKLINE>
**** i: 12
ps1^2
<BLANKLINE>
**** i: 13
ps1*ps2
<BLANKLINE>
**** i: 14
ps2^2
<BLANKLINE>r…r}r(h=Uh>jþubaubh~)r}r(h=XZClasses that are monomials in :math:`\psi` and :math:`\kappa` have self-explanatory names.rh>jÀh?jÈhAhhC}r(hI]hJ]hH]hG]hK]uhLKOhMhh8]r	(hOXClasses that are monomials in r
…r}r(h=XClasses that are monomials in h>jubcsphinx.ext.mathbase
math
r
)r}r(h=UhC}r(UlatexX\psihG]hH]hI]hJ]hK]uh>jh8]hAUmathrubhOX and r…r}r(h=X and h>jubj
)r}r(h=UhC}r(UlatexX\kappahG]hH]hI]hJ]hK]uh>jh8]hAjubhOX have self-explanatory names.r…r}r(h=X have self-explanatory names.h>jubeubh~)r}r(h=X>More complicated classes are displayed in a matrix as follows:rh>jÀh?jÈhAhhC}r(hI]hJ]hH]hG]hK]uhLKQhMhh8]rhOX>More complicated classes are displayed in a matrix as follows:r …r!}r"(h=jh>jubaubh~)r#}r$(h=X†Each row after the first corresponds to a vertex of the graph.
The constant term in the entry in the first column is the genus.
The kappa classes also appear in the first column.
Each column beyond the first corresponds to an edge or a half edge.
The entry in the first row gives the label of the half edge, or ``0`` for a full edge.
The constant term of the entry in location (v,e) gives the number of times (0, 1, or 2) that edge e touches vertex v.
A ``ps`` in entry (v,e) means a :math:`\psi`-class associated to the half edge coming out of v.
A ``ps_`` may occur when there is a loop at the vertex.
The entry in the top left is just padding.h>jÀh?jÈhAhhC}r%(hI]hJ]hH]hG]hK]uhLKShMhh8]r&(hOX7Each row after the first corresponds to a vertex of the graph.
The constant term in the entry in the first column is the genus.
The kappa classes also appear in the first column.
Each column beyond the first corresponds to an edge or a half edge.
The entry in the first row gives the label of the half edge, or r'…r(}r)(h=X7Each row after the first corresponds to a vertex of the graph.
The constant term in the entry in the first column is the genus.
The kappa classes also appear in the first column.
Each column beyond the first corresponds to an edge or a half edge.
The entry in the first row gives the label of the half edge, or h>j#ubh‡)r*}r+(h=X``0``hC}r,(hI]hJ]hH]hG]hK]uh>j#h8]r-hOX0…r.}r/(h=Uh>j*ubahAhubhOXŠ for a full edge.
The constant term of the entry in location (v,e) gives the number of times (0, 1, or 2) that edge e touches vertex v.
A r0…r1}r2(h=XŠ for a full edge.
The constant term of the entry in location (v,e) gives the number of times (0, 1, or 2) that edge e touches vertex v.
A h>j#ubh‡)r3}r4(h=X``ps``hC}r5(hI]hJ]hH]hG]hK]uh>j#h8]r6hOXpsr7…r8}r9(h=Uh>j3ubahAhubhOX in entry (v,e) means a r:…r;}r<(h=X in entry (v,e) means a h>j#ubj
)r=}r>(h=UhC}r?(UlatexX\psihG]hH]hI]hJ]hK]uh>j#h8]hAjubhOX6-class associated to the half edge coming out of v.
A r@…rA}rB(h=X6-class associated to the half edge coming out of v.
A h>j#ubh‡)rC}rD(h=X``ps_``hC}rE(hI]hJ]hH]hG]hK]uh>j#h8]rFhOXps_rG…rH}rI(h=Uh>jCubahAhubhOXY may occur when there is a loop at the vertex.
The entry in the top left is just padding.rJ…rK}rL(h=XY may occur when there is a loop at the vertex.
The entry in the top left is just padding.h>j#ubeubh~)rM}rN(h=XÄTo create classes, you can use their codimension and index.
Boundary strata and psi-kappa monomials are represented by their special names,
and the rest are represented by ``s_{codim},{index}`` ::h>jÀh?jÈhAhhC}rO(hI]hJ]hH]hG]hK]uhLK]hMhh8]rP(hOX¬To create classes, you can use their codimension and index.
Boundary strata and psi-kappa monomials are represented by their special names,
and the rest are represented by rQ…rR}rS(h=X¬To create classes, you can use their codimension and index.
Boundary strata and psi-kappa monomials are represented by their special names,
and the rest are represented by h>jMubh‡)rT}rU(h=X``s_{codim},{index}``hC}rV(hI]hJ]hH]hG]hK]uh>jMh8]rWhOXs_{codim},{index}rX…rY}rZ(h=Uh>jTubahAhubeubjD)r[}r\(h=Xosage: a = SA(2, 1); a
s_2,1
sage: b = SA(2, 7); b
s_2,7
sage: c = SA(2, 11); c
ka1*ps2
sage: d = SA(1,1); d
Dg1h>jÀh?jÈhAjGhC}r](hEhFhG]hH]hI]hJ]hK]uhLKehMhh8]r^hOXosage: a = SA(2, 1); a
s_2,1
sage: b = SA(2, 7); b
s_2,7
sage: c = SA(2, 11); c
ka1*ps2
sage: d = SA(1,1); d
Dg1r_…r`}ra(h=Uh>j[ubaubh~)rb}rc(h=X(Vector space arithmetic is supported. ::rdh>jÀh?jÈhAhhC}re(hI]hJ]hH]hG]hK]uhLKjhMhh8]rfhOX%Vector space arithmetic is supported.rg…rh}ri(h=X%Vector space arithmetic is supported.h>jbubaubjD)rj}rk(h=X9sage: 3*b
3*s_2,7
sage: a*72 - b/17
72*s_2,1 - 1/17*s_2,7h>jÀh?jÈhAjGhC}rl(hEhFhG]hH]hI]hJ]hK]uhLKphMhh8]rmhOX9sage: 3*b
3*s_2,7
sage: a*72 - b/17
72*s_2,1 - 1/17*s_2,7rn…ro}rp(h=Uh>jjubaubh~)rq}rr(h=XoUse :meth:`~strataalgebra.StrataAlgebra.get_stratum` if you need to know what an unamed basis element means. ::rsh>jÀh?jÈhAhhC}rt(hI]hJ]hH]hG]hK]uhLKqhMhh8]ru(hOXUse rv…rw}rx(h=XUse h>jqubj)ry}rz(h=X0:meth:`~strataalgebra.StrataAlgebra.get_stratum`r{h>jqh?NhAjhC}r|(UreftypeXmethj܉jÝX'strataalgebra.StrataAlgebra.get_stratumU	refdomainXpyr}hG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]r~h‡)r}r€(h=j{hC}r(hI]hJ]r‚(jçj}Xpy-methrƒehH]hG]hK]uh>jyh8]r„hOX
get_stratum()r……r†}r‡(h=Uh>jubahAhubaubhOX8 if you need to know what an unamed basis element means.rˆ…r‰}rŠ(h=X8 if you need to know what an unamed basis element means.h>jqubeubjD)r‹}rŒ(h=Xssage: SA.get_stratum(2,7)
[     0      1      2      0]
[     0      1      1      1]
[     1      0      0 ps + 1]h>jÀh?jÈhAjGhC}r(hEhFhG]hH]hI]hJ]hK]uhLKwhMhh8]rŽhOXssage: SA.get_stratum(2,7)
[     0      1      2      0]
[     0      1      1      1]
[     1      0      0 ps + 1]r…r}r‘(h=Uh>j‹ubaubh~)r’}r“(h=XYou can construct :math:`\psi,\;\kappa` monomials and boundary divisors with the methods :meth:`~strataalgebra.StrataAlgebra.kappa`, :meth:`~strataalgebra.StrataAlgebra.psi`,
:meth:`~strataalgebra.StrataAlgebra.boundary`, and :meth:`~strataalgebra.StrataAlgebra.irr`.h>jÀh?jÈhAhhC}r”(hI]hJ]hH]hG]hK]uhLKxhMhh8]r•(hOXYou can construct r–…r—}r˜(h=XYou can construct h>j’ubj
)r™}rš(h=UhC}r›(UlatexX
\psi,\;\kappahG]hH]hI]hJ]hK]uh>j’h8]hAjubhOX2 monomials and boundary divisors with the methods rœ…r}rž(h=X2 monomials and boundary divisors with the methods h>j’ubj)rŸ}r (h=X*:meth:`~strataalgebra.StrataAlgebra.kappa`r¡h>j’h?NhAjhC}r¢(UreftypeXmethj܉jÝX!strataalgebra.StrataAlgebra.kappaU	refdomainXpyr£hG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]r¤h‡)r¥}r¦(h=j¡hC}r§(hI]hJ]r¨(jçj£Xpy-methr©ehH]hG]hK]uh>jŸh8]rªhOXkappa()r«…r¬}r­(h=Uh>j¥ubahAhubaubhOX, r®…r¯}r°(h=X, h>j’ubj)r±}r²(h=X(:meth:`~strataalgebra.StrataAlgebra.psi`r³h>j’h?NhAjhC}r´(UreftypeXmethj܉jÝXstrataalgebra.StrataAlgebra.psiU	refdomainXpyrµhG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]r¶h‡)r·}r¸(h=j³hC}r¹(hI]hJ]rº(jçjµXpy-methr»ehH]hG]hK]uh>j±h8]r¼hOXpsi()r½…r¾}r¿(h=Uh>j·ubahAhubaubhOX,
rÀ…rÁ}rÂ(h=X,
h>j’ubj)rÃ}rÄ(h=X-:meth:`~strataalgebra.StrataAlgebra.boundary`rÅh>j’h?NhAjhC}rÆ(UreftypeXmethj܉jÝX$strataalgebra.StrataAlgebra.boundaryU	refdomainXpyrÇhG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]rÈh‡)rÉ}rÊ(h=jÅhC}rË(hI]hJ]rÌ(jçjÇXpy-methrÍehH]hG]hK]uh>jÃh8]rÎhOX
boundary()rÏ…rÐ}rÑ(h=Uh>jÉubahAhubaubhOX, and rÒ…rÓ}rÔ(h=X, and h>j’ubj)rÕ}rÖ(h=X(:meth:`~strataalgebra.StrataAlgebra.irr`r×h>j’h?NhAjhC}rØ(UreftypeXmethj܉jÝXstrataalgebra.StrataAlgebra.irrU	refdomainXpyrÙhG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]rÚh‡)rÛ}rÜ(h=j×hC}rÝ(hI]hJ]rÞ(jçjÙXpy-methrßehH]hG]hK]uh>jÕh8]ràhOXirr()rᅁrâ}rã(h=Uh>jÛubahAhubaubhOX.…rä}rå(h=X.h>j’ubeubh~)ræ}rç(h=XvYou can construct an element using the matrix notation. Just pass a list of lists into your :class:`StrataAlgebra`. ::rèh>jÀh?jÈhAhhC}ré(hI]hJ]hH]hG]hK]uhLK{hMhh8]rê(hOX\You can construct an element using the matrix notation. Just pass a list of lists into your r녁rì}rí(h=X\You can construct an element using the matrix notation. Just pass a list of lists into your h>jæubj)rî}rï(h=X:class:`StrataAlgebra`rðh>jæh?NhAjhC}rñ(UreftypeXclassj܉jÝX
StrataAlgebraU	refdomainXpyròhG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]róh‡)rô}rõ(h=jðhC}rö(hI]hJ]r÷(jçjòXpy-classrøehH]hG]hK]uh>jîh8]rùhOX
StrataAlgebrarú…rû}rü(h=Uh>jôubahAhubaubhOX.…rý}rþ(h=X.h>jæubeubjD)rÿ}r(h=X¦sage: var('ps') #This is usually done automatically, but we have to do it manually here for the dotests to work.
ps
sage: SA([[0,1,2,0],[1,0,0,ps+1],[0,1,1,1]])
s_2,7h>jÀh?jÈhAjGhC}r(hEhFhG]hH]hI]hJ]hK]uhLKhMhh8]rhOX¦sage: var('ps') #This is usually done automatically, but we have to do it manually here for the dotests to work.
ps
sage: SA([[0,1,2,0],[1,0,0,ps+1],[0,1,1,1]])
s_2,7r…r}r(h=Uh>jÿubaubh~)r}r(h=X%Here is an example of the ``ps_``: ::rh>jÀh?jÈhAhhC}r	(hI]hJ]hH]hG]hK]uhLK‚hMhh8]r
(hOXHere is an example of the r…r}r
(h=XHere is an example of the h>jubh‡)r}r(h=X``ps_``hC}r(hI]hJ]hH]hG]hK]uh>jh8]rhOXps_r…r}r(h=Uh>jubahAhubhOX:…r}r(h=X:h>jubeubjD)r}r(h=Xåsage: s = StrataAlgebra(QQ,2,())
sage: s.get_stratum(3,9)
[       0        0]
[       1 ps^2 + 2]
sage: s.get_stratum(3,10)
[         0          0]
[         1 ps*ps_ + 2]
sage: var('ps_')
ps_
sage: s([[0,0],[1,ps_*ps+2]])
s_3,10h>jÀh?jÈhAjGhC}r(hEhFhG]hH]hI]hJ]hK]uhLKˆhMhh8]rhOXåsage: s = StrataAlgebra(QQ,2,())
sage: s.get_stratum(3,9)
[       0        0]
[       1 ps^2 + 2]
sage: s.get_stratum(3,10)
[         0          0]
[         1 ps*ps_ + 2]
sage: var('ps_')
ps_
sage: s([[0,0],[1,ps_*ps+2]])
s_3,10r…r}r(h=Uh>jubaubh~)r}r(h=X>One of the main features is the computation of the product. ::r h>jÀh?jÈhAhhC}r!(hI]hJ]hH]hG]hK]uhLKhMhh8]r"hOX;One of the main features is the computation of the product.r#…r$}r%(h=X;One of the main features is the computation of the product.h>jubaubjD)r&}r'(h=Xsage: a*b
0h>jÀh?jÈhAjGhC}r((hEhFhG]hH]hI]hJ]hK]uhLK–hMhh8]r)hOXsage: a*b
0r*…r+}r,(h=Uh>j&ubaubh~)r-}r.(h=XJOf course, the codimension was too big. Lets do some less trivial ones. ::r/h>jÀh?jÈhAhhC}r0(hI]hJ]hH]hG]hK]uhLK•hMhh8]r1hOXGOf course, the codimension was too big. Lets do some less trivial ones.r2…r3}r4(h=XGOf course, the codimension was too big. Lets do some less trivial ones.h>j-ubaubjD)r5}r6(h=Xqsage: SA = StrataAlgebra(QQ,1,(1,2,3)); SA
Strata algebra with genus 1 and markings (1, 2, 3) over Rational Field
sage: SA.psi(1) * SA.psi(2)
ps1*ps2
sage: SA.get_stratum(2,7) #just so you can see what it is
[0 1 2 3 0 0]
[0 0 1 1 1 0]
[0 1 0 0 1 1]
[1 0 0 0 0 1]
sage: SA(2,7)*SA.psi(1)
0
sage: SA(2,7)*SA.kappa(1)
s_3,36
sage: SA.get_stratum(3,36)
[      0       1       2       3       0       0]
[      0       0       1       1       1       0]
[      0       1       0       0       1       1]
[ka1 + 1       0       0       0       0       1]
sage: SA.irr()^3
6*s_3,4 - 3*s_3,15 - 3*s_3,23 - 3*s_3,35 + s_3,48 + s_3,49h>jÀh?jÈhAjGhC}r7(hEhFhG]hH]hI]hJ]hK]uhLK›hMhh8]r8hOXqsage: SA = StrataAlgebra(QQ,1,(1,2,3)); SA
Strata algebra with genus 1 and markings (1, 2, 3) over Rational Field
sage: SA.psi(1) * SA.psi(2)
ps1*ps2
sage: SA.get_stratum(2,7) #just so you can see what it is
[0 1 2 3 0 0]
[0 0 1 1 1 0]
[0 1 0 0 1 1]
[1 0 0 0 0 1]
sage: SA(2,7)*SA.psi(1)
0
sage: SA(2,7)*SA.kappa(1)
s_3,36
sage: SA.get_stratum(3,36)
[      0       1       2       3       0       0]
[      0       0       1       1       1       0]
[      0       1       0       0       1       1]
[ka1 + 1       0       0       0       0       1]
sage: SA.irr()^3
6*s_3,4 - 3*s_3,15 - 3*s_3,23 - 3*s_3,35 + s_3,48 + s_3,49r9…r:}r;(h=Uh>j5ubaubh~)r<}r=(h=X6Everything should work with distributive laws, etc. ::r>h>jÀh?jÈhAhhC}r?(hI]hJ]hH]hG]hK]uhLK¬hMhh8]r@hOX3Everything should work with distributive laws, etc.rA…rB}rC(h=X3Everything should work with distributive laws, etc.h>j<ubaubjD)rD}rE(h=X_sage: SA.kappa(2)*(3*SA.psi(3)-SA(1,3)) == -SA(1,3) *SA.kappa(2) + SA.psi(3)*SA.kappa(2)*3
Trueh>jÀh?jÈhAjGhC}rF(hEhFhG]hH]hI]hJ]hK]uhLK²hMhh8]rGhOX_sage: SA.kappa(2)*(3*SA.psi(3)-SA(1,3)) == -SA(1,3) *SA.kappa(2) + SA.psi(3)*SA.kappa(2)*3
TruerH…rI}rJ(h=Uh>jDubaubh~)rK}rL(h=X It should work over any ring. ::rMh>jÀh?jÈhAhhC}rN(hI]hJ]hH]hG]hK]uhLK±hMhh8]rOhOXIt should work over any ring.rP…rQ}rR(h=XIt should work over any ring.h>jKubaubjD)rS}rT(h=X'sage: R.<t> = PolynomialRing(ZZ)
sage: SA = StrataAlgebra(R, 2); SA
Strata algebra with genus 2 and markings () over Univariate Polynomial Ring in t over Integer Ring
sage: (3+t)*SA.kappa(1) + t^2 + t*SA.kappa(1)
t^2*one + (2*t+3)*ka1
sage: _^2
t^4*one + (4*t^3+6*t^2)*ka1 + (4*t^2+12*t+9)*ka1^2h>jÀh?jÈhAjGhC}rU(hEhFhG]hH]hI]hJ]hK]uhLK·hMhh8]rVhOX'sage: R.<t> = PolynomialRing(ZZ)
sage: SA = StrataAlgebra(R, 2); SA
Strata algebra with genus 2 and markings () over Univariate Polynomial Ring in t over Integer Ring
sage: (3+t)*SA.kappa(1) + t^2 + t*SA.kappa(1)
t^2*one + (2*t+3)*ka1
sage: _^2
t^4*one + (4*t^3+6*t^2)*ka1 + (4*t^2+12*t+9)*ka1^2rW…rX}rY(h=Uh>jSubaubh~)rZ}r[(h=X3There may be problems over a non-divisible ring. ::r\h>jÀh?jÈhAhhC}r](hI]hJ]hH]hG]hK]uhLK¼hMhh8]r^hOX0There may be problems over a non-divisible ring.r_…r`}ra(h=X0There may be problems over a non-divisible ring.h>jZubaubjD)rb}rc(h=Xßsage: SA.irr()
Traceback (most recent call last):
...
TypeError: unsupported operand parent(s) for *: 'Rational Field' and 'Strata algebra with genus 2 and markings () over Univariate Polynomial Ring in t over Integer Ring'h>jÀh?jÈhAjGhC}rd(hEhFhG]hH]hI]hJ]hK]uhLKÂhMhh8]rehOXßsage: SA.irr()
Traceback (most recent call last):
...
TypeError: unsupported operand parent(s) for *: 'Rational Field' and 'Strata algebra with genus 2 and markings () over Univariate Polynomial Ring in t over Integer Ring'rf…rg}rh(h=Uh>jbubaubh~)ri}rj(h=X³Also, repeated names of the markings are allowed. The following corresponds to :math:`\overline{\mathcal M}_{1,2}/S_2`.
Compare the codimension 2 strata to our earlier example. ::h>jÀh?jÈhAhhC}rk(hI]hJ]hH]hG]hK]uhLKÃhMhh8]rl(hOXOAlso, repeated names of the markings are allowed. The following corresponds to rm…rn}ro(h=XOAlso, repeated names of the markings are allowed. The following corresponds to h>jiubj
)rp}rq(h=UhC}rr(UlatexX\overline{\mathcal M}_{1,2}/S_2hG]hH]hI]hJ]hK]uh>jih8]hAjubhOX:.
Compare the codimension 2 strata to our earlier example.rs…rt}ru(h=X:.
Compare the codimension 2 strata to our earlier example.h>jiubeubjD)rv}rw(h=XSsage: SA = StrataAlgebra(QQ,1,(1,1)); SA
Strata algebra with genus 1 and markings (1, 1) over Rational Field
sage: SA.print_strata(2)
**** i: 0
[0 1 1 0 0]
[0 0 0 2 1]
[0 1 1 0 1]
<BLANKLINE>
**** i: 1
[0 1 1 0 0]
[0 0 1 1 1]
[0 1 0 1 1]
<BLANKLINE>
**** i: 2
[  0   1   1   0]
[ka1   1   1   2]
<BLANKLINE>
**** i: 3
[     0      1      1      0]
[     0      1      1 ps + 2]
<BLANKLINE>
**** i: 4
[     0      1      1      0]
[     0 ps + 1      1      2]
<BLANKLINE>
**** i: 5
[      0       1       1       0]
[      0       1       1       1]
[ka1 + 1       0       0       1]
<BLANKLINE>
**** i: 6
[     0      1      1      0]
[     0      1      1      1]
[     1      0      0 ps + 1]
<BLANKLINE>
**** i: 7
ka2
<BLANKLINE>
**** i: 8
ka1^2
<BLANKLINE>
**** i: 9
ka1*ps1
<BLANKLINE>
**** i: 10
ps1^2
<BLANKLINE>
**** i: 11
ps1*ps1
<BLANKLINE>h>jÀh?Xg/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.FZ_bettirxhAjGhC}ry(hEhFhG]hH]hI]hJ]hK]uhLKÊhMhh8]rzhOXSsage: SA = StrataAlgebra(QQ,1,(1,1)); SA
Strata algebra with genus 1 and markings (1, 1) over Rational Field
sage: SA.print_strata(2)
**** i: 0
[0 1 1 0 0]
[0 0 0 2 1]
[0 1 1 0 1]
<BLANKLINE>
**** i: 1
[0 1 1 0 0]
[0 0 1 1 1]
[0 1 0 1 1]
<BLANKLINE>
**** i: 2
[  0   1   1   0]
[ka1   1   1   2]
<BLANKLINE>
**** i: 3
[     0      1      1      0]
[     0      1      1 ps + 2]
<BLANKLINE>
**** i: 4
[     0      1      1      0]
[     0 ps + 1      1      2]
<BLANKLINE>
**** i: 5
[      0       1       1       0]
[      0       1       1       1]
[ka1 + 1       0       0       1]
<BLANKLINE>
**** i: 6
[     0      1      1      0]
[     0      1      1      1]
[     1      0      0 ps + 1]
<BLANKLINE>
**** i: 7
ka2
<BLANKLINE>
**** i: 8
ka1^2
<BLANKLINE>
**** i: 9
ka1*ps1
<BLANKLINE>
**** i: 10
ps1^2
<BLANKLINE>
**** i: 11
ps1*ps1
<BLANKLINE>r{…r|}r}(h=Uh>jvubaubj[)r~}r(h=Uh>jÀh?NhAj^hC}r€(hG]hH]hI]hJ]hK]Uentries]r(jaX/FZ_betti() (strataalgebra.StrataAlgebra method)hUNtr‚auhLNhMhh8]ubjc)rƒ}r„(h=Uh>jÀh?NhAjfhC}r…(jh‰jiXpyhG]hH]hI]hJ]hK]jkXmethodr†jmj†uhLNhMhh8]r‡(jo)rˆ}r‰(h=X"StrataAlgebra.FZ_betti(codim=None)h>jƒh?Xg/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.FZ_bettirŠhAjshC}r‹(hG]rŒhajvjwX
strataalgebrar…rŽ}rbhH]hI]hJ]hK]rhaj|XStrataAlgebra.FZ_bettij~j}j‰uhLNhMhh8]r‘(j“)r’}r“(h=XFZ_bettih>jˆh?jŠhAj–hC}r”(hI]hJ]hH]hG]hK]uhLNhMhh8]r•hOXFZ_bettir–…r—}r˜(h=Uh>j’ubaubjœ)r™}rš(h=X
codim=Noneh>jˆh?jŠhAjŸhC}r›(hI]hJ]hH]hG]hK]uhLNhMhh8]rœj¢)r}rž(h=X
codim=NonehC}rŸ(hI]hJ]hH]hG]hK]uh>j™h8]r hOX
codim=Noner¡…r¢}r£(h=Uh>jubahAjªubaubeubj¿)r¤}r¥(h=Uh>jƒh?jŠhAjÂhC}r¦(hI]hJ]hH]hG]hK]uhLNhMhh8]r§(h~)r¨}r©(h=X§Give the dimension of the cohomology of moduli space of curves, as predicted by the Faber-Zagier relations.
If the codimension is omited, return a list of all of them.rªh>j¤h?Xg/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.FZ_bettir«hAhhC}r¬(hI]hJ]hH]hG]hK]uhLKhMhh8]r­hOX§Give the dimension of the cohomology of moduli space of curves, as predicted by the Faber-Zagier relations.
If the codimension is omited, return a list of all of them.r®…r¯}r°(h=jªh>j¨ubaubjÎ)r±}r²(h=Uh>j¤h?NhAjÑhC}r³(hI]hJ]hH]hG]hK]uhLNhMhh8]r´jÔ)rµ}r¶(h=UhC}r·(hI]hJ]hH]hG]hK]uh>j±h8]r¸(jÙ)r¹}rº(h=X
Parametersh>jµh?jŠhAjÜhC}r»(hI]hJ]hH]hG]hK]uhLKh8]r¼hOX
Parametersr½…r¾}r¿(h=Uh>j¹ubaubjâ)rÀ}rÁ(h=UhC}rÂ(hI]hJ]hH]hG]hK]uh>jµh8]rÃh~)rÄ}rÅ(h=X,codim -- Optional. The codimension you want.hC}rÆ(hI]hJ]hH]hG]hK]uh>jÀh8]rÇ(jõ)rÈ}rÉ(h=XcodimhC}rÊ(hG]hH]jùˆhI]hJ]hK]uh>jÄh8]rËhOXcodimrÌ…rÍ}rÎ(h=Uh>jÈubahAjþubhOX -- rÏ…rÐ}rÑ(h=Uh>jÄubhOX#Optional. The codimension you want.rÒ…rÓ}rÔ(h=X#Optional. The codimension you want.h>jÄubehAhubahAj¿ubehAjÀubaubjD)rÕ}rÖ(h=XŒsage: from strataalgebra import *
sage: StrataAlgebra(QQ, 2, (1,)).FZ_betti()
[1, 3, 5, 3, 1]
sage: StrataAlgebra(QQ, 2, (1,)).FZ_betti(2)
5h>j¤h?j«hAjGhC}r×(hEhFhG]hH]hI]hJ]hK]uhLMhMhh8]rØhOXŒsage: from strataalgebra import *
sage: StrataAlgebra(QQ, 2, (1,)).FZ_betti()
[1, 3, 5, 3, 1]
sage: StrataAlgebra(QQ, 2, (1,)).FZ_betti(2)
5rÙ…rÚ}rÛ(h=Uh>jÕubaubcsphinx.addnodes
seealso
rÜ)rÝ}rÞ(h=X,:meth:`~strataalgebra.StrataAlgebra.hilbert`rßh>j¤h?j«hAUseealsoràhC}rá(hI]hJ]hH]hG]hK]uhLNhMhh8]râh~)rã}rä(h=jßh>jÝh?j«hAhhC}rå(hI]hJ]hH]hG]hK]uhLKh8]ræj)rç}rè(h=jßh>jãh?NhAjhC}ré(UreftypeXmethj܉jÝX#strataalgebra.StrataAlgebra.hilbertU	refdomainXpyrêhG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]rëh‡)rì}rí(h=jßhC}rî(hI]hJ]rï(jçjêXpy-methrðehH]hG]hK]uh>jçh8]rñhOX	hilbert()rò…ró}rô(h=Uh>jìubahAhubaubaubaubeubeubj[)rõ}rö(h=Uh>jÀh?NhAj^hC}r÷(hG]hH]hI]hJ]hK]Uentries]rø(jaX0FZ_matrix() (strataalgebra.StrataAlgebra method)hUNtrùauhLNhMhh8]ubjc)rú}rû(h=Uh>jÀh?NhAjfhC}rü(jh‰jiXpyhG]hH]hI]hJ]hK]jkXmethodrýjmjýuhLNhMhh8]rþ(jo)rÿ}r(h=XStrataAlgebra.FZ_matrix(r)h>júh?Xh/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.FZ_matrixrhAjshC}r(hG]rhajvjwX
strataalgebrar…r}rbhH]hI]hJ]hK]rhaj|XStrataAlgebra.FZ_matrixj~j}j‰uhLNhMhh8]r(j“)r	}r
(h=X	FZ_matrixh>jÿh?jhAj–hC}r(hI]hJ]hH]hG]hK]uhLNhMhh8]rhOX	FZ_matrixr
…r}r(h=Uh>j	ubaubjœ)r}r(h=Xrh>jÿh?jhAjŸhC}r(hI]hJ]hH]hG]hK]uhLNhMhh8]rj¢)r}r(h=XrhC}r(hI]hJ]hH]hG]hK]uh>jh8]rhOXr…r}r(h=Uh>jubahAjªubaubeubj¿)r}r(h=Uh>júh?jhAjÂhC}r(hI]hJ]hH]hG]hK]uhLNhMhh8]r(h~)r}r(h=X,Return the matrix of Faber-Zagier relations.r h>jh?Xh/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.FZ_matrixr!hAhhC}r"(hI]hJ]hH]hG]hK]uhLKhMhh8]r#hOX,Return the matrix of Faber-Zagier relations.r$…r%}r&(h=j h>jubaubjÎ)r'}r((h=Uh>jh?NhAjÑhC}r)(hI]hJ]hH]hG]hK]uhLNhMhh8]r*(jÔ)r+}r,(h=UhC}r-(hI]hJ]hH]hG]hK]uh>j'h8]r.(jÙ)r/}r0(h=X
Parametersh>j+h?jhAjÜhC}r1(hI]hJ]hH]hG]hK]uhLKh8]r2hOX
Parametersr3…r4}r5(h=Uh>j/ubaubjâ)r6}r7(h=UhC}r8(hI]hJ]hH]hG]hK]uh>j+h8]r9h~)r:}r;(h=Xr -- The codimension.hC}r<(hI]hJ]hH]hG]hK]uh>j6h8]r=(jõ)r>}r?(h=XrhC}r@(hG]hH]jùˆhI]hJ]hK]uh>j:h8]rAhOXr…rB}rC(h=Uh>j>ubahAjþubhOX -- rD…rE}rF(h=Uh>j:ubhOXThe codimension.rG…rH}rI(h=XThe codimension.h>j:ubehAhubahAj¿ubehAjÀubjÔ)rJ}rK(h=UhC}rL(hI]hJ]hH]hG]hK]uh>j'h8]rM(jÙ)rN}rO(h=XReturn typeh>jJh?jhAjÜhC}rP(hI]hJ]hH]hG]hK]uhLKh8]rQhOXReturn typerR…rS}rT(h=Uh>jNubaubjâ)rU}rV(h=UhC}rW(hI]hJ]hH]hG]hK]uh>jJh8]rXh~)rY}rZ(h=XMatrixhC}r[(hI]hJ]hH]hG]hK]uh>jUh8]r\j)r]}r^(h=X:class:`Matrix`r_h>jYh?NhAjhC}r`(UreftypeXclassj܉jÝXMatrixU	refdomainXpyrahG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]rbh‡)rc}rd(h=j_hC}re(hI]hJ]rf(jçjaXpy-classrgehH]hG]hK]uh>j]h8]rhhOXMatrixri…rj}rk(h=Uh>jcubahAhubaubahAhubahAj¿ubehAjÀubeubh~)rl}rm(h=X_The columns correspond to the basis elements of the Strata algebra, and each row is a relation.rnh>jh?j!hAhhC}ro(hI]hJ]hH]hG]hK]uhLKhMhh8]rphOX_The columns correspond to the basis elements of the Strata algebra, and each row is a relation.rq…rr}rs(h=jnh>jlubaubh~)rt}ru(h=X¤Notice that this matrix considers the kappa classes to be in the monomial basis. Thus, is different than the
output of Pixton's original ``taurel.sage`` program. ::h>jh?j!hAhhC}rv(hI]hJ]hH]hG]hK]uhLKhMhh8]rw(hOX‰Notice that this matrix considers the kappa classes to be in the monomial basis. Thus, is different than the
output of Pixton's original rx…ry}rz(h=X‰Notice that this matrix considers the kappa classes to be in the monomial basis. Thus, is different than the
output of Pixton's original h>jtubh‡)r{}r|(h=X``taurel.sage``hC}r}(hI]hJ]hH]hG]hK]uh>jth8]r~hOXtaurel.sager…r€}r(h=Uh>j{ubahAhubhOX	 program.r‚…rƒ}r„(h=X	 program.h>jtubeubjD)r…}r†(h=Xsage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,0,(1,2,3,4))
sage: s.FZ_matrix(1)
[  -9/4   -9/4   -9/4 -153/4   45/4   45/4   45/4   45/4]
[   3/2    3/2    3/2  -33/2  -21/2   15/2   15/2   15/2]
[   3/2    3/2    3/2  -33/2   15/2  -21/2   15/2   15/2]
[   3/2    3/2    3/2  -33/2   15/2   15/2  -21/2   15/2]
[   3/2    3/2    3/2  -33/2   15/2   15/2   15/2  -21/2]
[ -15/4   21/4   21/4  -15/4  -21/4  -21/4   15/4   15/4]
[  21/4  -15/4   21/4  -15/4  -21/4   15/4  -21/4   15/4]
[  21/4   21/4  -15/4  -15/4  -21/4   15/4   15/4  -21/4]
[  21/4   21/4  -15/4  -15/4   15/4  -21/4  -21/4   15/4]
[  21/4  -15/4   21/4  -15/4   15/4  -21/4   15/4  -21/4]
[ -15/4   21/4   21/4  -15/4   15/4   15/4  -21/4  -21/4]
[ -15/4  -15/4  -15/4  -15/4   15/4   15/4   15/4   15/4]h>jh?j!hAjGhC}r‡(hEhFhG]hH]hI]hJ]hK]uhLM hMhh8]rˆhOXsage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,0,(1,2,3,4))
sage: s.FZ_matrix(1)
[  -9/4   -9/4   -9/4 -153/4   45/4   45/4   45/4   45/4]
[   3/2    3/2    3/2  -33/2  -21/2   15/2   15/2   15/2]
[   3/2    3/2    3/2  -33/2   15/2  -21/2   15/2   15/2]
[   3/2    3/2    3/2  -33/2   15/2   15/2  -21/2   15/2]
[   3/2    3/2    3/2  -33/2   15/2   15/2   15/2  -21/2]
[ -15/4   21/4   21/4  -15/4  -21/4  -21/4   15/4   15/4]
[  21/4  -15/4   21/4  -15/4  -21/4   15/4  -21/4   15/4]
[  21/4   21/4  -15/4  -15/4  -21/4   15/4   15/4  -21/4]
[  21/4   21/4  -15/4  -15/4   15/4  -21/4  -21/4   15/4]
[  21/4  -15/4   21/4  -15/4   15/4  -21/4   15/4  -21/4]
[ -15/4   21/4   21/4  -15/4   15/4   15/4  -21/4  -21/4]
[ -15/4  -15/4  -15/4  -15/4   15/4   15/4   15/4   15/4]r‰…rŠ}r‹(h=Uh>j…ubaubjÜ)rŒ}r(h=Xw:meth:`~strataalgebra.StrataAlgebra.FZ_matrix_pushforward_basis`, :meth:`~strataalgebra.StrataAlgebraElement.in_kernel`rŽh>jh?j!hAjàhC}r(hI]hJ]hH]hG]hK]uhLNhMhh8]rh~)r‘}r’(h=jŽh>jŒh?j!hAhhC}r“(hI]hJ]hH]hG]hK]uhLKh8]r”(j)r•}r–(h=X@:meth:`~strataalgebra.StrataAlgebra.FZ_matrix_pushforward_basis`r—h>j‘h?NhAjhC}r˜(UreftypeXmethj܉jÝX7strataalgebra.StrataAlgebra.FZ_matrix_pushforward_basisU	refdomainXpyr™hG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]ršh‡)r›}rœ(h=j—hC}r(hI]hJ]rž(jçj™Xpy-methrŸehH]hG]hK]uh>j•h8]r hOXFZ_matrix_pushforward_basis()r¡…r¢}r£(h=Uh>j›ubahAhubaubhOX, r¤…r¥}r¦(h=X, h>j‘ubj)r§}r¨(h=X5:meth:`~strataalgebra.StrataAlgebraElement.in_kernel`r©h>j‘h?NhAjhC}rª(UreftypeXmethj܉jÝX,strataalgebra.StrataAlgebraElement.in_kernelU	refdomainXpyr«hG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]r¬h‡)r­}r®(h=j©hC}r¯(hI]hJ]r°(jçj«Xpy-methr±ehH]hG]hK]uh>j§h8]r²hOXin_kernel()r³…r´}rµ(h=Uh>j­ubahAhubaubeubaubeubeubj[)r¶}r·(h=Uh>jÀh?NhAj^hC}r¸(hG]hH]hI]hJ]hK]Uentries]r¹(jaXBFZ_matrix_pushforward_basis() (strataalgebra.StrataAlgebra method)h"UNtrºauhLNhMhh8]ubjc)r»}r¼(h=Uh>jÀh?NhAjfhC}r½(jh‰jiXpyhG]hH]hI]hJ]hK]jkXmethodr¾jmj¾uhLNhMhh8]r¿(jo)rÀ}rÁ(h=X,StrataAlgebra.FZ_matrix_pushforward_basis(r)h>j»h?Xz/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.FZ_matrix_pushforward_basisrÂhAjshC}rÃ(hG]rÄh"ajvjwX
strataalgebrarÅ…rÆ}rÇbhH]hI]hJ]hK]rÈh"aj|X)StrataAlgebra.FZ_matrix_pushforward_basisj~j}j‰uhLNhMhh8]rÉ(j“)rÊ}rË(h=XFZ_matrix_pushforward_basish>jÀh?jÂhAj–hC}rÌ(hI]hJ]hH]hG]hK]uhLNhMhh8]rÍhOXFZ_matrix_pushforward_basisrÎ…rÏ}rÐ(h=Uh>jÊubaubjœ)rÑ}rÒ(h=Xrh>jÀh?jÂhAjŸhC}rÓ(hI]hJ]hH]hG]hK]uhLNhMhh8]rÔj¢)rÕ}rÖ(h=XrhC}r×(hI]hJ]hH]hG]hK]uh>jÑh8]rØhOXr…rÙ}rÚ(h=Uh>jÕubahAjªubaubeubj¿)rÛ}rÜ(h=Uh>j»h?jÂhAjÂhC}rÝ(hI]hJ]hH]hG]hK]uhLNhMhh8]rÞ(h~)rß}rà(h=XˆReturn the matrix of Faber-Zagier relations, using the "pushforward" basis, NOT the kappa monomial basis that the rest of the code uses.ráh>jÛh?Xz/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.FZ_matrix_pushforward_basisrâhAhhC}rã(hI]hJ]hH]hG]hK]uhLKhMhh8]rähOXˆReturn the matrix of Faber-Zagier relations, using the "pushforward" basis, NOT the kappa monomial basis that the rest of the code uses.r允ræ}rç(h=jáh>jßubaubjÎ)rè}ré(h=Uh>jÛh?NhAjÑhC}rê(hI]hJ]hH]hG]hK]uhLNhMhh8]rë(jÔ)rì}rí(h=UhC}rî(hI]hJ]hH]hG]hK]uh>jèh8]rï(jÙ)rð}rñ(h=X
Parametersh>jìh?jÂhAjÜhC}rò(hI]hJ]hH]hG]hK]uhLKh8]róhOX
Parametersrô…rõ}rö(h=Uh>jðubaubjâ)r÷}rø(h=UhC}rù(hI]hJ]hH]hG]hK]uh>jìh8]rúh~)rû}rü(h=Xr -- The codimension.hC}rý(hI]hJ]hH]hG]hK]uh>j÷h8]rþ(jõ)rÿ}r(h=XrhC}r(hG]hH]jùˆhI]hJ]hK]uh>jûh8]rhOXr…r}r(h=Uh>jÿubahAjþubhOX -- r…r}r(h=Uh>jûubhOXThe codimension.r…r	}r
(h=XThe codimension.h>jûubehAhubahAj¿ubehAjÀubjÔ)r}r(h=UhC}r
(hI]hJ]hH]hG]hK]uh>jèh8]r(jÙ)r}r(h=XReturn typeh>jh?jÂhAjÜhC}r(hI]hJ]hH]hG]hK]uhLKh8]rhOXReturn typer…r}r(h=Uh>jubaubjâ)r}r(h=UhC}r(hI]hJ]hH]hG]hK]uh>jh8]rh~)r}r(h=XMatrixhC}r(hI]hJ]hH]hG]hK]uh>jh8]rj)r}r(h=X:class:`Matrix`r h>jh?NhAjhC}r!(UreftypeXclassj܉jÝXMatrixU	refdomainXpyr"hG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]r#h‡)r$}r%(h=j hC}r&(hI]hJ]r'(jçj"Xpy-classr(ehH]hG]hK]uh>jh8]r)hOXMatrixr*…r+}r,(h=Uh>j$ubahAhubaubahAhubahAj¿ubehAjÀubeubh~)r-}r.(h=XÈThe columns correspond to the basis elements of the Strata algebra, and each row is a relation.
This matrix should be the same as Pixton's original ``tautrel.sage`` program after permuting columns. ::h>jÛh?jâhAhhC}r/(hI]hJ]hH]hG]hK]uhLKhMhh8]r0(hOX”The columns correspond to the basis elements of the Strata algebra, and each row is a relation.
This matrix should be the same as Pixton's original r1…r2}r3(h=X”The columns correspond to the basis elements of the Strata algebra, and each row is a relation.
This matrix should be the same as Pixton's original h>j-ubh‡)r4}r5(h=X``tautrel.sage``hC}r6(hI]hJ]hH]hG]hK]uh>j-h8]r7hOXtautrel.sager8…r9}r:(h=Uh>j4ubahAhubhOX! program after permuting columns.r;…r<}r=(h=X! program after permuting columns.h>j-ubeubjD)r>}r?(h=X(sage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,0,(1,2,3,4))
sage: s.FZ_matrix_pushforward_basis(1)
[  -9/4   -9/4   -9/4 -153/4   45/4   45/4   45/4   45/4]
[   3/2    3/2    3/2  -33/2  -21/2   15/2   15/2   15/2]
[   3/2    3/2    3/2  -33/2   15/2  -21/2   15/2   15/2]
[   3/2    3/2    3/2  -33/2   15/2   15/2  -21/2   15/2]
[   3/2    3/2    3/2  -33/2   15/2   15/2   15/2  -21/2]
[ -15/4   21/4   21/4  -15/4  -21/4  -21/4   15/4   15/4]
[  21/4  -15/4   21/4  -15/4  -21/4   15/4  -21/4   15/4]
[  21/4   21/4  -15/4  -15/4  -21/4   15/4   15/4  -21/4]
[  21/4   21/4  -15/4  -15/4   15/4  -21/4  -21/4   15/4]
[  21/4  -15/4   21/4  -15/4   15/4  -21/4   15/4  -21/4]
[ -15/4   21/4   21/4  -15/4   15/4   15/4  -21/4  -21/4]
[ -15/4  -15/4  -15/4  -15/4   15/4   15/4   15/4   15/4]h>jÛh?jâhAjGhC}r@(hEhFhG]hH]hI]hJ]hK]uhLMBhMhh8]rAhOX(sage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,0,(1,2,3,4))
sage: s.FZ_matrix_pushforward_basis(1)
[  -9/4   -9/4   -9/4 -153/4   45/4   45/4   45/4   45/4]
[   3/2    3/2    3/2  -33/2  -21/2   15/2   15/2   15/2]
[   3/2    3/2    3/2  -33/2   15/2  -21/2   15/2   15/2]
[   3/2    3/2    3/2  -33/2   15/2   15/2  -21/2   15/2]
[   3/2    3/2    3/2  -33/2   15/2   15/2   15/2  -21/2]
[ -15/4   21/4   21/4  -15/4  -21/4  -21/4   15/4   15/4]
[  21/4  -15/4   21/4  -15/4  -21/4   15/4  -21/4   15/4]
[  21/4   21/4  -15/4  -15/4  -21/4   15/4   15/4  -21/4]
[  21/4   21/4  -15/4  -15/4   15/4  -21/4  -21/4   15/4]
[  21/4  -15/4   21/4  -15/4   15/4  -21/4   15/4  -21/4]
[ -15/4   21/4   21/4  -15/4   15/4   15/4  -21/4  -21/4]
[ -15/4  -15/4  -15/4  -15/4   15/4   15/4   15/4   15/4]rB…rC}rD(h=Uh>j>ubaubjÜ)rE}rF(h=X.:meth:`~strataalgebra.StrataAlgebra.FZ_matrix`rGh>jÛh?jâhAjàhC}rH(hI]hJ]hH]hG]hK]uhLNhMhh8]rIh~)rJ}rK(h=jGh>jEh?jâhAhhC}rL(hI]hJ]hH]hG]hK]uhLKh8]rMj)rN}rO(h=jGh>jJh?NhAjhC}rP(UreftypeXmethj܉jÝX%strataalgebra.StrataAlgebra.FZ_matrixU	refdomainXpyrQhG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]rRh‡)rS}rT(h=jGhC}rU(hI]hJ]rV(jçjQXpy-methrWehH]hG]hK]uh>jNh8]rXhOXFZ_matrix()rY…rZ}r[(h=Uh>jSubahAhubaubaubaubeubeubj[)r\}r](h=Uh>jÀh?Xj/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.MgnLb_classr^hAj^hC}r_(hG]hH]hI]hJ]hK]Uentries]r`(jaX2MgnLb_class() (strataalgebra.StrataAlgebra method)h!UNtraauhLNhMhh8]ubjc)rb}rc(h=Uh>jÀh?j^hAjfhC}rd(jh‰jiXpyhG]hH]hI]hJ]hK]jkXmethodrejmjeuhLNhMhh8]rf(jo)rg}rh(h=X StrataAlgebra.MgnLb_class(index)h>jbh?Xj/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.MgnLb_classrihAjshC}rj(hG]rkh!ajvjwX
strataalgebrarl…rm}rnbhH]hI]hJ]hK]roh!aj|XStrataAlgebra.MgnLb_classj~j}j‰uhLNhMhh8]rp(j“)rq}rr(h=XMgnLb_classh>jgh?jihAj–hC}rs(hI]hJ]hH]hG]hK]uhLNhMhh8]rthOXMgnLb_classru…rv}rw(h=Uh>jqubaubjœ)rx}ry(h=Xindexh>jgh?jihAjŸhC}rz(hI]hJ]hH]hG]hK]uhLNhMhh8]r{j¢)r|}r}(h=XindexhC}r~(hI]hJ]hH]hG]hK]uh>jxh8]rhOXindexr€…r}r‚(h=Uh>j|ubahAjªubaubeubj¿)rƒ}r„(h=Uh>jbh?jihAjÂhC}r…(hI]hJ]hH]hG]hK]uhLNhMhh8]r†(h~)r‡}rˆ(h=XReturns the class corresponding to the index from Carl Faber's ``MgnLb`` Maple program.
This is useful for testing purposes. ::h>jƒh?j^hAhhC}r‰(hI]hJ]hH]hG]hK]uhLKhMhh8]rŠ(hOX?Returns the class corresponding to the index from Carl Faber's r‹…rŒ}r(h=X?Returns the class corresponding to the index from Carl Faber's h>j‡ubh‡)rŽ}r(h=X	``MgnLb``hC}r(hI]hJ]hH]hG]hK]uh>j‡h8]r‘hOXMgnLbr’…r“}r”(h=Uh>jŽubahAhubhOX4 Maple program.
This is useful for testing purposes.r•…r–}r—(h=X4 Maple program.
This is useful for testing purposes.h>j‡ubeubjD)r˜}r™(h=X·sage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,1,(1,2))
sage: s.MgnLb_class(1)
ps1
sage: s.MgnLb_class(4)
ka2
sage: s.MgnLb_class(6)
1/2*D_irr
sage: s.MgnLb_class(2)
ps2h>jƒh?j^hAjGhC}rš(hEhFhG]hH]hI]hJ]hK]uhLM]hMhh8]r›hOX·sage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,1,(1,2))
sage: s.MgnLb_class(1)
ps1
sage: s.MgnLb_class(4)
ka2
sage: s.MgnLb_class(6)
1/2*D_irr
sage: s.MgnLb_class(2)
ps2rœ…r}rž(h=Uh>j˜ubaubeubeubj[)rŸ}r (h=Uh>jÀh?NhAj^hC}r¡(hG]hH]hI]hJ]hK]Uentries]r¢(jaX0MgnLb_int() (strataalgebra.StrataAlgebra method)hUNtr£auhLNhMhh8]ubjc)r¤}r¥(h=Uh>jÀh?NhAjfhC}r¦(jh‰jiXpyhG]hH]hI]hJ]hK]jkXmethodr§jmj§uhLNhMhh8]r¨(jo)r©}rª(h=X#StrataAlgebra.MgnLb_int(index_list)h>j¤h?Xh/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.MgnLb_intr«hAjshC}r¬(hG]r­hajvjwX
strataalgebrar®…r¯}r°bhH]hI]hJ]hK]r±haj|XStrataAlgebra.MgnLb_intj~j}j‰uhLNhMhh8]r²(j“)r³}r´(h=X	MgnLb_inth>j©h?j«hAj–hC}rµ(hI]hJ]hH]hG]hK]uhLNhMhh8]r¶hOX	MgnLb_intr·…r¸}r¹(h=Uh>j³ubaubjœ)rº}r»(h=X
index_listh>j©h?j«hAjŸhC}r¼(hI]hJ]hH]hG]hK]uhLNhMhh8]r½j¢)r¾}r¿(h=X
index_listhC}rÀ(hI]hJ]hH]hG]hK]uh>jºh8]rÁhOX
index_listrÂ…rÃ}rÄ(h=Uh>j¾ubahAjªubaubeubj¿)rÅ}rÆ(h=Uh>j¤h?j«hAjÂhC}rÇ(hI]hJ]hH]hG]hK]uhLNhMhh8]rÈ(h~)rÉ}rÊ(h=XJComputes an integral of boundary divisors, kappa classes, and psi classes.rËh>jÅh?Xh/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.MgnLb_intrÌhAhhC}rÍ(hI]hJ]hH]hG]hK]uhLKhMhh8]rÎhOXJComputes an integral of boundary divisors, kappa classes, and psi classes.rÏ…rÐ}rÑ(h=jËh>jÉubaubjÎ)rÒ}rÓ(h=Uh>jÅh?NhAjÑhC}rÔ(hI]hJ]hH]hG]hK]uhLNhMhh8]rÕ(jÔ)rÖ}r×(h=UhC}rØ(hI]hJ]hH]hG]hK]uh>jÒh8]rÙ(jÙ)rÚ}rÛ(h=X
Parametersh>jÖh?j«hAjÜhC}rÜ(hI]hJ]hH]hG]hK]uhLKh8]rÝhOX
ParametersrÞ…rß}rà(h=Uh>jÚubaubjâ)rá}râ(h=UhC}rã(hI]hJ]hH]hG]hK]uh>jÖh8]räh~)rå}ræ(h=XÑindex_list -- A list of indices of classes, according the the scheme of Carl Faber's MgnLb Maple program. This function is useful because so you can test our implementation of the product and the FZ_relations.hC}rç(hI]hJ]hH]hG]hK]uh>jáh8]rè(jõ)ré}rê(h=X
index_listhC}rë(hG]hH]jùˆhI]hJ]hK]uh>jåh8]rìhOX
index_listr텁rî}rï(h=Uh>jéubahAjþubhOX -- rð…rñ}rò(h=Uh>jåubhOXGA list of indices of classes, according the the scheme of Carl Faber's ró…rô}rõ(h=XGA list of indices of classes, according the the scheme of Carl Faber's h>jåubh‡)rö}r÷(h=X	``MgnLb``hC}rø(hI]hJ]hH]hG]hK]uh>jåh8]rùhOXMgnLbrú…rû}rü(h=Uh>jöubahAhubhOXw Maple program. This function is useful because so you can test our implementation of the product and the FZ_relations.rý…rþ}rÿ(h=Xw Maple program. This function is useful because so you can test our implementation of the product and the FZ_relations.h>jåubehAhubahAj¿ubehAjÀubjÔ)r}r(h=UhC}r(hI]hJ]hH]hG]hK]uh>jÒh8]r(jÙ)r}r(h=XReturn typeh>jh?j«hAjÜhC}r(hI]hJ]hH]hG]hK]uhLKh8]rhOXReturn typer…r	}r
(h=Uh>jubaubjâ)r}r(h=UhC}r
(hI]hJ]hH]hG]hK]uh>jh8]rh~)r}r(h=XRationalhC}r(hI]hJ]hH]hG]hK]uh>jh8]rcdocutils.nodes
title_reference
r)r}r(h=X
`Rational`hC}r(hI]hJ]hH]hG]hK]uh>jh8]rhOXRationalr…r}r(h=Uh>jubahAUtitle_referencerubahAhubahAj¿ubehAjÀubeubh~)r}r(h=XExamples: ::h>jÅh?jÌhAhhC}r(hI]hJ]hH]hG]hK]uhLKhMhh8]rhOX	Examples:r …r!}r"(h=X	Examples:h>jubaubjD)r#}r$(h=Xœsage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,1,(1,2))
sage: s.MgnLb_int([1,6])
1/2
sage: s.MgnLb_int([1,2])
1/24
sage: s.MgnLb_int([4])
1/24h>jÅh?jÌhAjGhC}r%(hEhFhG]hH]hI]hJ]hK]uhLMthMhh8]r&hOXœsage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,1,(1,2))
sage: s.MgnLb_int([1,6])
1/2
sage: s.MgnLb_int([1,2])
1/24
sage: s.MgnLb_int([4])
1/24r'…r(}r)(h=Uh>j#ubaubjÜ)r*}r+(h=X0:meth:`~strataalgebra.StrataAlgebra.MgnLb_class`r,h>jÅh?jÌhAjàhC}r-(hI]hJ]hH]hG]hK]uhLNhMhh8]r.h~)r/}r0(h=j,h>j*h?jÌhAhhC}r1(hI]hJ]hH]hG]hK]uhLKh8]r2j)r3}r4(h=j,h>j/h?NhAjhC}r5(UreftypeXmethj܉jÝX'strataalgebra.StrataAlgebra.MgnLb_classU	refdomainXpyr6hG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]r7h‡)r8}r9(h=j,hC}r:(hI]hJ]r;(jçj6Xpy-methr<ehH]hG]hK]uh>j3h8]r=hOX
MgnLb_class()r>…r?}r@(h=Uh>j8ubahAhubaubaubaubeubeubj[)rA}rB(h=Uh>jÀh?Xn/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.basis_integralsrChAj^hC}rD(hG]hH]hI]hJ]hK]Uentries]rE(jaX7basis_integrals (strataalgebra.StrataAlgebra attribute)h#UNtrFauhLNhMhh8]ubjc)rG}rH(h=Uh>jÀh?jChAjfhC}rI(jh‰jiXpyhG]hH]hI]hJ]hK]jkX	attributerJjmjJuhLNhMhh8]rK(jo)rL}rM(h=XStrataAlgebra.basis_integralsh>jGh?Xn/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.basis_integralsrNhAjshC}rO(hG]rPh#ajvjwX
strataalgebrarQ…rR}rSbhH]hI]hJ]hK]rTh#aj|XStrataAlgebra.basis_integralsj~j}j‰uhLNhMhh8]rUj“)rV}rW(h=Xbasis_integralsh>jLh?jNhAj–hC}rX(hI]hJ]hH]hG]hK]uhLNhMhh8]rYhOXbasis_integralsrZ…r[}r\(h=Uh>jVubaubaubj¿)r]}r^(h=Uh>jGh?jNhAjÂhC}r_(hI]hJ]hH]hG]hK]uhLNhMhh8]r`(h~)ra}rb(h=XRFile: /Users/drewjohnson/mgn/strataalgebra/strataalgebra.py (starting at line 491)rch>j]h?jChAhhC}rd(hI]hJ]hH]hG]hK]uhLKhMhh8]rehOXRFile: /Users/drewjohnson/mgn/strataalgebra/strataalgebra.py (starting at line 491)rf…rg}rh(h=jch>jaubaubh~)ri}rj(h=XeReturn a list of numbers corresponding to the integrals of the basis elements in the top codimension.rkh>j]h?jChAhhC}rl(hI]hJ]hH]hG]hK]uhLKhMhh8]rmhOXeReturn a list of numbers corresponding to the integrals of the basis elements in the top codimension.rn…ro}rp(h=jkh>jiubaubh~)rq}rr(h=X_This is computed via the FZ relations, so it is probably not fast. However, it is a nice check.rsh>j]h?jChAhhC}rt(hI]hJ]hH]hG]hK]uhLKhMhh8]ruhOX_This is computed via the FZ relations, so it is probably not fast. However, it is a nice check.rv…rw}rx(h=jsh>jqubaubh~)ry}rz(h=XEThe value is cached, so you only have to compute it once per session.r{h>j]h?jChAhhC}r|(hI]hJ]hH]hG]hK]uhLKhMhh8]r}hOXEThe value is cached, so you only have to compute it once per session.r~…r}r€(h=j{h>jyubaubh~)r}r‚(h=X~This is used by :meth:`~strataalgebra.StrataAlgebraElement.integrate` which is the more likely way you will want to use it.
::h>j]h?jChAhhC}rƒ(hI]hJ]hH]hG]hK]uhLK	hMhh8]r„(hOXThis is used by r……r†}r‡(h=XThis is used by h>jubj)rˆ}r‰(h=X5:meth:`~strataalgebra.StrataAlgebraElement.integrate`rŠh>jh?NhAjhC}r‹(UreftypeXmethj܉jÝX,strataalgebra.StrataAlgebraElement.integrateU	refdomainXpyrŒhG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]rh‡)rŽ}r(h=jŠhC}r(hI]hJ]r‘(jçjŒXpy-methr’ehH]hG]hK]uh>jˆh8]r“hOXintegrate()r”…r•}r–(h=Uh>jŽubahAhubaubhOX6 which is the more likely way you will want to use it.r—…r˜}r™(h=X6 which is the more likely way you will want to use it.h>jubeubjD)rš}r›(h=XÖsage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,1,(1,))
sage: s.print_strata(1)
**** i: 0
D_irr
<BLANKLINE>
**** i: 1
ka1
<BLANKLINE>
**** i: 2
ps1
<BLANKLINE>
sage: s.basis_integrals()
[1, 1/24, 1/24]h>j]h?jChAjGhC}rœ(hEhFhG]hH]hI]hJ]hK]uhLM‘hMhh8]rhOXÖsage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,1,(1,))
sage: s.print_strata(1)
**** i: 0
D_irr
<BLANKLINE>
**** i: 1
ka1
<BLANKLINE>
**** i: 2
ps1
<BLANKLINE>
sage: s.basis_integrals()
[1, 1/24, 1/24]rž…rŸ}r (h=Uh>jšubaubeubeubj[)r¡}r¢(h=Uh>jÀh?Xg/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.boundaryr£hAj^hC}r¤(hG]hH]hI]hJ]hK]Uentries]r¥(jaX/boundary() (strataalgebra.StrataAlgebra method)hUNtr¦auhLNhMhh8]ubjc)r§}r¨(h=Uh>jÀh?j£hAjfhC}r©(jh‰jiXpyrªhG]hH]hI]hJ]hK]jkXmethodr«jmj«uhLNhMhh8]r¬(jo)r­}r®(h=X(StrataAlgebra.boundary(g1, markings1=())h>j§h?Xg/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.boundaryr¯hAjshC}r°(hG]r±hajvjwX
strataalgebrar²…r³}r´bhH]hI]hJ]hK]rµhaj|XStrataAlgebra.boundaryj~j}j‰uhLNhMhh8]r¶(j“)r·}r¸(h=Xboundaryh>j­h?j¯hAj–hC}r¹(hI]hJ]hH]hG]hK]uhLNhMhh8]rºhOXboundaryr»…r¼}r½(h=Uh>j·ubaubjœ)r¾}r¿(h=Xg1, markings1=()h>j­h?j¯hAjŸhC}rÀ(hI]hJ]hH]hG]hK]uhLNhMhh8]rÁ(j¢)rÂ}rÃ(h=Xg1hC}rÄ(hI]hJ]hH]hG]hK]uh>j¾h8]rÅhOXg1rÆ…rÇ}rÈ(h=Uh>jÂubahAjªubj¢)rÉ}rÊ(h=Xmarkings1=()hC}rË(hI]hJ]hH]hG]hK]uh>j¾h8]rÌhOXmarkings1=()rÍ…rÎ}rÏ(h=Uh>jÉubahAjªubeubeubj¿)rÐ}rÑ(h=Uh>j§h?j¯hAjÂhC}rÒ(hI]hJ]hH]hG]hK]uhLNhMhh8]rÓ(h~)rÔ}rÕ(h=XQReturn a boundary divisor with genus `g1` and `markings1` points on one componenth>jÐh?j£hAhhC}rÖ(hI]hJ]hH]hG]hK]uhLKhMhh8]r×(hOX%Return a boundary divisor with genus rØ…rÙ}rÚ(h=X%Return a boundary divisor with genus h>jÔubj)rÛ}rÜ(h=X`g1`hC}rÝ(hI]hJ]hH]hG]hK]uh>jÔh8]rÞhOXg1rß…rà}rá(h=Uh>jÛubahAjubhOX and r⅁rã}rä(h=X and h>jÔubj)rå}ræ(h=X`markings1`hC}rç(hI]hJ]hH]hG]hK]uh>jÔh8]rèhOX	markings1r酁rê}rë(h=Uh>jåubahAjubhOX points on one componentr셁rí}rî(h=X points on one componenth>jÔubeubjÎ)rï}rð(h=Uh>jÐh?j£hAjÑhC}rñ(hI]hJ]hH]hG]hK]uhLNhMhh8]rò(jÔ)ró}rô(h=UhC}rõ(hI]hJ]hH]hG]hK]uh>jïh8]rö(jÙ)r÷}rø(h=X
Parametersh>jóh?j£hAjÜhC}rù(hI]hJ]hH]hG]hK]uhLKh8]rúhOX
Parametersrû…rü}rý(h=Uh>j÷ubaubjâ)rþ}rÿ(h=UhC}r(hI]hJ]hH]hG]hK]uh>jóh8]rjç)r}r(h=UhC}r(hI]hJ]hH]hG]hK]uh>jþh8]r(jì)r}r(h=UhC}r(hI]hJ]hH]hG]hK]uh>jh8]r	h~)r
}r(h=X&g1 (int) -- The genus on one componenthC}r(hI]hJ]hH]hG]hK]uh>jh8]r
(jõ)r}r(h=Xg1hC}r(hG]hH]jùˆhI]hJ]hK]uh>j
h8]rhOXg1r…r}r(h=Uh>jubahAjþubhOX (r…r}r(h=Uh>j
ubj)r}r(h=UhC}r(UreftypejjùˆU	reftargetXintrU	refdomainjªhG]hH]Urefexplicit‰hI]hJ]hK]uh>j
h8]rj	)r}r(h=jhC}r(hI]hJ]hH]hG]hK]uh>jh8]r hOXintr!…r"}r#(h=Uh>jubahAjubahAjubhOX)…r$}r%(h=Uh>j
ubhOX -- r&…r'}r((h=Uh>j
ubhOXThe genus on one componentr)…r*}r+(h=XThe genus on one componenth>j
ubehAhubahAj$ubjì)r,}r-(h=UhC}r.(hI]hJ]hH]hG]hK]uh>jh8]r/h~)r0}r1(h=Xamarkings1 (list) -- A list or tuple of markings on the one component. Defaults to the empty list.hC}r2(hI]hJ]hH]hG]hK]uh>j,h8]r3(jõ)r4}r5(h=X	markings1hC}r6(hG]hH]jùˆhI]hJ]hK]uh>j0h8]r7hOX	markings1r8…r9}r:(h=Uh>j4ubahAjþubhOX (r;…r<}r=(h=Uh>j0ubj)r>}r?(h=UhC}r@(UreftypejjùˆU	reftargetXlistrAU	refdomainjªhG]hH]Urefexplicit‰hI]hJ]hK]uh>j0h8]rBj	)rC}rD(h=jAhC}rE(hI]hJ]hH]hG]hK]uh>j>h8]rFhOXlistrG…rH}rI(h=Uh>jCubahAjubahAjubhOX)…rJ}rK(h=Uh>j0ubhOX -- rL…rM}rN(h=Uh>j0ubhOXMA list or tuple of markings on the one component. Defaults to the empty list.rO…rP}rQ(h=XMA list or tuple of markings on the one component. Defaults to the empty list.h>j0ubehAhubahAj$ubehAj¾ubahAj¿ubehAjÀubjÔ)rR}rS(h=UhC}rT(hI]hJ]hH]hG]hK]uh>jïh8]rU(jÙ)rV}rW(h=XReturn typeh>jRh?j£hAjÜhC}rX(hI]hJ]hH]hG]hK]uhLKh8]rYhOXReturn typerZ…r[}r\(h=Uh>jVubaubjâ)r]}r^(h=UhC}r_(hI]hJ]hH]hG]hK]uh>jRh8]r`h~)ra}rb(h=XStrataAlgebraElementhC}rc(hI]hJ]hH]hG]hK]uh>j]h8]rdj)re}rf(h=X:class:`StrataAlgebraElement`rgh>jah?NhAjhC}rh(UreftypeXclassj܉jÝXStrataAlgebraElementU	refdomainXpyrihG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]rjh‡)rk}rl(h=jghC}rm(hI]hJ]rn(jçjiXpy-classroehH]hG]hK]uh>jeh8]rphOXStrataAlgebraElementrq…rr}rs(h=Uh>jkubahAhubaubahAhubahAj¿ubehAjÀubeubh~)rt}ru(h=XfNote that if the two components are the same, it will return the stratum with a coefficient of 1/2. ::h>jÐh?j£hAhhC}rv(hI]hJ]hH]hG]hK]uhLKhMhh8]rwhOXcNote that if the two components are the same, it will return the stratum with a coefficient of 1/2.rx…ry}rz(h=XcNote that if the two components are the same, it will return the stratum with a coefficient of 1/2.h>jtubaubjD)r{}r|(h=XÇsage: from strataalgebra import *
sage: s = StrataAlgebra(QQ, 1, (1,2,3))
sage: s.boundary(0, (1,2))
Dg0m1_2
sage: s.boundary(1,[3])
Dg0m1_2
sage: s = StrataAlgebra(QQ, 2)
sage: s.boundary(1)
1/2*Dg1h>jÐh?j£hAjGhC}r}(hEhFhG]hH]hI]hJ]hK]uhLM®hMhh8]r~hOXÇsage: from strataalgebra import *
sage: s = StrataAlgebra(QQ, 1, (1,2,3))
sage: s.boundary(0, (1,2))
Dg0m1_2
sage: s.boundary(1,[3])
Dg0m1_2
sage: s = StrataAlgebra(QQ, 2)
sage: s.boundary(1)
1/2*Dg1r…r€}r(h=Uh>j{ubaubh~)r‚}rƒ(h=X'Each component must still be stable. ::h>jÐh?j£hAhhC}r„(hI]hJ]hH]hG]hK]uhLKhMhh8]r…hOX$Each component must still be stable.r†…r‡}rˆ(h=X$Each component must still be stable.h>j‚ubaubjD)r‰}rŠ(h=XHsage: s.boundary(2)
Traceback (most recent call last):
...
KeyError: Dg0h>jÐh?j£hAjGhC}r‹(hEhFhG]hH]hI]hJ]hK]uhLMºhMhh8]rŒhOXHsage: s.boundary(2)
Traceback (most recent call last):
...
KeyError: Dg0r…rŽ}r(h=Uh>j‰ubaubeubeubj[)r}r‘(h=Uh>jÀh?Xn/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.do_all_productsr’hAj^hC}r“(hG]hH]hI]hJ]hK]Uentries]r”(jaX6do_all_products() (strataalgebra.StrataAlgebra method)hUNtr•auhLNhMhh8]ubjc)r–}r—(h=Uh>jÀh?j’hAjfhC}r˜(jh‰jiXpyhG]hH]hI]hJ]hK]jkXmethodr™jmj™uhLNhMhh8]rš(jo)r›}rœ(h=XStrataAlgebra.do_all_products()h>j–h?Xn/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.do_all_productsrhAjshC}rž(hG]rŸhajvjwX
strataalgebrar …r¡}r¢bhH]hI]hJ]hK]r£haj|XStrataAlgebra.do_all_productsj~j}j‰uhLNhMhh8]r¤(j“)r¥}r¦(h=Xdo_all_productsh>j›h?jhAj–hC}r§(hI]hJ]hH]hG]hK]uhLNhMhh8]r¨hOXdo_all_productsr©…rª}r«(h=Uh>j¥ubaubjœ)r¬}r­(h=Uh>j›h?jhAjŸhC}r®(hI]hJ]hH]hG]hK]uhLNhMhh8]ubeubj¿)r¯}r°(h=Uh>j–h?jhAjÂhC}r±(hI]hJ]hH]hG]hK]uhLNhMhh8]r²(h~)r³}r´(h=X‚Compute all the products of basis elements of the ring (thus caching their values).
This could take a long time for some rings. ::h>j¯h?j’hAhhC}rµ(hI]hJ]hH]hG]hK]uhLKhMhh8]r¶hOXCompute all the products of basis elements of the ring (thus caching their values).
This could take a long time for some rings.r·…r¸}r¹(h=XCompute all the products of basis elements of the ring (thus caching their values).
This could take a long time for some rings.h>j³ubaubjD)rº}r»(h=X^sage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,1,(1,))
sage: s.do_all_products()h>j¯h?j’hAjGhC}r¼(hEhFhG]hH]hI]hJ]hK]uhLMÇhMhh8]r½hOX^sage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,1,(1,))
sage: s.do_all_products()r¾…r¿}rÀ(h=Uh>jºubaubeubeubj[)rÁ}rÂ(h=Uh>jÀh?Xj/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.get_stratumrÃhAj^hC}rÄ(hG]hH]hI]hJ]hK]Uentries]rÅ(jaX2get_stratum() (strataalgebra.StrataAlgebra method)hUNtrÆauhLNhMhh8]ubjc)rÇ}rÈ(h=Uh>jÀh?jÃhAjfhC}rÉ(jh‰jiXpyhG]hH]hI]hJ]hK]jkXmethodrÊjmjÊuhLNhMhh8]rË(jo)rÌ}rÍ(h=XStrataAlgebra.get_stratum(r, j)h>jÇh?Xj/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.get_stratumrÎhAjshC}rÏ(hG]rÐhajvjwX
strataalgebrarÑ…rÒ}rÓbhH]hI]hJ]hK]rÔhaj|XStrataAlgebra.get_stratumj~j}j‰uhLNhMhh8]rÕ(j“)rÖ}r×(h=Xget_stratumh>jÌh?jÎhAj–hC}rØ(hI]hJ]hH]hG]hK]uhLNhMhh8]rÙhOXget_stratumrÚ…rÛ}rÜ(h=Uh>jÖubaubjœ)rÝ}rÞ(h=Xr, jh>jÌh?jÎhAjŸhC}rß(hI]hJ]hH]hG]hK]uhLNhMhh8]rà(j¢)rá}râ(h=XrhC}rã(hI]hJ]hH]hG]hK]uh>jÝh8]rähOXr…rå}ræ(h=Uh>jáubahAjªubj¢)rç}rè(h=XjhC}ré(hI]hJ]hH]hG]hK]uh>jÝh8]rêhOXj…rë}rì(h=Uh>jçubahAjªubeubeubj¿)rí}rî(h=Uh>jÇh?jÎhAjÂhC}rï(hI]hJ]hH]hG]hK]uhLNhMhh8]rð(h~)rñ}rò(h=XEGet the :class:`StrataGraph` associated a a codimension and an index.h>jíh?jÃhAhhC}ró(hI]hJ]hH]hG]hK]uhLKhMhh8]rô(hOXGet the rõ…rö}r÷(h=XGet the h>jñubj)rø}rù(h=X:class:`StrataGraph`rúh>jñh?NhAjhC}rû(UreftypeXclassj܉jÝXStrataGraphU	refdomainXpyrühG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]rýh‡)rþ}rÿ(h=júhC}r	(hI]hJ]r	(jçjüXpy-classr	ehH]hG]hK]uh>jøh8]r	hOXStrataGraphr	…r	}r	(h=Uh>jþubahAhubaubhOX) associated a a codimension and an index.r	…r	}r		(h=X) associated a a codimension and an index.h>jñubeubjÎ)r
	}r	(h=Uh>jíh?jÃhAjÑhC}r	(hI]hJ]hH]hG]hK]uhLNhMhh8]r
	(jÔ)r	}r	(h=UhC}r	(hI]hJ]hH]hG]hK]uh>j
	h8]r	(jÙ)r	}r	(h=X
Parametersh>j	h?jÃhAjÜhC}r	(hI]hJ]hH]hG]hK]uhLKh8]r	hOX
Parametersr	…r	}r	(h=Uh>j	ubaubjâ)r	}r	(h=UhC}r	(hI]hJ]hH]hG]hK]uh>j	h8]r	jç)r	}r	(h=UhC}r	(hI]hJ]hH]hG]hK]uh>j	h8]r 	(jì)r!	}r"	(h=UhC}r#	(hI]hJ]hH]hG]hK]uh>j	h8]r$	h~)r%	}r&	(h=Xr -- The codimensionhC}r'	(hI]hJ]hH]hG]hK]uh>j!	h8]r(	(jõ)r)	}r*	(h=XrhC}r+	(hG]hH]jùˆhI]hJ]hK]uh>j%	h8]r,	hOXr…r-	}r.	(h=Uh>j)	ubahAjþubhOX -- r/	…r0	}r1	(h=Uh>j%	ubhOXThe codimensionr2	…r3	}r4	(h=XThe codimensionh>j%	ubehAhubahAj$ubjì)r5	}r6	(h=UhC}r7	(hI]hJ]hH]hG]hK]uh>j	h8]r8	h~)r9	}r:	(h=Xj -- The indexhC}r;	(hI]hJ]hH]hG]hK]uh>j5	h8]r<	(jõ)r=	}r>	(h=XjhC}r?	(hG]hH]jùˆhI]hJ]hK]uh>j9	h8]r@	hOXj…rA	}rB	(h=Uh>j=	ubahAjþubhOX -- rC	…rD	}rE	(h=Uh>j9	ubhOX	The indexrF	…rG	}rH	(h=X	The indexh>j9	ubehAhubahAj$ubehAj¾ubahAj¿ubehAjÀubjÔ)rI	}rJ	(h=UhC}rK	(hI]hJ]hH]hG]hK]uh>j
	h8]rL	(jÙ)rM	}rN	(h=XReturn typeh>jI	h?jÃhAjÜhC}rO	(hI]hJ]hH]hG]hK]uhLKh8]rP	hOXReturn typerQ	…rR	}rS	(h=Uh>jM	ubaubjâ)rT	}rU	(h=UhC}rV	(hI]hJ]hH]hG]hK]uh>jI	h8]rW	h~)rX	}rY	(h=XStrataGraphhC}rZ	(hI]hJ]hH]hG]hK]uh>jT	h8]r[	j)r\	}r]	(h=X:class:`StrataGraph`r^	h>jX	h?NhAjhC}r_	(UreftypeXclassj܉jÝXStrataGraphU	refdomainXpyr`	hG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]ra	h‡)rb	}rc	(h=j^	hC}rd	(hI]hJ]re	(jçj`	Xpy-classrf	ehH]hG]hK]uh>j\	h8]rg	hOXStrataGraphrh	…ri	}rj	(h=Uh>jb	ubahAhubaubahAhubahAj¿ubehAjÀubeubh~)rk	}rl	(h=XESee :class:`~strataalgebra.StrataAlgebra` documentation for examples.h>jíh?jÃhAhhC}rm	(hI]hJ]hH]hG]hK]uhLKhMhh8]rn	(hOXSee ro	…rp	}rq	(h=XSee h>jk	ubj)rr	}rs	(h=X%:class:`~strataalgebra.StrataAlgebra`rt	h>jk	h?NhAjhC}ru	(UreftypeXclassj܉jÝXstrataalgebra.StrataAlgebraU	refdomainXpyrv	hG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]rw	h‡)rx	}ry	(h=jt	hC}rz	(hI]hJ]r{	(jçjv	Xpy-classr|	ehH]hG]hK]uh>jr	h8]r}	hOX
StrataAlgebrar~	…r	}r€	(h=Uh>jx	ubahAhubaubhOX documentation for examples.r	…r‚	}rƒ	(h=X documentation for examples.h>jk	ubeubeubeubj[)r„	}r…	(h=Uh>jÀh?Xf/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.hilbertr†	hAj^hC}r‡	(hG]hH]hI]hJ]hK]Uentries]rˆ	(jaX.hilbert() (strataalgebra.StrataAlgebra method)hUNtr‰	auhLNhMhh8]ubjc)rŠ	}r‹	(h=Uh>jÀh?j†	hAjfhC}rŒ	(jh‰jiXpyr	hG]hH]hI]hJ]hK]jkXmethodrŽ	jmjŽ	uhLNhMhh8]r	(jo)r	}r‘	(h=X!StrataAlgebra.hilbert(codim=None)h>jŠ	h?Xf/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.hilbertr’	hAjshC}r“	(hG]r”	hajvjwX
strataalgebrar•	…r–	}r—	bhH]hI]hJ]hK]r˜	haj|XStrataAlgebra.hilbertj~j}j‰uhLNhMhh8]r™	(j“)rš	}r›	(h=Xhilberth>j	h?j’	hAj–hC}rœ	(hI]hJ]hH]hG]hK]uhLNhMhh8]r	hOXhilbertrž	…rŸ	}r 	(h=Uh>jš	ubaubjœ)r¡	}r¢	(h=X
codim=Noneh>j	h?j’	hAjŸhC}r£	(hI]hJ]hH]hG]hK]uhLNhMhh8]r¤	j¢)r¥	}r¦	(h=X
codim=NonehC}r§	(hI]hJ]hH]hG]hK]uh>j¡	h8]r¨	hOX
codim=Noner©	…rª	}r«	(h=Uh>j¥	ubahAjªubaubeubj¿)r¬	}r­	(h=Uh>jŠ	h?j’	hAjÂhC}r®	(hI]hJ]hH]hG]hK]uhLNhMhh8]r¯	(h~)r°	}r±	(h=X¦Give the number of basis elements in the Strata algebra for the given codimension (the Hilbert function).
If the codimension is omitted, return a list of all of them.r²	h>j¬	h?j†	hAhhC}r³	(hI]hJ]hH]hG]hK]uhLKhMhh8]r´	hOX¦Give the number of basis elements in the Strata algebra for the given codimension (the Hilbert function).
If the codimension is omitted, return a list of all of them.rµ	…r¶	}r·	(h=j²	h>j°	ubaubh~)r¸	}r¹	(h=XyThis is NOT the Betti numbers for the moduli space of curves! For that see :meth:`~strataalgebra.StrataAlgebra.FZ_betti`.h>j¬	h?j†	hAhhC}rº	(hI]hJ]hH]hG]hK]uhLKhMhh8]r»	(hOXKThis is NOT the Betti numbers for the moduli space of curves! For that see r¼	…r½	}r¾	(h=XKThis is NOT the Betti numbers for the moduli space of curves! For that see h>j¸	ubj)r¿	}rÀ	(h=X-:meth:`~strataalgebra.StrataAlgebra.FZ_betti`rÁ	h>j¸	h?NhAjhC}rÂ	(UreftypeXmethj܉jÝX$strataalgebra.StrataAlgebra.FZ_bettiU	refdomainXpyrÃ	hG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]rÄ	h‡)rÅ	}rÆ	(h=jÁ	hC}rÇ	(hI]hJ]rÈ	(jçjÃ	Xpy-methrÉ	ehH]hG]hK]uh>j¿	h8]rÊ	hOX
FZ_betti()rË	…rÌ	}rÍ	(h=Uh>jÅ	ubahAhubaubhOX.…rÎ	}rÏ	(h=X.h>j¸	ubeubjÎ)rÐ	}rÑ	(h=Uh>j¬	h?j†	hAjÑhC}rÒ	(hI]hJ]hH]hG]hK]uhLNhMhh8]rÓ	jÔ)rÔ	}rÕ	(h=UhC}rÖ	(hI]hJ]hH]hG]hK]uh>jÐ	h8]r×	(jÙ)rØ	}rÙ	(h=X
Parametersh>jÔ	h?j†	hAjÜhC}rÚ	(hI]hJ]hH]hG]hK]uhLKh8]rÛ	hOX
ParametersrÜ	…rÝ	}rÞ	(h=Uh>jØ	ubaubjâ)rß	}rà	(h=UhC}rá	(hI]hJ]hH]hG]hK]uh>jÔ	h8]râ	h~)rã	}rä	(h=X2codim (int) -- Optional. The codimension you want.hC}rå	(hI]hJ]hH]hG]hK]uh>jß	h8]ræ	(jõ)rç	}rè	(h=XcodimhC}ré	(hG]hH]jùˆhI]hJ]hK]uh>jã	h8]rê	hOXcodimrë	…rì	}rí	(h=Uh>jç	ubahAjþubhOX (rî	…rï	}rð	(h=Uh>jã	ubj)rñ	}rò	(h=UhC}ró	(UreftypejjùˆU	reftargetXintrô	U	refdomainj	hG]hH]Urefexplicit‰hI]hJ]hK]uh>jã	h8]rõ	j	)rö	}r÷	(h=jô	hC}rø	(hI]hJ]hH]hG]hK]uh>jñ	h8]rù	hOXintrú	…rû	}rü	(h=Uh>jö	ubahAjubahAjubhOX)…rý	}rþ	(h=Uh>jã	ubhOX -- rÿ	…r
}r
(h=Uh>jã	ubhOX#Optional. The codimension you want.r
…r
}r
(h=X#Optional. The codimension you want.h>jã	ubehAhubahAj¿ubehAjÀubaubjD)r
}r
(h=XŽsage: from strataalgebra import *
sage: StrataAlgebra(QQ, 2, (1,)).hilbert()
[1, 4, 17, 49, 92]
sage: StrataAlgebra(QQ, 2, (1,)).hilbert(2)
17h>j¬	h?j†	hAjGhC}r
(hEhFhG]hH]hI]hJ]hK]uhLMåhMhh8]r
hOXŽsage: from strataalgebra import *
sage: StrataAlgebra(QQ, 2, (1,)).hilbert()
[1, 4, 17, 49, 92]
sage: StrataAlgebra(QQ, 2, (1,)).hilbert(2)
17r	
…r

}r
(h=Uh>j
ubaubeubeubj[)r
}r
(h=Uh>jÀh?Xb/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.irrr
hAj^hC}r
(hG]hH]hI]hJ]hK]Uentries]r
(jaX*irr() (strataalgebra.StrataAlgebra method)hUNtr
auhLNhMhh8]ubjc)r
}r
(h=Uh>jÀh?j
hAjfhC}r
(jh‰jiXpyhG]hH]hI]hJ]hK]jkXmethodr
jmj
uhLNhMhh8]r
(jo)r
}r
(h=XStrataAlgebra.irr()h>j
h?Xb/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.irrr
hAjshC}r
(hG]r
hajvjwX
strataalgebrar
…r
}r
bhH]hI]hJ]hK]r
haj|XStrataAlgebra.irrj~j}j‰uhLNhMhh8]r 
(j“)r!
}r"
(h=Xirrh>j
h?j
hAj–hC}r#
(hI]hJ]hH]hG]hK]uhLNhMhh8]r$
hOXirrr%
…r&
}r'
(h=Uh>j!
ubaubjœ)r(
}r)
(h=Uh>j
h?j
hAjŸhC}r*
(hI]hJ]hH]hG]hK]uhLNhMhh8]ubeubj¿)r+
}r,
(h=Uh>j
h?j
hAjÂhC}r-
(hI]hJ]hH]hG]hK]uhLNhMhh8]r.
(h~)r/
}r0
(h=XPMake the irreducible boundary. It will be returned with a coefficient of 1/2. ::h>j+
h?j
hAhhC}r1
(hI]hJ]hH]hG]hK]uhLKhMhh8]r2
hOXMMake the irreducible boundary. It will be returned with a coefficient of 1/2.r3
…r4
}r5
(h=XMMake the irreducible boundary. It will be returned with a coefficient of 1/2.h>j/
ubaubjD)r6
}r7
(h=X_sage: from strataalgebra import *
sage: s = StrataAlgebra(QQ, 1, (1,2))
sage: s.irr()
1/2*D_irrh>j+
h?j
hAjGhC}r8
(hEhFhG]hH]hI]hJ]hK]uhLMóhMhh8]r9
hOX_sage: from strataalgebra import *
sage: s = StrataAlgebra(QQ, 1, (1,2))
sage: s.irr()
1/2*D_irrr:
…r;
}r<
(h=Uh>j6
ubaubeubeubj[)r=
}r>
(h=Uh>jÀh?Xd/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.kappar?
hAj^hC}r@
(hG]hH]hI]hJ]hK]Uentries]rA
(jaX,kappa() (strataalgebra.StrataAlgebra method)hUNtrB
auhLNhMhh8]ubjc)rC
}rD
(h=Uh>jÀh?j?
hAjfhC}rE
(jh‰jiXpyrF
hG]hH]hI]hJ]hK]jkXmethodrG
jmjG
uhLNhMhh8]rH
(jo)rI
}rJ
(h=XStrataAlgebra.kappa(a)h>jC
h?Xd/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.kapparK
hAjshC}rL
(hG]rM
hajvjwX
strataalgebrarN
…rO
}rP
bhH]hI]hJ]hK]rQ
haj|XStrataAlgebra.kappaj~j}j‰uhLNhMhh8]rR
(j“)rS
}rT
(h=Xkappah>jI
h?jK
hAj–hC}rU
(hI]hJ]hH]hG]hK]uhLNhMhh8]rV
hOXkapparW
…rX
}rY
(h=Uh>jS
ubaubjœ)rZ
}r[
(h=Xah>jI
h?jK
hAjŸhC}r\
(hI]hJ]hH]hG]hK]uhLNhMhh8]r]
j¢)r^
}r_
(h=XahC}r`
(hI]hJ]hH]hG]hK]uh>jZ
h8]ra
hOXa…rb
}rc
(h=Uh>j^
ubahAjªubaubeubj¿)rd
}re
(h=Uh>jC
h?jK
hAjÂhC}rf
(hI]hJ]hH]hG]hK]uhLNhMhh8]rg
(h~)rh
}ri
(h=XReturn a kappa class.rj
h>jd
h?j?
hAhhC}rk
(hI]hJ]hH]hG]hK]uhLKhMhh8]rl
hOXReturn a kappa class.rm
…rn
}ro
(h=jj
h>jh
ubaubjÎ)rp
}rq
(h=Uh>jd
h?j?
hAjÑhC}rr
(hI]hJ]hH]hG]hK]uhLNhMhh8]rs
(jÔ)rt
}ru
(h=UhC}rv
(hI]hJ]hH]hG]hK]uh>jp
h8]rw
(jÙ)rx
}ry
(h=X
Parametersh>jt
h?j?
hAjÜhC}rz
(hI]hJ]hH]hG]hK]uhLKh8]r{
hOX
Parametersr|
…r}
}r~
(h=Uh>jx
ubaubjâ)r
}r€
(h=UhC}r
(hI]hJ]hH]hG]hK]uh>jt
h8]r‚
h~)rƒ
}r„
(h=XCa (int) -- The subscript (codimension) of the kappa class you want.hC}r…
(hI]hJ]hH]hG]hK]uh>j
h8]r†
(jõ)r‡
}rˆ
(h=XahC}r‰
(hG]hH]jùˆhI]hJ]hK]uh>jƒ
h8]rŠ
hOXa…r‹
}rŒ
(h=Uh>j‡
ubahAjþubhOX (r
…rŽ
}r
(h=Uh>jƒ
ubj)r
}r‘
(h=UhC}r’
(UreftypejjùˆU	reftargetXintr“
U	refdomainjF
hG]hH]Urefexplicit‰hI]hJ]hK]uh>jƒ
h8]r”
j	)r•
}r–
(h=j“
hC}r—
(hI]hJ]hH]hG]hK]uh>j
h8]r˜
hOXintr™
…rš
}r›
(h=Uh>j•
ubahAjubahAjubhOX)…rœ
}r
(h=Uh>jƒ
ubhOX -- rž
…rŸ
}r 
(h=Uh>jƒ
ubhOX8The subscript (codimension) of the kappa class you want.r¡
…r¢
}r£
(h=X8The subscript (codimension) of the kappa class you want.h>jƒ
ubehAhubahAj¿ubehAjÀubjÔ)r¤
}r¥
(h=UhC}r¦
(hI]hJ]hH]hG]hK]uh>jp
h8]r§
(jÙ)r¨
}r©
(h=XReturn typeh>j¤
h?j?
hAjÜhC}rª
(hI]hJ]hH]hG]hK]uhLKh8]r«
hOXReturn typer¬
…r­
}r®
(h=Uh>j¨
ubaubjâ)r¯
}r°
(h=UhC}r±
(hI]hJ]hH]hG]hK]uh>j¤
h8]r²
h~)r³
}r´
(h=XStrataAlgebraElementhC}rµ
(hI]hJ]hH]hG]hK]uh>j¯
h8]r¶
j)r·
}r¸
(h=X:class:`StrataAlgebraElement`r¹
h>j³
h?NhAjhC}rº
(UreftypeXclassj܉jÝXStrataAlgebraElementU	refdomainXpyr»
hG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]r¼
h‡)r½
}r¾
(h=j¹
hC}r¿
(hI]hJ]rÀ
(jçj»
Xpy-classrÁ
ehH]hG]hK]uh>j·
h8]rÂ
hOXStrataAlgebraElementrÃ
…rÄ
}rÅ
(h=Uh>j½
ubahAhubaubahAhubahAj¿ubehAjÀubeubjD)rÆ
}rÇ
(h=X%sage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,2,())
sage: s.kappa(1)
ka1
sage: s.kappa(3)
ka3
sage: s.kappa(1)*s.kappa(2)
ka1*ka2
sage: s.kappa(2)*s.kappa(2)
0
sage: s.boundary(1,())*s.kappa(1)
s_2,4
sage: s.get_stratum(2,4)
[      0       0]
[ka1 + 1       1]
[      1       1]h>jd
h?j?
hAjGhC}rÈ
(hEhFhG]hH]hI]hJ]hK]uhLMhMhh8]rÉ
hOX%sage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,2,())
sage: s.kappa(1)
ka1
sage: s.kappa(3)
ka3
sage: s.kappa(1)*s.kappa(2)
ka1*ka2
sage: s.kappa(2)*s.kappa(2)
0
sage: s.boundary(1,())*s.kappa(1)
s_2,4
sage: s.get_stratum(2,4)
[      0       0]
[ka1 + 1       1]
[      1       1]rÊ
…rË
}rÌ
(h=Uh>jÆ
ubaubh~)rÍ
}rÎ
(h=XQThe subscript must be less than or equal to the dimension of the moduli space. ::h>jd
h?j?
hAhhC}rÏ
(hI]hJ]hH]hG]hK]uhLKhMhh8]rÐ
hOXNThe subscript must be less than or equal to the dimension of the moduli space.rÑ
…rÒ
}rÓ
(h=XNThe subscript must be less than or equal to the dimension of the moduli space.h>jÍ
ubaubjD)rÔ
}rÕ
(h=XCsage: s.kappa(4)
Traceback (most recent call last):
...
KeyError: 4h>jd
h?j?
hAjGhC}rÖ
(hEhFhG]hH]hI]hJ]hK]uhLMhMhh8]r×
hOXCsage: s.kappa(4)
Traceback (most recent call last):
...
KeyError: 4rØ
…rÙ
}rÚ
(h=Uh>jÔ
ubaubeubeubj[)rÛ
}rÜ
(h=Uh>jÀh?Xk/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.print_stratarÝ
hAj^hC}rÞ
(hG]hH]hI]hJ]hK]Uentries]rß
(jaX3print_strata() (strataalgebra.StrataAlgebra method)hUNtrà
auhLNhMhh8]ubjc)rá
}râ
(h=Uh>jÀh?jÝ
hAjfhC}rã
(jh‰jiXpyhG]hH]hI]hJ]hK]jkXmethodrä
jmjä
uhLNhMhh8]rå
(jo)ræ
}rç
(h=XStrataAlgebra.print_strata(r)h>já
h?Xk/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.print_stratarè
hAjshC}ré
(hG]rê
hajvjwX
strataalgebrarë
…rì
}rí
bhH]hI]hJ]hK]rî
haj|XStrataAlgebra.print_strataj~j}j‰uhLNhMhh8]rï
(j“)rð
}rñ
(h=Xprint_stratah>jæ
h?jè
hAj–hC}rò
(hI]hJ]hH]hG]hK]uhLNhMhh8]ró
hOXprint_stratarô
…rõ
}rö
(h=Uh>jð
ubaubjœ)r÷
}rø
(h=Xrh>jæ
h?jè
hAjŸhC}rù
(hI]hJ]hH]hG]hK]uhLNhMhh8]rú
j¢)rû
}rü
(h=XrhC}rý
(hI]hJ]hH]hG]hK]uh>j÷
h8]rþ
hOXr…rÿ
}r(h=Uh>jû
ubahAjªubaubeubj¿)r}r(h=Uh>já
h?jè
hAjÂhC}r(hI]hJ]hH]hG]hK]uhLNhMhh8]r(h~)r}r(h=X=Print all the strata, with their indexes, in codimension `r`.h>jh?jÝ
hAhhC}r(hI]hJ]hH]hG]hK]uhLKhMhh8]r(hOX9Print all the strata, with their indexes, in codimension r	…r
}r(h=X9Print all the strata, with their indexes, in codimension h>jubj)r}r
(h=X`r`hC}r(hI]hJ]hH]hG]hK]uh>jh8]rhOXr…r}r(h=Uh>jubahAjubhOX.…r}r(h=X.h>jubeubjÎ)r}r(h=Uh>jh?jÝ
hAjÑhC}r(hI]hJ]hH]hG]hK]uhLNhMhh8]r(jÔ)r}r(h=UhC}r(hI]hJ]hH]hG]hK]uh>jh8]r(jÙ)r}r(h=X
Parametersh>jh?jÝ
hAjÜhC}r(hI]hJ]hH]hG]hK]uhLKh8]rhOX
Parametersr …r!}r"(h=Uh>jubaubjâ)r#}r$(h=UhC}r%(hI]hJ]hH]hG]hK]uh>jh8]r&h~)r'}r((h=Xr -- The codimensionhC}r)(hI]hJ]hH]hG]hK]uh>j#h8]r*(jõ)r+}r,(h=XrhC}r-(hG]hH]jùˆhI]hJ]hK]uh>j'h8]r.hOXr…r/}r0(h=Uh>j+ubahAjþubhOX -- r1…r2}r3(h=Uh>j'ubhOXThe codimensionr4…r5}r6(h=XThe codimensionh>j'ubehAhubahAj¿ubehAjÀubjÔ)r7}r8(h=UhC}r9(hI]hJ]hH]hG]hK]uh>jh8]r:(jÙ)r;}r<(h=XReturnsh>j7h?jÝ
hAjÜhC}r=(hI]hJ]hH]hG]hK]uhLKh8]r>hOXReturnsr?…r@}rA(h=Uh>j;ubaubjâ)rB}rC(h=UhC}rD(hI]hJ]hH]hG]hK]uh>j7h8]rEh~)rF}rG(h=XNonehC}rH(hI]hJ]hH]hG]hK]uh>jBh8]rIhOXNonerJ…rK}rL(h=XNoneh>jFubahAhubahAj¿ubehAjÀubeubh~)rM}rN(h=XESee :class:`~strataalgebra.StrataAlgebra` documentation for examples.h>jh?jÝ
hAhhC}rO(hI]hJ]hH]hG]hK]uhLKhMhh8]rP(hOXSee rQ…rR}rS(h=XSee h>jMubj)rT}rU(h=X%:class:`~strataalgebra.StrataAlgebra`rVh>jMh?NhAjhC}rW(UreftypeXclassj܉jÝXstrataalgebra.StrataAlgebraU	refdomainXpyrXhG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]rYh‡)rZ}r[(h=jVhC}r\(hI]hJ]r](jçjXXpy-classr^ehH]hG]hK]uh>jTh8]r_hOX
StrataAlgebrar`…ra}rb(h=Uh>jZubahAhubaubhOX documentation for examples.rc…rd}re(h=X documentation for examples.h>jMubeubeubeubj[)rf}rg(h=Uh>jÀh?Xb/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.psirhhAj^hC}ri(hG]hH]hI]hJ]hK]Uentries]rj(jaX*psi() (strataalgebra.StrataAlgebra method)hUNtrkauhLNhMhh8]ubjc)rl}rm(h=Uh>jÀh?jhhAjfhC}rn(jh‰jiXpyrohG]hH]hI]hJ]hK]jkXmethodrpjmjpuhLNhMhh8]rq(jo)rr}rs(h=XStrataAlgebra.psi(mark)rth>jlh?Xb/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebra.psiruhAjshC}rv(hG]rwhajvjwX
strataalgebrarx…ry}rzbhH]hI]hJ]hK]r{haj|XStrataAlgebra.psij~j}j‰uhLNhMhh8]r|(j“)r}}r~(h=Xpsih>jrh?juhAj–hC}r(hI]hJ]hH]hG]hK]uhLNhMhh8]r€hOXpsir…r‚}rƒ(h=Uh>j}ubaubjœ)r„}r…(h=Xmarkh>jrh?juhAjŸhC}r†(hI]hJ]hH]hG]hK]uhLNhMhh8]r‡j¢)rˆ}r‰(h=XmarkhC}rŠ(hI]hJ]hH]hG]hK]uh>j„h8]r‹hOXmarkrŒ…r}rŽ(h=Uh>jˆubahAjªubaubeubj¿)r}r(h=Uh>jlh?juhAjÂhC}r‘(hI]hJ]hH]hG]hK]uhLNhMhh8]r’(h~)r“}r”(h=XReturn a psi class.r•h>jh?jhhAhhC}r–(hI]hJ]hH]hG]hK]uhLKhMhh8]r—hOXReturn a psi class.r˜…r™}rš(h=j•h>j“ubaubjÎ)r›}rœ(h=Uh>jh?jhhAjÑhC}r(hI]hJ]hH]hG]hK]uhLNhMhh8]rž(jÔ)rŸ}r (h=UhC}r¡(hI]hJ]hH]hG]hK]uh>j›h8]r¢(jÙ)r£}r¤(h=X
Parametersh>jŸh?jhhAjÜhC}r¥(hI]hJ]hH]hG]hK]uhLKh8]r¦hOX
Parametersr§…r¨}r©(h=Uh>j£ubaubjâ)rª}r«(h=UhC}r¬(hI]hJ]hH]hG]hK]uh>jŸh8]r­h~)r®}r¯(h=X8mark (int) -- The mark that the -class is associated to.hC}r°(hI]hJ]hH]hG]hK]uh>jªh8]r±(jõ)r²}r³(h=XmarkhC}r´(hG]hH]jùˆhI]hJ]hK]uh>j®h8]rµhOXmarkr¶…r·}r¸(h=Uh>j²ubahAjþubhOX (r¹…rº}r»(h=Uh>j®ubj)r¼}r½(h=UhC}r¾(UreftypejjùˆU	reftargetXintr¿U	refdomainjohG]hH]Urefexplicit‰hI]hJ]hK]uh>j®h8]rÀj	)rÁ}rÂ(h=j¿hC}rÃ(hI]hJ]hH]hG]hK]uh>j¼h8]rÄhOXintrÅ…rÆ}rÇ(h=Uh>jÁubahAjubahAjubhOX)…rÈ}rÉ(h=Uh>j®ubhOX -- rÊ…rË}rÌ(h=Uh>j®ubhOXThe mark that the rÍ…rÎ}rÏ(h=XThe mark that the h>j®ubj
)rÐ}rÑ(h=UhC}rÒ(UlatexX\psihG]hH]hI]hJ]hK]uh>j®h8]hAjubhOX-class is associated to.rÓ…rÔ}rÕ(h=X-class is associated to.h>j®ubehAhubahAj¿ubehAjÀubjÔ)rÖ}r×(h=UhC}rØ(hI]hJ]hH]hG]hK]uh>j›h8]rÙ(jÙ)rÚ}rÛ(h=XReturn typeh>jÖh?jhhAjÜhC}rÜ(hI]hJ]hH]hG]hK]uhLKh8]rÝhOXReturn typerÞ…rß}rà(h=Uh>jÚubaubjâ)rá}râ(h=UhC}rã(hI]hJ]hH]hG]hK]uh>jÖh8]räh~)rå}ræ(h=XStrataAlgebraElementhC}rç(hI]hJ]hH]hG]hK]uh>jáh8]rèj)ré}rê(h=X:class:`StrataAlgebraElement`rëh>jåh?NhAjhC}rì(UreftypeXclassj܉jÝXStrataAlgebraElementU	refdomainXpyríhG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàj}jáNuhLNh8]rîh‡)rï}rð(h=jëhC}rñ(hI]hJ]rò(jçjíXpy-classróehH]hG]hK]uh>jéh8]rôhOXStrataAlgebraElementrõ…rö}r÷(h=Uh>jïubahAhubaubahAhubahAj¿ubehAjÀubeubh~)rø}rù(h=XExamples ::rúh>jh?jhhAhhC}rû(hI]hJ]hH]hG]hK]uhLKhMhh8]rühOXExamplesrý…rþ}rÿ(h=XExamplesh>jøubaubjD)r}r(h=XÃsage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,0,(1,2,3,4,5))
sage: psi1 = s.psi(1); psi1
ps1
sage: psi2 = s.psi(2); psi2
ps2
sage: psi1*psi2
ps1*ps2
sage: (psi1*psi2).integrate()
2h>jh?jhhAjGhC}r(hEhFhG]hH]hI]hJ]hK]uhLM2hMhh8]rhOXÃsage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,0,(1,2,3,4,5))
sage: psi1 = s.psi(1); psi1
ps1
sage: psi2 = s.psi(2); psi2
ps2
sage: psi1*psi2
ps1*ps2
sage: (psi1*psi2).integrate()
2r…r}r(h=Uh>jubaubh~)r}r(h=XPNote that the psi variables are not automatically injected into the namespace ::r	h>jh?jhhAhhC}r
(hI]hJ]hH]hG]hK]uhLKhMhh8]rhOXMNote that the psi variables are not automatically injected into the namespacer…r
}r(h=XMNote that the psi variables are not automatically injected into the namespaceh>jubaubjD)r}r(h=XUsage: ps1
Traceback (most recent call last):
...
NameError: name 'ps1' is not definedh>jh?jhhAjGhC}r(hEhFhG]hH]hI]hJ]hK]uhLM?hMhh8]rhOXUsage: ps1
Traceback (most recent call last):
...
NameError: name 'ps1' is not definedr…r}r(h=Uh>jubaubh~)r}r(h=XtIn case of repeated marks, notice that the :math:`\psi`-class is the pushforward under the quotient map. Observe: ::rh>jh?jhhAhhC}r(hI]hJ]hH]hG]hK]uhLKhMhh8]r(hOX+In case of repeated marks, notice that the r…r}r(h=X+In case of repeated marks, notice that the h>jubj
)r}r(h=UhC}r (UlatexX\psihG]hH]hI]hJ]hK]uh>jh8]hAjubhOX:-class is the pushforward under the quotient map. Observe:r!…r"}r#(h=X:-class is the pushforward under the quotient map. Observe:h>jubeubjD)r$}r%(h=Xsage: s = StrataAlgebra(QQ,1,(1,1))
sage: s.psi(1)^2
ps1^2 + ps1*ps1
sage: s.psi(2)
Traceback (most recent call last):
...
ValueError: tuple.index(x): x not in tuple
sage: s = StrataAlgebra(QQ,1,(1,1,1))
sage: s.psi(1)^2
2*ps1^2 + 4*ps1*ps1
sage: s.psi(1)^3
4*ps1^3 + 24*ps1^2*ps1 + 8*ps1*ps1*ps1
sage: var('ps') #This should be done automatically.
ps
sage: s([[0,1,1,1],[1,ps^3+1,1,1]])
ps1^3
sage: s = StrataAlgebra(QQ,0,(1,1,1,2,2))
sage: s.psi(1)*s.psi(2)
12*ps1*ps2
sage: s.psi(1)*s.psi(1)
4*ps1^2 + 8*ps1*ps1h>jh?jhhAjGhC}r&(hEhFhG]hH]hI]hJ]hK]uhLMFhMhh8]r'hOXsage: s = StrataAlgebra(QQ,1,(1,1))
sage: s.psi(1)^2
ps1^2 + ps1*ps1
sage: s.psi(2)
Traceback (most recent call last):
...
ValueError: tuple.index(x): x not in tuple
sage: s = StrataAlgebra(QQ,1,(1,1,1))
sage: s.psi(1)^2
2*ps1^2 + 4*ps1*ps1
sage: s.psi(1)^3
4*ps1^3 + 24*ps1^2*ps1 + 8*ps1*ps1*ps1
sage: var('ps') #This should be done automatically.
ps
sage: s([[0,1,1,1],[1,ps^3+1,1,1]])
ps1^3
sage: s = StrataAlgebra(QQ,0,(1,1,1,2,2))
sage: s.psi(1)*s.psi(2)
12*ps1*ps2
sage: s.psi(1)*s.psi(1)
4*ps1^2 + 8*ps1*ps1r(…r)}r*(h=Uh>j$ubaubh~)r+}r,(h=X@This maybe looks surprising, but it makes sense with the formular-h>jh?jhhAhhC}r.(hI]hJ]hH]hG]hK]uhLK2hMhh8]r/hOX@This maybe looks surprising, but it makes sense with the formular0…r1}r2(h=j-h>j+ubaubcsphinx.ext.mathbase
displaymath
r3)r4}r5(h=Uh>jh?jhhAUdisplaymathr6hC}r7(Ulatexr8Xx\pi_*(\alpha) \pi_*(\beta) = \frac{1}{|G|} \pi_* \left( \sum_{\sigma, \tau \in G} \sigma_*(\alpha) \tau_*(\beta) \right)Unowrapr9‰Unumberr:NhG]hH]hI]hJ]hK]Udocnamer;hbUlabelr<NuhLK4hMhh8]ubh~)r=}r>(h=X‰for two class :math:`\alpha,\;\beta \in H^*(X)` where :math:`\pi: X \rightarrow X/G` is the quotient map and :math:`G` is a finite group.r?h>jh?jhhAhhC}r@(hI]hJ]hH]hG]hK]uhLK8hMhh8]rA(hOXfor two class rB…rC}rD(h=Xfor two class h>j=ubj
)rE}rF(h=UhC}rG(UlatexX\alpha,\;\beta \in H^*(X)hG]hH]hI]hJ]hK]uh>j=h8]hAjubhOX where rH…rI}rJ(h=X where h>j=ubj
)rK}rL(h=UhC}rM(UlatexX\pi: X \rightarrow X/GhG]hH]hI]hJ]hK]uh>j=h8]hAjubhOX is the quotient map and rN…rO}rP(h=X is the quotient map and h>j=ubj
)rQ}rR(h=UhC}rS(UlatexXGhG]hH]hI]hJ]hK]uh>j=h8]hAjubhOX is a finite group.rT…rU}rV(h=X is a finite group.h>j=ubeubeubeubeubeubj[)rW}rX(h=Uh>jMh?Xo/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebraElement.integraterYhAj^hC}rZ(hG]hH]hI]hJ]hK]Uentries]r[(jaX7integrate() (strataalgebra.StrataAlgebraElement method)hUNtr\auhLNhMhh8]ubjc)r]}r^(h=Uh>jMh?jYhAjfhC}r_(jh‰jiXpyhG]hH]hI]hJ]hK]jkXmethodr`jmj`uhLNhMhh8]ra(jo)rb}rc(h=X StrataAlgebraElement.integrate()h>j]h?Xo/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebraElement.integraterdhAjshC}re(hG]rfhajvjwX
strataalgebrarg…rh}ribhH]hI]hJ]hK]rjhaj|XStrataAlgebraElement.integratej~XStrataAlgebraElementj‰uhLNhMhh8]rk(jŠ)rl}rm(h=XStrataAlgebraElement.h>jbh?jdhAjhC}rn(hI]hJ]hH]hG]hK]uhLNhMhh8]rohOXStrataAlgebraElement.rp…rq}rr(h=Uh>jlubaubj“)rs}rt(h=X	integrateh>jbh?jdhAj–hC}ru(hI]hJ]hH]hG]hK]uhLNhMhh8]rvhOX	integraterw…rx}ry(h=Uh>jsubaubjœ)rz}r{(h=Uh>jbh?jdhAjŸhC}r|(hI]hJ]hH]hG]hK]uhLNhMhh8]ubeubj¿)r}}r~(h=Uh>j]h?jdhAjÂhC}r(hI]hJ]hH]hG]hK]uhLNhMhh8]r€(h~)r}r‚(h=XJReturn the integral of this class, i.e. its degree in the top codimension.rƒh>j}h?jYhAhhC}r„(hI]hJ]hH]hG]hK]uhLKhMhh8]r…hOXJReturn the integral of this class, i.e. its degree in the top codimension.r†…r‡}rˆ(h=jƒh>jubaubh~)r‰}rŠ(h=XWClasses of codimension less that the dimension of the moduli space will integrate to 0.r‹h>j}h?jYhAhhC}rŒ(hI]hJ]hH]hG]hK]uhLKhMhh8]rhOXWClasses of codimension less that the dimension of the moduli space will integrate to 0.rŽ…r}r(h=j‹h>j‰ubaubh~)r‘}r’(h=XéThis uses the FZ relations to perform the integration. It is probably not very efficient. But it provides a nice check of the implementation. Consider using the ``topintersections`` module if you need to compute something quickly. ::h>j}h?jYhAhhC}r“(hI]hJ]hH]hG]hK]uhLKhMhh8]r”(hOX¡This uses the FZ relations to perform the integration. It is probably not very efficient. But it provides a nice check of the implementation. Consider using the r•…r–}r—(h=X¡This uses the FZ relations to perform the integration. It is probably not very efficient. But it provides a nice check of the implementation. Consider using the h>j‘ubh‡)r˜}r™(h=X``topintersections``hC}rš(hI]hJ]hH]hG]hK]uh>j‘h8]r›hOXtopintersectionsrœ…r}rž(h=Uh>j˜ubahAhubhOX1 module if you need to compute something quickly.rŸ…r }r¡(h=X1 module if you need to compute something quickly.h>j‘ubeubjD)r¢}r£(h=X\sage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,1,(1,2))
sage: (s.psi(1)*s.psi(2)).integrate()
1/24
sage: s.kappa(2).integrate()
1/24
sage: s.get_stratum(2,0) #just so you can see it.
[0 1 2 0 0]
[0 0 0 2 1]
[0 1 1 0 1]
sage: s(2,0).integrate()
1
sage: s(1,2).integrate()
0
sage: (42*s(2,0) + s(1,1) + 48*s.kappa(2)).integrate()
44    h>j}h?jYhAjGhC}r¤(hEhFhG]hH]hI]hJ]hK]uhLKhMhh8]r¥hOX\sage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,1,(1,2))
sage: (s.psi(1)*s.psi(2)).integrate()
1/24
sage: s.kappa(2).integrate()
1/24
sage: s.get_stratum(2,0) #just so you can see it.
[0 1 2 0 0]
[0 0 0 2 1]
[0 1 1 0 1]
sage: s(2,0).integrate()
1
sage: s(1,2).integrate()
0
sage: (42*s(2,0) + s(1,1) + 48*s.kappa(2)).integrate()
44    r¦…r§}r¨(h=Uh>j¢ubaubeubeubj[)r©}rª(h=Uh>jMh?Xj/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebraElement.dictr«hAj^hC}r¬(hG]hH]hI]hJ]hK]Uentries]r­(jaX2dict() (strataalgebra.StrataAlgebraElement method)h
UNtr®auhLNhMhh8]ubjc)r¯}r°(h=Uh>jMh?j«hAjfhC}r±(jh‰jiXpyhG]hH]hI]hJ]hK]jkXmethodr²jmj²uhLNhMhh8]r³(jo)r´}rµ(h=XStrataAlgebraElement.dict()h>j¯h?Xj/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebraElement.dictr¶hAjshC}r·(hG]r¸h
ajvjwX
strataalgebrar¹…rº}r»bhH]hI]hJ]hK]r¼h
aj|XStrataAlgebraElement.dictj~XStrataAlgebraElementj‰uhLNhMhh8]r½(jŠ)r¾}r¿(h=XStrataAlgebraElement.h>j´h?j¶hAjhC}rÀ(hI]hJ]hH]hG]hK]uhLNhMhh8]rÁhOXStrataAlgebraElement.rÂ…rÃ}rÄ(h=Uh>j¾ubaubj“)rÅ}rÆ(h=Xdicth>j´h?j¶hAj–hC}rÇ(hI]hJ]hH]hG]hK]uhLNhMhh8]rÈhOXdictrÉ…rÊ}rË(h=Uh>jÅubaubjœ)rÌ}rÍ(h=Uh>j´h?j¶hAjŸhC}rÎ(hI]hJ]hH]hG]hK]uhLNhMhh8]ubeubj¿)rÏ}rÐ(h=Uh>j¯h?j¶hAjÂhC}rÑ(hI]hJ]hH]hG]hK]uhLNhMhh8]rÒ(h~)rÓ}rÔ(h=XReturn a dictionary with keys as :class:`StrataGraph` objects and values as the coefficient of that stratum in this element. ::h>jÏh?j«hAhhC}rÕ(hI]hJ]hH]hG]hK]uhLKhMhh8]rÖ(hOX!Return a dictionary with keys as r×…rØ}rÙ(h=X!Return a dictionary with keys as h>jÓubj)rÚ}rÛ(h=X:class:`StrataGraph`rÜh>jÓh?h@hAjhC}rÝ(UreftypeXclassj܉jÝXStrataGraphU	refdomainXpyrÞhG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàXStrataAlgebraElementjáNuhLKh8]rßh‡)rà}rá(h=jÜhC}râ(hI]hJ]rã(jçjÞXpy-classräehH]hG]hK]uh>jÚh8]råhOXStrataGraphræ…rç}rè(h=Uh>jàubahAhubaubhOXG objects and values as the coefficient of that stratum in this element.ré…rê}rë(h=XG objects and values as the coefficient of that stratum in this element.h>jÓubeubjD)rì}rí(h=Xõsage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,1,(1,2,3)); s
Strata algebra with genus 1 and markings (1, 2, 3) over Rational Field
sage: a = s.psi(1)*s.psi(2) - 7* s.kappa(3); a
ps1*ps2 - 7*ka3
sage: a.dict()
{ps1*ps2: 1, ka3: -7}h>jÏh?j«hAjGhC}rî(hEhFhG]hH]hI]hJ]hK]uhLKhMhh8]rïhOXõsage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,1,(1,2,3)); s
Strata algebra with genus 1 and markings (1, 2, 3) over Rational Field
sage: a = s.psi(1)*s.psi(2) - 7* s.kappa(3); a
ps1*ps2 - 7*ka3
sage: a.dict()
{ps1*ps2: 1, ka3: -7}rð…rñ}rò(h=Uh>jìubaubeubeubj[)ró}rô(h=Uh>jMh?Xk/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebraElement.codimrõhAj^hC}rö(hG]hH]hI]hJ]hK]Uentries]r÷(jaX3codim() (strataalgebra.StrataAlgebraElement method)hUNtrøauhLNhMhh8]ubjc)rù}rú(h=Uh>jMh?jõhAjfhC}rû(jh‰jiXpyhG]hH]hI]hJ]hK]jkXmethodrüjmjüuhLNhMhh8]rý(jo)rþ}rÿ(h=XStrataAlgebraElement.codim()h>jùh?Xk/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebraElement.codimr
hAjshC}r
(hG]r
hajvjwX
strataalgebrar
…r
}r
bhH]hI]hJ]hK]r
haj|XStrataAlgebraElement.codimj~XStrataAlgebraElementj‰uhLNhMhh8]r
(jŠ)r
}r	
(h=XStrataAlgebraElement.h>jþh?j
hAjhC}r

(hI]hJ]hH]hG]hK]uhLNhMhh8]r
hOXStrataAlgebraElement.r
…r

}r
(h=Uh>j
ubaubj“)r
}r
(h=Xcodimh>jþh?j
hAj–hC}r
(hI]hJ]hH]hG]hK]uhLNhMhh8]r
hOXcodimr
…r
}r
(h=Uh>j
ubaubjœ)r
}r
(h=Uh>jþh?j
hAjŸhC}r
(hI]hJ]hH]hG]hK]uhLNhMhh8]ubeubj¿)r
}r
(h=Uh>jùh?j
hAjÂhC}r
(hI]hJ]hH]hG]hK]uhLNhMhh8]r
(h~)r
}r
(h=X?Returns the codimensions of this :class:`StrataAlgebraElement`.h>j
h?jõhAhhC}r
(hI]hJ]hH]hG]hK]uhLKhMhh8]r 
(hOX!Returns the codimensions of this r!
…r"
}r#
(h=X!Returns the codimensions of this h>j
ubj)r$
}r%
(h=X:class:`StrataAlgebraElement`r&
h>j
h?h@hAjhC}r'
(UreftypeXclassj܉jÝXStrataAlgebraElementU	refdomainXpyr(
hG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàXStrataAlgebraElementjáNuhLKh8]r)
h‡)r*
}r+
(h=j&
hC}r,
(hI]hJ]r-
(jçj(
Xpy-classr.
ehH]hG]hK]uh>j$
h8]r/
hOXStrataAlgebraElementr0
…r1
}r2
(h=Uh>j*
ubahAhubaubhOX.…r3
}r4
(h=X.h>j
ubeubh~)r5
}r6
(h=XoIf it is not homogeneous, it retunrs the maximum codimension of a basis element with a non-zero coefficient. ::h>j
h?jõhAhhC}r7
(hI]hJ]hH]hG]hK]uhLKhMhh8]r8
hOXlIf it is not homogeneous, it retunrs the maximum codimension of a basis element with a non-zero coefficient.r9
…r:
}r;
(h=XlIf it is not homogeneous, it retunrs the maximum codimension of a basis element with a non-zero coefficient.h>j5
ubaubjD)r<
}r=
(h=XÛsage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,2)
sage: s(1,0).codim()
1
sage: s(2,1).codim()
2
sage: s(0,0).codim()
0
sage: (35*s(2,3) - 7*s(1,1) + s.kappa(2) - s(0,0)).codim()
2
sage: s.zero().codim()
-1h>j
h?jõhAjGhC}r>
(hEhFhG]hH]hI]hJ]hK]uhLK	hMhh8]r?
hOXÛsage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,2)
sage: s(1,0).codim()
1
sage: s(2,1).codim()
2
sage: s(0,0).codim()
0
sage: (35*s(2,3) - 7*s(1,1) + s.kappa(2) - s(0,0)).codim()
2
sage: s.zero().codim()
-1r@
…rA
}rB
(h=Uh>j<
ubaubeubeubj[)rC
}rD
(h=Uh>jMh?Xo/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebraElement.in_kernelrE
hAj^hC}rF
(hG]hH]hI]hJ]hK]Uentries]rG
(jaX7in_kernel() (strataalgebra.StrataAlgebraElement method)hUNtrH
auhLNhMhh8]ubjc)rI
}rJ
(h=Uh>jMh?jE
hAjfhC}rK
(jh‰jiXpyhG]hH]hI]hJ]hK]jkXmethodrL
jmjL
uhLNhMhh8]rM
(jo)rN
}rO
(h=X StrataAlgebraElement.in_kernel()rP
h>jI
h?Xo/Users/drewjohnson/mgn/strataalgebra/strataalgebra.py:docstring of strataalgebra.StrataAlgebraElement.in_kernelrQ
hAjshC}rR
(hG]rS
hajvjwX
strataalgebrarT
…rU
}rV
bhH]hI]hJ]hK]rW
haj|XStrataAlgebraElement.in_kernelj~XStrataAlgebraElementj‰uhLNhMhh8]rX
(jŠ)rY
}rZ
(h=XStrataAlgebraElement.h>jN
h?jQ
hAjhC}r[
(hI]hJ]hH]hG]hK]uhLNhMhh8]r\
hOXStrataAlgebraElement.r]
…r^
}r_
(h=Uh>jY
ubaubj“)r`
}ra
(h=X	in_kernelh>jN
h?jQ
hAj–hC}rb
(hI]hJ]hH]hG]hK]uhLNhMhh8]rc
hOX	in_kernelrd
…re
}rf
(h=Uh>j`
ubaubjœ)rg
}rh
(h=Uh>jN
h?jQ
hAjŸhC}ri
(hI]hJ]hH]hG]hK]uhLNhMhh8]ubeubj¿)rj
}rk
(h=Uh>jI
h?jQ
hAjÂhC}rl
(hI]hJ]hH]hG]hK]uhLNhMhh8]rm
(h~)rn
}ro
(h=X˜Determine whether this :class:`StrataAlgebraElement` is in the span of the FZ relations, and hence in the kernel of the map to the tautological ring. ::rp
h>jj
h?jE
hAhhC}rq
(hI]hJ]hH]hG]hK]uhLKhMhh8]rr
(hOXDetermine whether this rs
…rt
}ru
(h=XDetermine whether this h>jn
ubj)rv
}rw
(h=X:class:`StrataAlgebraElement`rx
h>jn
h?h@hAjhC}ry
(UreftypeXclassj܉jÝXStrataAlgebraElementU	refdomainXpyrz
hG]hH]Urefexplicit‰hI]hJ]hK]jßhbjàXStrataAlgebraElementjáNuhLKh8]r{
h‡)r|
}r}
(h=jx
hC}r~
(hI]hJ]r
(jçjz
Xpy-classr€
ehH]hG]hK]uh>jv
h8]r
hOXStrataAlgebraElementr‚
…rƒ
}r„
(h=Uh>j|
ubahAhubaubhOXa is in the span of the FZ relations, and hence in the kernel of the map to the tautological ring.r…
…r†
}r‡
(h=Xa is in the span of the FZ relations, and hence in the kernel of the map to the tautological ring.h>jn
ubeubjD)rˆ
}r‰
(h=X(sage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,0,(1,2,3,4,5))
sage: b = s.boundary(0,(1,2,5)) + s.boundary(0,(1,2)) - s.boundary(0,(1,3,5)) - s.boundary(0,(1,3))
sage: b
Dg0m1_2_5 + Dg0m1_2 - Dg0m1_3_5 - Dg0m1_3
sage: b.in_kernel()
True
sage: (s.psi(1) - s.psi(2)).in_kernel()
Falseh>jj
h?jE
hAjGhC}rŠ
(hEhFhG]hH]hI]hJ]hK]uhLKhMhh8]r‹
hOX(sage: from strataalgebra import *
sage: s = StrataAlgebra(QQ,0,(1,2,3,4,5))
sage: b = s.boundary(0,(1,2,5)) + s.boundary(0,(1,2)) - s.boundary(0,(1,3,5)) - s.boundary(0,(1,3))
sage: b
Dg0m1_2_5 + Dg0m1_2 - Dg0m1_3_5 - Dg0m1_3
sage: b.in_kernel()
True
sage: (s.psi(1) - s.psi(2)).in_kernel()
FalserŒ
…r
}rŽ
(h=Uh>jˆ
ubaubh~)r
}r
(h=X:It should work fine for non-homogeneous things as well. ::r‘
h>jj
h?jE
hAhhC}r’
(hI]hJ]hH]hG]hK]uhLKhMhh8]r“
hOX7It should work fine for non-homogeneous things as well.r”
…r•
}r–
(h=X7It should work fine for non-homogeneous things as well.h>j
ubaubjD)r—
}r˜
(h=X]sage: (b + s.psi(1)).in_kernel()
False
sage: (b + s.psi(1)**2 - s.psi(2)**2).in_kernel()
Trueh>jj
h?jE
hAjGhC}r™
(hEhFhG]hH]hI]hJ]hK]uhLKhMhh8]rš
hOX]sage: (b + s.psi(1)).in_kernel()
False
sage: (b + s.psi(1)**2 - s.psi(2)**2).in_kernel()
Truer›
…rœ
}r
(h=Uh>j—
ubaubeubeubeubhl)rž
}rŸ
(h=Uh>hh?h@hAhohC}r 
(hI]hJ]hH]hG]r¡
(Xmodule-testsr¢
h.ehK]r£
hauhLK3hMhh8]r¤
(ht)r¥
}r¦
(h=XTestingr§
h>jž
h?h@hAhxhC}r¨
(hI]hJ]hH]hG]hK]uhLK3hMhh8]r©
hOXTestingrª
…r«
}r¬
(h=j§
h>j¥
ubaubj[)r­
}r®
(h=Uh>jž
h?X@/Users/drewjohnson/mgn/strataalgebra/tests.py:docstring of testsr¯
hAj^hC}r°
(hG]hH]hI]hJ]hK]Uentries]r±
(jaXtests (module)Xmodule-testsUNtr²
auhLKhMhh8]ubh~)r³
}r´
(h=X…The ``tests`` module tests the implementation of the product and the FZ relations by comparing them to the ``topintersections`` code.rµ
h>jž
h?X@/Users/drewjohnson/mgn/strataalgebra/tests.py:docstring of testsr¶
hAhhC}r·
(hI]hJ]hH]hG]hK]uhLKhMhh8]r¸
(hOXThe r¹
…rº
}r»
(h=XThe h>j³
ubh‡)r¼
}r½
(h=X	``tests``hC}r¾
(hI]hJ]hH]hG]hK]uh>j³
h8]r¿
hOXtestsrÀ
…rÁ
}rÂ
(h=Uh>j¼
ubahAhubhOX^ module tests the implementation of the product and the FZ relations by comparing them to the rÃ
…rÄ
}rÅ
(h=X^ module tests the implementation of the product and the FZ relations by comparing them to the h>j³
ubh‡)rÆ
}rÇ
(h=X``topintersections``hC}rÈ
(hI]hJ]hH]hG]hK]uh>j³
h8]rÉ
hOXtopintersectionsrÊ
…rË
}rÌ
(h=Uh>jÆ
ubahAhubhOX code.rÍ
…rÎ
}rÏ
(h=X code.h>j³
ubeubh~)rÐ
}rÑ
(h=X~You can change which pairs you want to check by modifying the ``g_n_pairs_to_check variable`` in the source code ``tests.py``.rÒ
h>jž
h?j¶
hAhhC}rÓ
(hI]hJ]hH]hG]hK]uhLKhMhh8]rÔ
(hOX>You can change which pairs you want to check by modifying the rÕ
…rÖ
}r×
(h=X>You can change which pairs you want to check by modifying the h>jÐ
ubh‡)rØ
}rÙ
(h=X``g_n_pairs_to_check variable``hC}rÚ
(hI]hJ]hH]hG]hK]uh>jÐ
h8]rÛ
hOXg_n_pairs_to_check variablerÜ
…rÝ
}rÞ
(h=Uh>jØ
ubahAhubhOX in the source code rß
…rà
}rá
(h=X in the source code h>jÐ
ubh‡)râ
}rã
(h=X``tests.py``hC}rä
(hI]hJ]hH]hG]hK]uh>jÐ
h8]rå
hOXtests.pyræ
…rç
}rè
(h=Uh>jâ
ubahAhubhOX.…ré
}rê
(h=X.h>jÐ
ubeubjD)rë
}rì
(h=XHsage: import strataalgebra.tests as tests
sage: tests.run() # not testedh>jž
h?j¶
hAjGhC}rí
(hEhFhG]hH]hI]hJ]hK]uhLK
hMhh8]rî
hOXHsage: import strataalgebra.tests as tests
sage: tests.run() # not testedrï
…rð
}rñ
(h=Uh>jë
ubaubh~)rò
}ró
(h=X>The comment is there so that the doctests don't try to run it.rô
h>jž
h?j¶
hAhhC}rõ
(hI]hJ]hH]hG]hK]uhLK
hMhh8]rö
hOX>The comment is there so that the doctests don't try to run it.r÷
…rø
}rù
(h=jô
h>jò
ubaubh~)rú
}rû
(h=XCYou can also test the examples from this file using Sage's doctest.rü
h>jž
h?h@hAhhC}rý
(hI]hJ]hH]hG]hK]uhLK7hMhh8]rþ
hOXCYou can also test the examples from this file using Sage's doctest.rÿ
…r}r(h=jü
h>jú
ubaubeubhl)r}r(h=Uh>hh?h@hAhohC}r(hI]hJ]hH]hG]rh1ahK]rhauhLK:hMhh8]r(ht)r}r	(h=XIndices and tablesr
h>jh?h@hAhxhC}r(hI]hJ]hH]hG]hK]uhLK:hMhh8]rhOXIndices and tablesr
…r}r(h=j
h>jubaubjç)r}r(h=Uh>jh?h@hAj¾hC}r(UbulletrX*hG]hH]hI]hJ]hK]uhLK<hMhh8]r(jì)r}r(h=X:ref:`genindex`rh>jh?h@hAj$hC}r(hI]hJ]hH]hG]hK]uhLNhMhh8]rh~)r}r(h=jh>jh?h@hAhhC}r(hI]hJ]hH]hG]hK]uhLK<h8]rj)r}r(h=jh>jh?h@hAjhC}r (UreftypeXrefj܈jÝXgenindexU	refdomainXstdr!hG]hH]Urefexplicit‰hI]hJ]hK]jßhbuhLK<h8]r"cdocutils.nodes
inline
r#)r$}r%(h=jhC}r&(hI]hJ]r'(jçj!Xstd-refr(ehH]hG]hK]uh>jh8]r)hOXgenindexr*…r+}r,(h=Uh>j$ubahAUinliner-ubaubaubaubjì)r.}r/(h=X:ref:`search`
h>jh?h@hAj$hC}r0(hI]hJ]hH]hG]hK]uhLNhMhh8]r1h~)r2}r3(h=X
:ref:`search`r4h>j.h?h@hAhhC}r5(hI]hJ]hH]hG]hK]uhLK=h8]r6j)r7}r8(h=j4h>j2h?h@hAjhC}r9(UreftypeXrefj܈jÝXsearchU	refdomainXstdr:hG]hH]Urefexplicit‰hI]hJ]hK]jßhbuhLK=h8]r;j#)r<}r=(h=j4hC}r>(hI]hJ]r?(jçj:Xstd-refr@ehH]hG]hK]uh>j7h8]rAhOXsearchrB…rC}rD(h=Uh>j<ubahAj-ubaubaubaubeubeubeh=UUtransformerrENU
footnote_refsrF}rGUrefnamesrH}rI(Xr. pandharipande's exposition]rJh¢aXsage]rKh”ahÙ]rLhÖaX
click here]rMj,aXs. yang's note]rNhËaXdrew johnson]rOhÀauUsymbol_footnotesrP]rQUautofootnote_refsrR]rSUsymbol_footnote_refsrT]rUU	citationsrV]rWhMhUcurrent_linerXNUtransform_messagesrY]rZUreporterr[NUid_startr\KU
autofootnotesr]]r^U
citation_refsr_}r`Uindirect_targetsra]rbUsettingsrc(cdocutils.frontend
Values
rdore}rf(Ufootnote_backlinksrgKUrecord_dependenciesrhNUrfc_base_urlriUhttps://tools.ietf.org/html/rjU	tracebackrkˆUpep_referencesrlNUstrip_commentsrmNU
toc_backlinksrnUentryroU
language_coderpUenrqU	datestamprrNUreport_levelrsKU_destinationrtNU
halt_levelruKU
strip_classesrvNhxNUerror_encoding_error_handlerrwUbackslashreplacerxUdebugryNUembed_stylesheetrz‰Uoutput_encoding_error_handlerr{Ustrictr|U
sectnum_xformr}KUdump_transformsr~NU
docinfo_xformrKUwarning_streamr€NUpep_file_url_templaterUpep-%04dr‚Uexit_status_levelrƒKUconfigr„NUstrict_visitorr…NUcloak_email_addressesr†ˆUtrim_footnote_reference_spacer‡‰UenvrˆNUdump_pseudo_xmlr‰NUexpose_internalsrŠNUsectsubtitle_xformr‹‰Usource_linkrŒNUrfc_referencesrNUoutput_encodingrŽUutf-8rU
source_urlrNUinput_encodingr‘U	utf-8-sigr’U_disable_configr“NU	id_prefixr”UUcharacter_level_inline_markupr•‰U	tab_widthr–KUerror_encodingr—UUTF-8r˜U_sourcer™h@Ugettext_compactršˆU	generatorr›NUdump_internalsrœNUsmart_quotesr‰Upep_base_urlržU https://www.python.org/dev/peps/rŸUsyntax_highlightr Ulongr¡Uinput_encoding_error_handlerr¢j|Uauto_id_prefixr£Uidr¤Udoctitle_xformr¥‰Ustrip_elements_with_classesr¦NU
_config_filesr§]Ufile_insertion_enabledr¨ˆUraw_enabledr©KU
dump_settingsrªNubUsymbol_footnote_startr«KhG}r¬(j¢
h¬)r­}r®(h=Uh>jž
h?j¯
hAh°hC}r¯(hI]hG]r°j¢
ahH]UismodˆhJ]hK]uhLKhMhh8]ubhj›h.jž
h/h­h7hmh
j´hjþhjbh5jMh4jhj­hjÿhj	h0hâhjph-j7h6hçh1jhjˆhj
h3h´hjæ
h2hìhjÌhj©hjrhjI
hjN
h!jgh"jÀh#jLuUsubstitution_namesr±}r²hAhMhC}r³(hI]hG]hH]Usourceh@hJ]hK]uU	footnotesr´]rµUrefidsr¶}r·ub.

back to top

Software Heritage — Copyright (C) 2015–2025, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Content policy— Contact— JavaScript license information— Web API