Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
181 views
unlisted
ubuntu2004
o

��c��@s2Gdd�d�ZGdd�de�ZGdd�de�ZdS)c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�
kSignatureaE
    A signature of a stratum of k-differentials.

    Attributes:
        sig (tuple): signature tuple
        g (int): genus
        n (int): total number of points
        p (int): number of poles
        z (int): number of zeroes
        poles (tuple): tuple of pole orders
        zeroes (tuple): tuple of zero orders
        pole_ind (tuple): tuple of indices of poles
        zero_ind (tuple): tuple of indices of zeroes

    EXAMPLES::

        sage: from admcycles.diffstrata.sig import kSignature
        sage: sig=kSignature((2,1,-1,0), k=1)
        sage: sig.g
        2
        sage: sig.n
        4
        sage: sig.poles
        (-1,)
        sage: sig.zeroes
        (2, 1)
        sage: sig.pole_ind
        (2,)
        sage: sig.zero_ind
        (0, 1)
        sage: sig.p
        1
        sage: sig.z
        2
    cCs�t|�|_t|�}|d|dkrtd��t|d|�d|_t|�|_||_tdd�|D��|_	tdd�|D��|_
tdd�|D��|_t|j	�|_t|j
�|_
td	d�t|�D��|_td
d�t|�D��|_dS)z�
        Initialise signature

        Args:
            sig (tuple): signature tuple of integers adding up to k*(2g-2)
            k (int): order of the differential.
        ��z.Error! Illegal signature: Genus not an integer�css�|]	}|dkr|VqdS�rN�)�.0�prr�</home/user/Introduction lectures/admcycles/diffstrata/sig.py�	<genexpr>5��z&kSignature.__init__.<locals>.<genexpr>css�|]	}|dkr|VqdSrr)r�zrrr	r
6rcss�|]	}|dkr|VqdSrr)r�krrr	r
7rcss �|]\}}|dkr|VqdSrr)r�irrrr	r
:��css �|]\}}|dkr|VqdSrr)rrrrrr	r
;rN)�tuple�sig�sum�
ValueError�int�g�len�nr
�poles�zeroes�
marked_pointsrr�	enumerate�pole_indZzero_ind)�selfrr
Zsum_sigrrr	�__init__&s

zkSignature.__init__cCs&|jdkrd|jfSd|j|jfS)Nrz
Signature(%r)zSignature(%r, k=%r))r
r�rrrr	�__repr__=s
zkSignature.__repr__cCst|j|jf�S�N)�hashrr
rrrr	�__hash__C�zkSignature.__hash__cCs$z|j|jkWStyYdSw)NF)r�AttributeError)r�otherrrr	�__eq__Fs
�zkSignature.__eq__N)�__name__�
__module__�__qualname__�__doc__rr r#r'rrrr	rs$rcs eZdZdZ�fdd�Z�ZS)�	Signaturea4
    A signature of an abelian stratum.

    Attributes:
        sig (tuple): signature tuple
        g (int): genus
        n (int): total number of points
        p (int): number of poles
        z (int): number of zeroes
        poles (tuple): tuple of pole orders
        zeroes (tuple): tuple of zero orders
        pole_ind (tuple): tuple of indices of poles
        zero_ind (tuple): tuple of indices of zeroes

    EXAMPLES::

        sage: from admcycles.diffstrata.sig import Signature
        sage: sig=Signature((2,1,-1,0))
        sage: sig.g
        2
        sage: sig.n
        4
        sage: sig.poles
        (-1,)
        sage: sig.zeroes
        (2, 1)
        sage: sig.pole_ind
        (2,)
        sage: sig.zero_ind
        (0, 1)
        sage: sig.p
        1
        sage: sig.z
        2
    cst�j|dd�dS)Nr�r
)�superr)rr��	__class__rr	rr�zSignature.__init__)r(r)r*r+r�
__classcell__rrr/r	r,Ms$r,cs0eZdZdZ�fdd�Zdd�Zdd�Z�ZS)�QuadraticSignaturea�
    A signature of an quadratic stratum.

    Attributes:
        sig (tuple): signature tuple
        difftype (string): either "p" for primitive or "gs" of global square
        g (int): genus
        n (int): total number of points
        p (int): number of poles
        z (int): number of zeroes
        poles (tuple): tuple of pole orders
        zeroes (tuple): tuple of zero orders
        pole_ind (tuple): tuple of indices of poles
        zero_ind (tuple): tuple of indices of zeroes

    EXAMPLES::

        sage: from admcycles.diffstrata.sig import QuadraticSignature
        sage: sig=QuadraticSignature((4,1,-1,0), "p")
        sage: sig.difftype
        'p'
        sage: sig.g
        2
        sage: sig.n
        4
        sage: sig.poles
        (-1,)
        sage: sig.zeroes
        (4, 1)
        sage: sig.pole_ind
        (2,)
        sage: sig.zero_ind
        (0, 1)
        sage: sig.p
        1
        sage: sig.z
        2
    csHt�j|dd�|dvsJ�|dkrtdd�|D��rtd��||_dS)Nrr-)r�gsr4css�|]	}|ddkVqdS)rrNr)r�arrr	r
�rz.QuadraticSignature.__init__.<locals>.<genexpr>zFQuadratic differentials with odd-order points can't be global squares.)r.r�anyr�difftype)rrr7r/rr	r�s�
zQuadraticSignature.__init__cCsd|j|jfS)NzQuadraticSignature(%r, %r))rr7rrrr	r �r$zQuadraticSignature.__repr__cCst|j|j|jf�Sr!)r"rr
r7rrrr	r#�r1zQuadraticSignature.__hash__)r(r)r*r+rr r#r2rrr/r	r3vs
'r3N)rr,r3rrrr	�<module>sL)