Ticket #13735: trac_13735_fix_repr_lincomb.patch

File trac_13735_fix_repr_lincomb.patch, 21.1 KB (added by vittucek, 9 years ago)

final version tested on top of 5.10-beta4

  • sage/algebras/free_algebra_element.py

    # HG changeset patch
    # User Vit Tucek <vit.tucek@gmail.com>
    # Date 1369156261 -7200
    # Node ID 7bc702a830b15f8a263bf2f81f0b6f3e1beac7be
    # Parent  16768eaa774a10ee080f972ed1a80ab32baeaad9
    Trac #13735: fix repr_lincomb so that (latex) representation doesn't contain extra brackets
    
    diff --git a/sage/algebras/free_algebra_element.py b/sage/algebras/free_algebra_element.py
    a b  
    106106       
    107107            sage: A.<x,y,z>=FreeAlgebra(ZZ,3)
    108108            sage: latex(-x+3*y^20*z)   # indirect doctest
    109             \left(-1\right)x + 3y^{20}z
     109            -x + 3y^{20}z
    110110            sage: alpha,beta,gamma=FreeAlgebra(ZZ,3,'alpha,beta,gamma').gens()
    111111            sage: latex(alpha-beta)
    112             \alpha + \left(-1\right)\beta
     112            \alpha - \beta
    113113        """
    114114        v = sorted(self.__monomial_coefficients.items())
    115115        return repr_lincomb(v, strip_one=True, is_latex=True)
  • sage/algebras/free_algebra_quotient_element.py

    diff --git a/sage/algebras/free_algebra_quotient_element.py b/sage/algebras/free_algebra_quotient_element.py
    a b  
    137137
    138138            sage: H, (i,j,k) = sage.algebras.free_algebra_quotient.hamilton_quatalg(QQ)
    139139            sage: ((2/3)*i - j)._latex_()
    140             '\\frac{2}{3}i + \\left(-1\\right)j'
     140            '\\frac{2}{3}i - j'
    141141        """
    142142        Q = self.parent()
    143143        M = Q.monoid()
  • sage/algebras/iwahori_hecke_algebra.py

    diff --git a/sage/algebras/iwahori_hecke_algebra.py b/sage/algebras/iwahori_hecke_algebra.py
    a b  
    333333            sage: H.base_ring()
    334334            Fraction Field of Multivariate Polynomial Ring in q1, q2 over Rational Field
    335335            sage: H.inverse_generator(1)
    336             ((-1)/(q1*q2))*T1 + ((q1+q2)/(q1*q2))
     336            -1/(q1*q2)*T1 + ((q1+q2)/(q1*q2))
    337337            sage: H = IwahoriHeckeAlgebraT("A2",q1,-1,base_ring=F)
    338338            sage: H.inverse_generator(2)
    339             ((-1)/(-q1))*T2 + ((q1-1)/(-q1))
     339            -(1/(-q1))*T2 + ((q1-1)/(-q1))
    340340            sage: P1.<r1,r2>=LaurentPolynomialRing(QQ)
    341341            sage: H1 = IwahoriHeckeAlgebraT("B2",r1,r2,base_ring=P1)
    342342            sage: H1.base_ring()
  • sage/combinat/free_module.py

    diff --git a/sage/combinat/free_module.py b/sage/combinat/free_module.py
    a b  
    10781078        sage: e['a'] - 3 * e['b']
    10791079        x{'a'} - 3 x{'b'}
    10801080        sage: latex(e['a'] - 3 * e['b'])
    1081         x_{a} + \left(-3\right) x_{b}
     1081        x_{a} - 3 x_{b}
    10821082
    10831083        sage: F.print_options(latex_prefix='y')
    10841084        sage: latex(e['a'] - 3 * e['b'])
    1085         y_{a} + \left(-3\right) y_{b}
     1085        y_{a} - 3 y_{b}
    10861086
    10871087        sage: F.print_options(monomial_cmp = lambda x,y: -cmp(x,y))
    10881088        sage: e['a'] - 3 * e['b']
  • sage/combinat/root_system/root_lattice_realizations.py

    diff --git a/sage/combinat/root_system/root_lattice_realizations.py b/sage/combinat/root_system/root_lattice_realizations.py
    a b  
    18451845                 Arrow from (0.0,0.0) to (1.0,1.0),
    18461846                 Text '$\alpha_{1} + \alpha_{2}$' at the point (1.05,1.05),
    18471847                 Arrow from (0.0,0.0) to (-1.0,0.0),
    1848                  Text '$\left(-1\right)\alpha_{1}$' at the point (-1.05,0.0),
     1848                 Text '$-\alpha_{1}$' at the point (-1.05,0.0),
    18491849                 Arrow from (0.0,0.0) to (0.0,-1.0),
    1850                  Text '$\left(-1\right)\alpha_{2}$' at the point (0.0,-1.05),
     1850                 Text '$-\alpha_{2}$' at the point (0.0,-1.05),
    18511851                 Arrow from (0.0,0.0) to (-1.0,-1.0),
    1852                  Text '$\left(-1\right)\alpha_{1} + \left(-1\right)\alpha_{2}$' at the point (-1.05,-1.05)]
     1852                 Text '$-\alpha_{1} - \alpha_{2}$' at the point (-1.05,-1.05)]
    18531853            """
    18541854            plot_options = self.plot_parse_options(**options)
    18551855            root_lattice = self.root_system.root_lattice()
  • sage/combinat/sf/sfa.py

    diff --git a/sage/combinat/sf/sfa.py b/sage/combinat/sf/sfa.py
    a b  
    21902190            sage: p([2,1]).omega_qt(q,t)
    21912191            ((-q^3+q^2+q-1)/(t^3-t^2-t+1))*p[2, 1]
    21922192            sage: p([3,2]).omega_qt(5,q)
    2193             ((-2976)/(q^5-q^3-q^2+1))*p[3, 2]
     2193            -(2976/(q^5-q^3-q^2+1))*p[3, 2]
    21942194            sage: p(0).omega_qt()
    21952195            0
    21962196            sage: p(1).omega_qt()
  • sage/misc/misc.py

    diff --git a/sage/misc/misc.py b/sage/misc/misc.py
    a b  
    696696
    697697    EXAMPLES::
    698698
    699         sage: repr_lincomb([('a',1), ('b',2), ('c',3)])
    700         'a + 2*b + 3*c'
    701         sage: repr_lincomb([('a',1), ('b','2+3*x'), ('c',3)])
    702         'a + (2+3*x)*b + 3*c'
     699        sage: repr_lincomb([('a',1), ('b',-2), ('c',3)])
     700        'a - 2*b + 3*c'
     701        sage: repr_lincomb([('a',0), ('b',-2), ('c',3)])
     702        '-2*b + 3*c'
     703        sage: repr_lincomb([('a',0), ('b',2), ('c',3)])
     704        '2*b + 3*c'
     705        sage: repr_lincomb([('a',1), ('b',0), ('c',3)])
     706        'a + 3*c'
     707        sage: repr_lincomb([('a',-1), ('b','2+3*x'), ('c',3)])
     708        '-a + (2+3*x)*b + 3*c'
    703709        sage: repr_lincomb([('a', '1+x^2'), ('b', '2+3*x'), ('c', 3)])
    704710        '(1+x^2)*a + (2+3*x)*b + 3*c'
    705711        sage: repr_lincomb([('a', '1+x^2'), ('b', '-2+3*x'), ('c', 3)])
     
    714720
    715721        sage: repr_lincomb([('a',1), ('b',2), ('c',3)], scalar_mult='*')
    716722        'a + 2*b + 3*c'
    717         sage: repr_lincomb([('a',1), ('b',2), ('c',3)], scalar_mult='**')
    718         'a + 2**b + 3**c'
    719         sage: repr_lincomb([('a',1), ('b',2), ('c',3)], scalar_mult='**')
    720         'a + 2**b + 3**c'
     723        sage: repr_lincomb([('a',2), ('b',0), ('c',-3)], scalar_mult='**')
     724        '2**a - 3**c'
     725        sage: repr_lincomb([('a',-1), ('b',2), ('c',3)], scalar_mult='**')
     726        '-a + 2**b + 3**c'
    721727
    722728    Examples for ``scalar_mult`` and ``is_latex``::
    723729
    724         sage: repr_lincomb([('a',1), ('b',2), ('c',3)], is_latex=True)
    725         'a + 2b + 3c'
    726         sage: repr_lincomb([('a',1), ('b',2), ('c',3)], is_latex=True, scalar_mult='*')
    727         'a + 2b + 3c'
    728         sage: repr_lincomb([('a',1), ('b',2), ('c',3)], is_latex=True, scalar_mult='**')
    729         'a + 2**b + 3**c'
    730         sage: repr_lincomb([('a',1), ('b',2), ('c',3)], is_latex=True, latex_scalar_mult='*')
    731         'a + 2*b + 3*c'
     730        sage: repr_lincomb([('a',-1), ('b',2), ('c',3)], is_latex=True)
     731        '-a + 2b + 3c'
     732        sage: repr_lincomb([('a',-1), ('b',-1), ('c',3)], is_latex=True, scalar_mult='*')
     733        '-a - b + 3c'
     734        sage: repr_lincomb([('a',-1), ('b',2), ('c',-3)], is_latex=True, scalar_mult='**')
     735        '-a + 2**b - 3**c'
     736        sage: repr_lincomb([('a',-2), ('b',-1), ('c',-3)], is_latex=True, latex_scalar_mult='*')
     737        '-2*a - b - 3*c'
    732738
    733739    Examples for ``strip_one``::
    734740
    735         sage: repr_lincomb([ ('a',1), (1,2), ('3',3) ])
    736         'a + 2*1 + 3*3'
    737         sage: repr_lincomb([ ('a',1), (1,1), ('3',3) ])
    738         'a + 1 + 3*3'
    739         sage: repr_lincomb([ ('a',1), (1,2), ('3',3) ], strip_one = True)
    740         'a + 2 + 3*3'
    741         sage: repr_lincomb([ ('a',1), (1,1), ('3',3) ], strip_one = True)
    742         'a + 1 + 3*3'
     741        sage: repr_lincomb([ ('a',1), (1,-2), ('3',3) ])
     742        'a - 2*1 + 3*3'
     743        sage: repr_lincomb([ ('a',-1), (1,1), ('3',3) ])
     744        '-a + 1 + 3*3'
     745        sage: repr_lincomb([ ('a',1), (1,-2), ('3',3) ], strip_one = True)
     746        'a - 2 + 3*3'
     747        sage: repr_lincomb([ ('a',-1), (1,1), ('3',3) ], strip_one = True)
     748        '-a + 1 + 3*3'
     749        sage: repr_lincomb([ ('a',1), (1,-1), ('3',3) ], strip_one = True)
     750        'a - 1 + 3*3'
    743751
    744752    Examples for ``repr_monomial``::
    745753
    746754        sage: repr_lincomb([('a',1), ('b',2), ('c',3)], repr_monomial = lambda s: s+"1")
    747755        'a1 + 2*b1 + 3*c1'
    748756
     757
    749758    TESTS:
    750759
    751760    For backward compatibility (will be deprecated)::
     
    783792
    784793    all_atomic = True
    785794    for (monomial,c) in terms:
    786         b = repr_monomial(monomial)
    787795        if c != 0:
    788             coeff = coeff_repr(c, is_latex)
     796            coeff = coeff_repr(c)
     797            negative = False
     798            if len(coeff)>0 and coeff[0] == "-":
     799                negative = True
     800            #elif len(coeff) > 1 and coeff[1] == "-":
     801                #negative = True
     802            if c < 0 or negative:
     803                coeff = coeff_repr(-c, is_latex)
     804            else:
     805                coeff = coeff_repr(c, is_latex)
     806            #pdb.set_trace()
     807            if coeff == "1":
     808                coeff = ""
    789809            if coeff != "0":
    790                 if coeff == "1":
    791                     coeff = ""
    792                 elif coeff == "-1":
    793                     coeff = "-"
    794                 elif len(b) > 0:
    795                     if len(coeff) > 0 and b == "1" and strip_one:
    796                         b = ""
     810                if c < 0 or negative:
     811                    if first:
     812                        sign = "-" # add trailing space?
    797813                    else:
    798                         b = scalar_mult + b
    799                 if not first:
    800                     if len(coeff) > 0 and coeff[0] == "-":
    801                         coeff = " - %s"%coeff[1:]
     814                        sign = " - "
     815                else:
     816                    if first:
     817                        sign = ""
    802818                    else:
    803                         coeff = " + %s"%coeff
    804                 else:
    805                     coeff = "%s"%coeff
    806             s += "%s%s"%(coeff, b)
    807             first = False
     819                        sign= " + "
     820                b = repr_monomial(monomial)
     821                if len(b) > 0:
     822                    if  coeff != "":
     823                        if b =="1" and strip_one:
     824                            b = ""
     825                        else:
     826                            b = scalar_mult + b
     827                s += "%s%s%s"%(sign, coeff, b)
     828                first = False
    808829    if first:
    809         return "0"
    810     elif s == "":
    811         return "1"
     830        return "0" # this can happen only if are only terms with coeff_repr(c) == "0"
     831    #elif s == "":
     832        #return "1" # is empty string representation invalid?
    812833    else:
    813834        return s
    814835
    815836
    816837
     838
    817839def strunc(s, n = 60):
    818840    """
    819841    Truncate at first space after position n, adding '...' if
  • sage/modular/modsym/ambient.py

    diff --git a/sage/modular/modsym/ambient.py b/sage/modular/modsym/ambient.py
    a b  
    20982098            sage: K = eps.base_ring()
    20992099            sage: M = ModularSymbols(37,2,0,K)
    21002100            sage: M.twisted_winding_element(0,eps)
    2101             2*(1,23) + (-2)*(1,32) + 2*(1,34)
     2101            2*(1,23) - 2*(1,32) + 2*(1,34)
    21022102
    21032103        """
    21042104
  • sage/modular/modsym/boundary.py

    diff --git a/sage/modular/modsym/boundary.py b/sage/modular/modsym/boundary.py
    a b  
    12991299            sage: [ B(Cusp(i,13)) for i in range(13) ]
    13001300            [[0],
    13011301            [1/13],
    1302             (-zeta4)*[1/13],
     1302            -zeta4*[1/13],
    13031303            [1/13],
    1304             (-1)*[1/13],
    1305             (-zeta4)*[1/13],
    1306             (-zeta4)*[1/13],
     1304            -[1/13],
     1305            -zeta4*[1/13],
     1306            -zeta4*[1/13],
    13071307            zeta4*[1/13],
    13081308            zeta4*[1/13],
    13091309            [1/13],
    1310             (-1)*[1/13],
     1310            -[1/13],
    13111311            zeta4*[1/13],
    1312             (-1)*[1/13]]
     1312            -[1/13]]
    13131313            sage: B._is_equiv(Cusp(oo), Cusp(1,13))
    13141314            (True, 1)
    13151315            sage: B._is_equiv(Cusp(0), Cusp(1,13))
     
    13231323            sage: [ B(Cusp(i,13)) for i in range(13) ]
    13241324            [0,
    13251325            [1/13],
    1326             (-zeta4)*[1/13],
     1326            -zeta4*[1/13],
    13271327            [1/13],
    1328             (-1)*[1/13],
    1329             (-zeta4)*[1/13],
    1330             (-zeta4)*[1/13],
     1328            -[1/13],
     1329            -zeta4*[1/13],
     1330            -zeta4*[1/13],
    13311331            zeta4*[1/13],
    13321332            zeta4*[1/13],
    13331333            [1/13],
    1334             (-1)*[1/13],
     1334            -[1/13],
    13351335            zeta4*[1/13],
    1336             (-1)*[1/13]]
     1336            -[1/13]]
    13371337            sage: B = ModularSymbols(DirichletGroup(13).0**4, 5, sign=1).boundary_space()
    13381338            sage: B._coerce_cusp(Cusp(0))
    13391339            [0]
  • sage/schemes/elliptic_curves/monsky_washnitzer.py

    diff --git a/sage/schemes/elliptic_curves/monsky_washnitzer.py b/sage/schemes/elliptic_curves/monsky_washnitzer.py
    a b  
    22332233        A more complicated example::
    22342234
    22352235            sage: a = x^20*y^-3 - x^11*y^2; a
    2236             (y^-3-4*y^-1+6*y-4*y^3+y^5)*1 + (-12*y^-3+36*y^-1-36*y-y^2+12*y^3+2*y^4-y^6)*x + (54*y^-3-108*y^-1+54*y+6*y^2-6*y^4)*x^2 + (-108*y^-3+108*y^-1-9*y^2)*x^3 + (81*y^-3)*x^4
     2236            (y^-3-4*y^-1+6*y-4*y^3+y^5)*1 - (12*y^-3-36*y^-1+36*y+y^2-12*y^3-2*y^4+y^6)*x + (54*y^-3-108*y^-1+54*y+6*y^2-6*y^4)*x^2 - (108*y^-3-108*y^-1+9*y^2)*x^3 + (81*y^-3)*x^4
    22372237            sage: raw, offset = a.coeffs()
    22382238            sage: a.min_pow_y()
    22392239            -3
     
    24122412            sage: MW.x_to_p(3)
    24132413            x^3
    24142414            sage: MW.x_to_p(5)
    2415             (-4+y^2)*1 + 4*x
     2415            -(4-y^2)*1 + 4*x
    24162416            sage: MW.x_to_p(101) is MW.x_to_p(101)
    24172417            True
    24182418        """
     
    24342434            sage: C = HyperellipticCurve(x^5-4*x+4)
    24352435            sage: MW = C.invariant_differential().parent()
    24362436            sage: MW.frob_Q(3)
    2437             (-60+48*y^2-12*y^4+y^6)*1 + (192-96*y^2+12*y^4)*x + (-192+48*y^2)*x^2 + 60*x^3
     2437            -(60-48*y^2+12*y^4-y^6)*1 + (192-96*y^2+12*y^4)*x - (192-48*y^2)*x^2 + 60*x^3
    24382438            sage: MW.Q()(MW.x_to_p(3))
    2439             (-60+48*y^2-12*y^4+y^6)*1 + (192-96*y^2+12*y^4)*x + (-192+48*y^2)*x^2 + 60*x^3
     2439            -(60-48*y^2+12*y^4-y^6)*1 + (192-96*y^2+12*y^4)*x - (192-48*y^2)*x^2 + 60*x^3
    24402440            sage: MW.frob_Q(11) is MW.frob_Q(11)
    24412441            True
    24422442        """
     
    24772477            sage: p = 7
    24782478            sage: MW = C.invariant_differential().parent()
    24792479            sage: MW.frob_invariant_differential(prec,p)
    2480             ((67894400*y^-20-81198880*y^-18+40140800*y^-16-10035200*y^-14+1254400*y^-12-62720*y^-10)*1 + (-119503944*y^-20+116064242*y^-18-43753472*y^-16+7426048*y^-14-514304*y^-12+12544*y^-10-1568*y^-8+70*y^-6+7*y^-4)*x + (78905288*y^-20-61014016*y^-18+16859136*y^-16-2207744*y^-14+250880*y^-12-37632*y^-10+3136*y^-8-70*y^-6)*x^2 + (-39452448*y^-20+26148752*y^-18-8085490*y^-16+2007040*y^-14-376320*y^-12+37632*y^-10-1568*y^-8)*x^3 + (21102144*y^-20-18120592*y^-18+8028160*y^-16-2007040*y^-14+250880*y^-12-12544*y^-10)*x^4) dx/2y
     2480            ((67894400*y^-20-81198880*y^-18+40140800*y^-16-10035200*y^-14+1254400*y^-12-62720*y^-10)*1 - (119503944*y^-20-116064242*y^-18+43753472*y^-16-7426048*y^-14+514304*y^-12-12544*y^-10+1568*y^-8-70*y^-6-7*y^-4)*x + (78905288*y^-20-61014016*y^-18+16859136*y^-16-2207744*y^-14+250880*y^-12-37632*y^-10+3136*y^-8-70*y^-6)*x^2 - (39452448*y^-20-26148752*y^-18+8085490*y^-16-2007040*y^-14+376320*y^-12-37632*y^-10+1568*y^-8)*x^3 + (21102144*y^-20-18120592*y^-18+8028160*y^-16-2007040*y^-14+250880*y^-12-12544*y^-10)*x^4) dx/2y
    24812481        """
    24822482        prof = Profiler()
    24832483        prof("setup")
     
    25462546            sage: p = 5
    25472547            sage: MW = C.invariant_differential().parent()
    25482548            sage: MW.frob_basis_elements(prec,p)
    2549             [((92000*y^-14-74200*y^-12+32000*y^-10-8000*y^-8+1000*y^-6-50*y^-4)*1 + (-194400*y^-14+153600*y^-12-57600*y^-10+9600*y^-8-600*y^-6)*x + (204800*y^-14-153600*y^-12+38400*y^-10-3200*y^-8)*x^2 + (-153600*y^-14+76800*y^-12-9600*y^-10)*x^3 + (63950*y^-14-18550*y^-12+1600*y^-10-400*y^-8+50*y^-6+5*y^-4)*x^4) dx/2y, ((-1391200*y^-14+941400*y^-12-302000*y^-10+76800*y^-8-14400*y^-6+1320*y^-4-30*y^-2)*1 + (2168800*y^-14-1402400*y^-12+537600*y^-10-134400*y^-8+16800*y^-6-720*y^-4)*x + (-1596800*y^-14+1433600*y^-12-537600*y^-10+89600*y^-8-5600*y^-6)*x^2 + (1433600*y^-14-1075200*y^-12+268800*y^-10-22400*y^-8)*x^3 + (-870200*y^-14+445350*y^-12-63350*y^-10+3200*y^-8-600*y^-6+30*y^-4+5*y^-2)*x^4) dx/2y, ((19488000*y^-14-15763200*y^-12+4944400*y^-10-913800*y^-8+156800*y^-6-22560*y^-4+1480*y^-2-10)*1 + (-28163200*y^-14+18669600*y^-12-5774400*y^-10+1433600*y^-8-268800*y^-6+25440*y^-4-760*y^-2)*x + (15062400*y^-14-12940800*y^-12+5734400*y^-10-1433600*y^-8+179200*y^-6-8480*y^-4)*x^2 + (-12121600*y^-14+11468800*y^-12-4300800*y^-10+716800*y^-8-44800*y^-6)*x^3 + (9215200*y^-14-6952400*y^-12+1773950*y^-10-165750*y^-8+5600*y^-6-720*y^-4+10*y^-2+5)*x^4) dx/2y, ((-225395200*y^-14+230640000*y^-12-91733600*y^-10+18347400*y^-8-2293600*y^-6+280960*y^-4-31520*y^-2+1480+10*y^2)*1 + (338048000*y^-14-277132800*y^-12+89928000*y^-10-17816000*y^-8+3225600*y^-6-472320*y^-4+34560*y^-2-720)*x + (-172902400*y^-14+141504000*y^-12-58976000*y^-10+17203200*y^-8-3225600*y^-6+314880*y^-4-11520*y^-2)*x^2 + (108736000*y^-14-109760000*y^-12+51609600*y^-10-12902400*y^-8+1612800*y^-6-78720*y^-4)*x^3 + (-85347200*y^-14+82900000*y^-12-31251400*y^-10+5304150*y^-8-367350*y^-6+8480*y^-4-760*y^-2-10+5*y^2)*x^4) dx/2y]
    2550         """                       
     2549            [((92000*y^-14-74200*y^-12+32000*y^-10-8000*y^-8+1000*y^-6-50*y^-4)*1 - (194400*y^-14-153600*y^-12+57600*y^-10-9600*y^-8+600*y^-6)*x + (204800*y^-14-153600*y^-12+38400*y^-10-3200*y^-8)*x^2 - (153600*y^-14-76800*y^-12+9600*y^-10)*x^3 + (63950*y^-14-18550*y^-12+1600*y^-10-400*y^-8+50*y^-6+5*y^-4)*x^4) dx/2y, (-(1391200*y^-14-941400*y^-12+302000*y^-10-76800*y^-8+14400*y^-6-1320*y^-4+30*y^-2)*1 + (2168800*y^-14-1402400*y^-12+537600*y^-10-134400*y^-8+16800*y^-6-720*y^-4)*x - (1596800*y^-14-1433600*y^-12+537600*y^-10-89600*y^-8+5600*y^-6)*x^2 + (1433600*y^-14-1075200*y^-12+268800*y^-10-22400*y^-8)*x^3 - (870200*y^-14-445350*y^-12+63350*y^-10-3200*y^-8+600*y^-6-30*y^-4-5*y^-2)*x^4) dx/2y, ((19488000*y^-14-15763200*y^-12+4944400*y^-10-913800*y^-8+156800*y^-6-22560*y^-4+1480*y^-2-10)*1 - (28163200*y^-14-18669600*y^-12+5774400*y^-10-1433600*y^-8+268800*y^-6-25440*y^-4+760*y^-2)*x + (15062400*y^-14-12940800*y^-12+5734400*y^-10-1433600*y^-8+179200*y^-6-8480*y^-4)*x^2 - (12121600*y^-14-11468800*y^-12+4300800*y^-10-716800*y^-8+44800*y^-6)*x^3 + (9215200*y^-14-6952400*y^-12+1773950*y^-10-165750*y^-8+5600*y^-6-720*y^-4+10*y^-2+5)*x^4) dx/2y, (-(225395200*y^-14-230640000*y^-12+91733600*y^-10-18347400*y^-8+2293600*y^-6-280960*y^-4+31520*y^-2-1480-10*y^2)*1 + (338048000*y^-14-277132800*y^-12+89928000*y^-10-17816000*y^-8+3225600*y^-6-472320*y^-4+34560*y^-2-720)*x - (172902400*y^-14-141504000*y^-12+58976000*y^-10-17203200*y^-8+3225600*y^-6-314880*y^-4+11520*y^-2)*x^2 + (108736000*y^-14-109760000*y^-12+51609600*y^-10-12902400*y^-8+1612800*y^-6-78720*y^-4)*x^3 - (85347200*y^-14-82900000*y^-12+31251400*y^-10-5304150*y^-8+367350*y^-6-8480*y^-4+760*y^-2+10-5*y^2)*x^4) dx/2y]
     2550        """
    25512551        F_i = self.frob_invariant_differential(prec, p)
    25522552        x_to_p = self.x_to_p(p)
    25532553        F = [F_i]
     
    26512651            sage: w-w
    26522652            0 dx/2y
    26532653            sage: x*w-w
    2654             ((-1)*1 + x) dx/2y
     2654            (-1 + x) dx/2y
    26552655            sage: w - x*w - y*w
    2656             ((1-y)*1 + (-1)*x) dx/2y
     2656            ((1-y)*1 - x) dx/2y
    26572657        """
    26582658        return MonskyWashnitzerDifferential(left.parent(),
    26592659                                            left._coeff - right._coeff)
     
    26692669            sage: x,y = C.monsky_washnitzer_gens()
    26702670            sage: w = C.invariant_differential()
    26712671            sage: -w
    2672             ((-1)*1) dx/2y
     2672            -1 dx/2y
    26732673            sage: -((y-x)*w)
    2674             ((-y)*1 + x) dx/2y
     2674            (-y*1 + x) dx/2y
    26752675        """
    26762676        return MonskyWashnitzerDifferential(self.parent(), -self._coeff)
    26772677
     
    29042904        It leaves non-negative powers of `y` alone::
    29052905       
    29062906            sage: y.diff()
    2907             ((-3)*1 + 5*x^4) dx/2y
     2907            (-3*1 + 5*x^4) dx/2y
    29082908            sage: y.diff().reduce_neg_y_fast()
    2909             (0, ((-3)*1 + 5*x^4) dx/2y)
     2909            (0, (-3*1 + 5*x^4) dx/2y)
    29102910        """
    29112911#        prof = Profiler()
    29122912#        prof("reduce setup")
  • sage/schemes/generic/divisor.py

    diff --git a/sage/schemes/generic/divisor.py b/sage/schemes/generic/divisor.py
    a b  
    178178            sage: D._latex_()
    179179            '\\mathrm{V}\\left(x + 2 y\\right)
    180180            + 4\\mathrm{V}\\left(x\\right)
    181             + \\left(-5\\right)\\mathrm{V}\\left(y\\right)'
     181            - 5\\mathrm{V}\\left(y\\right)'
    182182        """
    183183        # The code is copied from _repr_ with latex adjustments
    184184        terms = list(self)
  • sage/tests/book_schilling_zabrocki_kschur_primer.py

    diff --git a/sage/tests/book_schilling_zabrocki_kschur_primer.py b/sage/tests/book_schilling_zabrocki_kschur_primer.py
    a b  
    569569    sage: ks3 = Sym.kschur(3,t=1)
    570570    sage: p = Sym.p()
    571571    sage: p(ks3z[2, 2, 2, 2, 2, 2, 2, 2])     # long time (17s on sage.math, 2013)
    572     1/12*p[4, 4, 4, 4] + 1/4*p[8, 8] + (-1/3)*p[12, 4]
     572    1/12*p[4, 4, 4, 4] + 1/4*p[8, 8] - 1/3*p[12, 4]
    573573    sage: p(ks3[2,2])
    574     1/12*p[1, 1, 1, 1] + 1/4*p[2, 2] + (-1/3)*p[3, 1]
     574    1/12*p[1, 1, 1, 1] + 1/4*p[2, 2] - 1/3*p[3, 1]
    575575    sage: p(ks3[2,2]).plethysm(p[4])
    576     1/12*p[4, 4, 4, 4] + 1/4*p[8, 8] + (-1/3)*p[12, 4]
     576    1/12*p[4, 4, 4, 4] + 1/4*p[8, 8] - 1/3*p[12, 4]
    577577
    578578Sage example in ./kschurnotes/notes-mike-anne.tex, line 5405::
    579579