Ticket #3719: 10129.patch

File 10129.patch, 4.0 kB (added by wdj, 5 months ago)

based on 3.1.alpha0 and probably the previous patch

  • a/sage/groups/perm_gps/permgroup.py

    old new  
    7474    construction is too slow - unless (for small values or the parameter) they are 
    7575    made using explicit generators. 
    7676   
     77 
    7778""" 
    7879 
    7980#***************************************************************************** 
     
    104105from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing 
    105106from sage.rings.fraction_field import FractionField 
    106107from sage.matrix.matrix_space import MatrixSpace 
     108 
     109def load_hap(): 
     110     try: 
     111         gap.eval('LoadPackage("hap")') 
     112     except: 
     113         gap.eval('LoadPackage("hap")') 
     114     return True 
    107115 
    108116def direct_product_permgroups(P): 
    109117    """ 
     
    10231031            GAP package HAP (in gap_packages-*.spkg). 
    10241032 
    10251033        EXAMPLES: 
    1026             sage: gap.eval('LoadPackage("hap")')               # requires optional gap_packages 
    1027             'true' 
    10281034            sage: G = SymmetricGroup(4) 
    10291035            sage: G.cohomology(1,2)                            # requires optional gap_packages 
    10301036            Multiplicative Abelian Group isomorphic to C2 
     
    10531059             \code{http://front.math.ucdavis.edu/0706.0549}. 
    10541060 
    10551061        """ 
    1056         gap.eval('RequirePackage("HAP")'
     1062        load_hap(
    10571063        from sage.rings.arith import is_prime 
    10581064        if not (p == 0 or is_prime(p)): 
    10591065            raise ValueError, "p must be 0 or prime" 
     
    10851091        AUTHORS: 
    10861092            David Joyner and Graham Ellis 
    10871093        """ 
    1088         gap.eval('RequirePackage("HAP")'
     1094        load_hap(
    10891095        from sage.rings.arith import is_prime 
    10901096        if not (p == 0 or is_prime(p)): 
    10911097            raise ValueError, "p must be 0 or prime" 
     
    11331139            \code{http://front.math.ucdavis.edu/0706.0549} 
    11341140 
    11351141        """ 
    1136         gap.eval('RequirePackage("HAP")'
     1142        load_hap(
    11371143        from sage.rings.arith import is_prime 
    11381144        if not (p == 0 or is_prime(p)): 
    11391145            raise ValueError, "p must be 0 or prime" 
     
    11621168        AUTHORS: 
    11631169            David Joyner and Graham Ellis 
    11641170        """ 
    1165         gap.eval('RequirePackage("HAP")') 
     1171        gap.eval('LoadPackage("hap")') 
    11661172        from sage.rings.arith import is_prime 
    11671173        if not (p == 0 or is_prime(p)): 
    11681174            raise ValueError, "p must be 0 or prime" 
     
    17961802         
    17971803        EXAMPLES: 
    17981804            sage: G = SymmetricGroup(5) 
    1799             sage: G.molien_series()                              # requires optional gap_packages 
     1805            sage: G.molien_series()      
    18001806            1/(-x^15 + x^14 + x^13 - x^10 - x^9 - x^8 + x^7 + x^6 + x^5 - x^2 - x + 1) 
    18011807            sage: G = SymmetricGroup(3) 
    1802             sage: G.molien_series()                              # requires optional gap_packages 
     1808            sage: G.molien_series()      
    18031809            1/(-x^6 + x^5 + x^4 - x^2 - x + 1) 
    18041810 
    18051811        """ 
     
    18871893        AUTHORS: 
    18881894            David Joyner and Graham Ellis 
    18891895        """ 
    1890         gap.eval('RequirePackage("HAP")'
     1896        load_hap(
    18911897        from sage.rings.arith import is_prime 
    18921898        if not (p == 0 or is_prime(p)): 
    18931899            raise ValueError, "p must be 0 or prime" 
     
    18961902        ff = gap.eval("ff := PoincareSeriesPrimePart(%s,%s,%s)"%(GG,p,n)) 
    18971903        R = PolynomialRing(RationalField(),"x") 
    18981904        x = R.gen() 
    1899         nn = gap.eval("NumeratorOfRationalFunction(ff)") 
    1900         dd = gap.eval("DenominatorOfRationalFunction(ff)") 
     1905        nn = gap.eval("NumeratorOfRationalFunction(ff)").replace("x_1","x") 
     1906        dd = gap.eval("DenominatorOfRationalFunction(ff)").replace("x_1","x") 
    19011907        FF = FractionField(R) 
    19021908        return FF(nn)/FF(dd) 
    19031909