1. 13 Jul, 2018 1 commit
  2. 12 Jul, 2018 1 commit
  3. 15 May, 2018 1 commit
  4. 14 May, 2018 1 commit
  5. 13 May, 2018 30 commits
    • Release Manager's avatar
      Trac #25258: Gurobi breaks lots of doctests in make ptestlong · 8c327b99
      Release Manager authored
      After installing Gurobi 8.0, `make ptestlong` gives:
      {{{
      ----------------------------------------------------------------------
      sage -t --long --warn-long 78.4 src/sage/graphs/generic_graph.py  # 79
      doctests failed
      sage -t --long --warn-long 78.4 src/sage/geometry/polyhedron/base.py  #
      2 doctests failed
      sage -t --long --warn-long 78.4 src/sage/geometry/cone.py  # 3 doctests
      failed
      sage -t --long --warn-long 78.4
      src/sage/graphs/generators/smallgraphs.py  # 21 doctests failed
      sage -t --long --warn-long 78.4 src/sage/graphs/generators/families.py
      # 4 doctests failed
      sage -t --long --warn-long 78.4 src/sage/graphs/graph.py  # 49 doctests
      failed
      sage -t --long --warn-long 78.4 src/sage/combinat/designs/database.py  #
      1 doctest failed
      sage -t --long --warn-long 78.4 src/sage/combinat/posets/posets.py  # 3
      doctests failed
      sage -t --long --warn-long 78.4 src/sage/graphs/generators/basic.py  # 1
      doctest failed
      sage -t --long --warn-long 78.4 src/sage/homology/simplicial_complex.py
      # 6 doctests failed
      sage -t --long --warn-long 78.4
      src/sage/combinat/designs/orthogonal_arrays_build_recursive.py  # 11
      doctests failed
      sage -t --long --warn-long 78.4
      src/sage/graphs/graph_decompositions/vertex_separation.pyx  # 7 doctests
      failed
      sage -t --long --warn-long 78.4
      src/sage/combinat/posets/poset_examples.py  # 1 doctest failed
      sage -t --long --warn-long 78.4 src/sage/knots/link.py  # 9 doctests
      failed
      sage -t --long --warn-long 78.4
      src/sage/combinat/designs/orthogonal_arrays_find_recursive.pyx  # 1
      doctest failed
      sage -t --long --warn-long 78.4 src/sage/combinat/designs/bibd.py  # 5
      doctests failed
      sage -t --long --warn-long 78.4 src/sage/graphs/graph_coloring.py  # 10
      doctests failed
      sage -t --long --warn-long 78.4 src/sage/graphs/digraph.py  # 9 doctests
      failed
      sage -t --long --warn-long 78.4 src/sage/matroids/matroid.pyx  # 1
      doctest failed
      sage -t --long --warn-long 78.4 src/sage/numerical/mip.pyx  # 3 doctests
      failed
      sage -t --long --warn-long 78.4
      src/sage/combinat/designs/orthogonal_arrays.py  # 4 doctests failed
      sage -t --long --warn-long 78.4
      src/sage/schemes/toric/toric_subscheme.py  # 10 doctests failed
      sage -t --long --warn-long 78.4 src/sage/schemes/toric/points.py  # 1
      doctest failed
      sage -t --long --warn-long 78.4 src/sage/game_theory/normal_form_game.py
      # 1 doctest failed
      sage -t --long --warn-long 78.4 src/sage/graphs/comparability.pyx  # 6
      doctests failed
      sage -t --long --warn-long 78.4
      src/sage/combinat/designs/incidence_structures.py  # 5 doctests failed
      sage -t --long --warn-long 78.4 src/sage/numerical/optimize.py  # 1
      doctest failed
      sage -t --long --warn-long 78.4 src/sage/combinat/integer_vector.py  # 3
      doctests failed
      sage -t --long --warn-long 78.4 src/sage/graphs/bipartite_graph.py  # 2
      doctests failed
      sage -t --long --warn-long 78.4
      src/sage/graphs/generators/degree_sequence.py  # 2 doctests failed
      sage -t --long --warn-long 78.4 src/sage/graphs/generators/chessboard.py
      # 1 doctest failed
      sage -t --long --warn-long 78.4 src/sage/cpython/wrapperdescr.pyx  # 1
      doctest failed
      sage -t --long --warn-long 78.4 src/sage/matroids/graphic_matroid.py  #
      7 doctests failed
      sage -t --long --warn-long 78.4
      src/sage/numerical/backends/generic_backend.pyx  # 2 doctests failed
      sage -t --long --warn-long 78.4 src/sage/numerical/linear_functions.pyx
      # 50 doctests failed
      sage -t --long --warn-long 78.4
      src/sage/graphs/graph_decompositions/cutwidth.pyx  # 3 doctests failed
      sage -t --long --warn-long 78.4
      src/sage/numerical/linear_tensor_element.pyx  # 9 doctests failed
      sage -t --long --warn-long 78.4 src/doc/en/reference/sat/index.rst  # 1
      doctest failed
      sage -t --long --warn-long 78.4
      src/doc/en/thematic_tutorials/linear_programming.rst  # 5 doctests
      failed
      sage -t --long --warn-long 78.4 src/sage/graphs/hypergraph_generators.py
      # 1 doctest failed
      sage -t --long --warn-long 78.4 src/sage/sat/solvers/sat_lp.py  # 7
      doctests failed
      sage -t --long --warn-long 78.4
      src/sage/numerical/backends/cvxopt_backend.pyx  # 1 doctest failed
      sage -t --long --warn-long 78.4 src/sage/graphs/convexity_properties.pyx
      # 3 doctests failed
      sage -t --long --warn-long 78.4 src/sage/numerical/linear_tensor.py  #
      12 doctests failed
      sage -t --long --warn-long 78.4
      src/sage/numerical/backends/gurobi_backend.pyx  # 1 doctest failed
      sage -t --long --warn-long 78.4
      src/sage/numerical/linear_tensor_constraints.py  # 15 doctests failed
      sage -t --long --warn-long 78.4 src/sage/numerical/knapsack.py  # 5
      doctests failed
      sage -t --long --warn-long 78.4 src/sage/sat/solvers/satsolver.pyx  # 1
      doctest failed
      ----------------------------------------------------------------------
      }}}
      
      All of the failing tests looking like:
      {{{
      sage -t --long --warn-long 78.4 src/sage/sat/solvers/sat_lp.py
      **********************************************************************
      File "src/sage/sat/solvers/sat_lp.py", line 31, in
      sage.sat.solvers.sat_lp.SatLP.__init__
      Failed example:
          S=SAT(solver="LP"); S
      Expected:
          an ILP-based SAT Solver
      Got:
          Academic license - for non-commercial use only
          an ILP-based SAT Solver
      **********************************************************************
      }}}
      
      Or sometimes:
      
      {{{
      **********************************************************************
      File "src/sage/schemes/toric/toric_subscheme.py", line 652, in sage.sche
      mes.toric.toric_subscheme.AlgebraicScheme_subscheme_toric.is_nondegenera
      te
      Failed example:
          Y.is_nondegenerate()
      Expected:
          False
      Got:
          Academic license - for non-commercial use only
          Academic license - for non-commercial use only
          Academic license - for non-commercial use only
          Academic license - for non-commercial use only
          Academic license - for non-commercial use only
          Academic license - for non-commercial use only
          Academic license - for non-commercial use only
          Academic license - for non-commercial use only
          Academic license - for non-commercial use only
          Academic license - for non-commercial use only
          Academic license - for non-commercial use only
          Academic license - for non-commercial use only
          Academic license - for non-commercial use only
          Academic license - for non-commercial use only
          Academic license - for non-commercial use only
          Academic license - for non-commercial use only
          Academic license - for non-commercial use only
          Academic license - for non-commercial use only
          False
      **********************************************************************
      }}}
      
      URL: https://trac.sagemath.org/25258
      Reported by: slabbe
      Ticket author(s): David Coudert
      Reviewer(s): Sébastien Labbé
      8c327b99
    • Release Manager's avatar
      Trac #25248: py3: fix sage.parallel.map_reduce · 47a7327e
      Release Manager authored
      A bit of background to this fix:  Python 3.4 introduced a new API to the
      `multiprocessing` module that uses application-specific ''contexts'' for
      all state related to multiprocessing, rather than the old way of relying
      entirely on module-global state (though there is a concept of a default
      context).  This also enables it to offer different strategies for
      process spawning.
      
      Here we just keep the existing functionality as-is, but slightly update
      how the `multiprocessing` module is used in this module to use a context
      for it instead, while still keeping backwards compatibility on Python 2.
      
      URL: https://trac.sagemath.org/25248
      Reported by: embray
      Ticket author(s): Erik Bray
      Reviewer(s): Florent Hivert
      47a7327e
    • Release Manager's avatar
      Trac #25244: LatticePoset: Add is_interval_dismantlable · 7feb4d29
      Release Manager authored
      This patch add a function to check if a lattice is interval
      dismantlable.
      
      See
      https://link.springer.com/content/pdf/10.1007%2Fs11083-017-9422-7.pdf or
      https://math.hawaii.edu/~jb/decomp4.pdf
      
      URL: https://trac.sagemath.org/25244
      Reported by: jmantysalo
      Ticket author(s): Jori Mäntysalo
      Reviewer(s): Frédéric Chapoton
      7feb4d29
    • Release Manager's avatar
      Trac #25236: Deprecate various functions from old coercion model · 3e6075d5
      Release Manager authored
      Yet another piece of removing the old coercion model...
      
      1. All functions which are only used internally by the old coercion
      model get two leading underscores or are inlined in another function.
      
      2. All functions which are only called from Cython are changed to a
      `cdef` function.
      
      3. The public functions `coerce_map_from_c` and `has_coerce_map_from_c`
      are kept as deprecated alias. The other removed functions already had a
      leading underscore and are simply removed. As a consequence, there are
      no longer any public non-deprecated methods in the `parent_old.Parent`
      class.
      
      4. Remove Python access to the `_has_coerce_map_from` cache.
      
      URL: https://trac.sagemath.org/25236
      Reported by: jdemeyer
      Ticket author(s): Jeroen Demeyer
      Reviewer(s): Marc Mezzarobba
      3e6075d5
    • Release Manager's avatar
      Trac #25235: q-Stirling numbers of the second kind · c4b415fa
      Release Manager authored
      URL: https://trac.sagemath.org/25235
      Reported by: mantepse
      Ticket author(s): Martin Rubey
      Reviewer(s): Frédéric Chapoton
      c4b415fa
    • Release Manager's avatar
      Trac #25224: Mismatch in the definition of dilog() between fricas and sympy · 2c908156
      Release Manager authored
      The function {{{dilog}}} in the output of an integration using
      {{{algorithm='fricas'}}} has a different meaning than {{{dilog}}} when
      integrating using other algorithms.
      
      These different definitions of dilog can be observed as follows:
      
      {{{
      sage: integrate(log(x)/(1-x),x,algorithm='fricas')
      sage: integrate(log(x)/(1-x),x,algorithm='sympy')
      dilog(x)
      dilog(-x+1)
      }}}
      
      That is, sagemath considers {{{Li_2(x)=dilog(x)}}} but fricas uses
      {{{Li_2(x)=dilog(1-x)}}}. The wikipedia page
      [https://en.wikipedia.org/wiki/Spence%27s_function] mentions these two
      alternative definitions.
      
      To exemplify:
      {{{
      sage: fricas("dilog(1)")
      0
      sage: dilog(0)
      0
      }}}
      
      URL: https://trac.sagemath.org/25224
      Reported by: mafra
      Ticket author(s): Martin Rubey
      Reviewer(s): Carlos Mafra
      2c908156
    • Release Manager's avatar
      Trac #25223: Cleaning of the usage of BFS · 3ab97b15
      Release Manager authored
      Shifting of `simple_BFS` function from `distances_all_pairs.pyx` to
      `static_sparse_backend`.
      
      URL: https://trac.sagemath.org/25223
      Reported by: saiharsh
      Ticket author(s): Tondomker Sai Harsh
      Reviewer(s): David Coudert
      3ab97b15
    • Release Manager's avatar
      Trac #25220: fix definite fricas integration · bf0beabf
      Release Manager authored
      As reported at https://ask.sagemath.org/question/40733/integrate-sqrt1
      -cosx-integrinterval-from-0-to-2pi, the sage interface to the fricas
      integrator fails to do the definite integral
      {{{
      sage: integral(sqrt(1-cos(x)), x, 0, 2*pi, algorithm="fricas")
      }}}
      which this ticket fixes:
      {{{
      4*sqrt(2)
      }}}
      
      See also #24587.
      
      URL: https://trac.sagemath.org/25220
      Reported by: mantepse
      Ticket author(s): Martin Rubey
      Reviewer(s): Carlos Mafra
      bf0beabf
    • Release Manager's avatar
      Trac #25216: py3: fix bytes handling bugs in sage.plot.animate · 88e1ed6d
      Release Manager authored
      URL: https://trac.sagemath.org/25216
      Reported by: embray
      Ticket author(s): Erik Bray
      Reviewer(s): Julian Rüth
      88e1ed6d
    • Release Manager's avatar
      Trac #25211: code should not depend ordering of codegrees · deae5174
      Release Manager authored
      We have
      {{{
      sage: WeylGroup("A5").codegrees()
      (0, 1, 2, 3, 4)
      sage: Permutations(6).codegrees()
      (0, 1, 2, 3, 4)
      sage: ColoredPermutations(1,6).codegrees()
      (4, 3, 2, 1, 0)
      }}}
      However, there is code assuming the latter ordering.  In particular:
      {{{
      sage: WeylGroup("A5").number_of_reflections_of_full_support()
      0
      sage: ColoredPermutations(1,6).number_of_reflections_of_full_support()
      1
      }}}
      
      I don't know which order is better, but this ticked simply removes the
      dependency on the ordering in `number_of_reflections_of_full_support`.
      
      URL: https://trac.sagemath.org/25211
      Reported by: mantepse
      Ticket author(s): Martin Rubey
      Reviewer(s): Christian Stump
      deae5174
    • Release Manager's avatar
      Trac #25203: Speed up FiniteField.zeta() · eb2f271a
      Release Manager authored
      Something like this takes forever:
      {{{
      sage: GF(2^1000).zeta(3)
      }}}
      This is because `k.zeta()` is implemented by taking the power of a
      multiplicative generator, but computing a multiplicative generator can
      take a very long time (it requires factoring `q-1`).
      
      Instead, we implement a new function `_element_of_factored_order` and
      implement both `zeta` and `multiplicative_generator` using that.
      
      URL: https://trac.sagemath.org/25203
      Reported by: jdemeyer
      Ticket author(s): Jeroen Demeyer
      Reviewer(s): Vincent Delecroix
      eb2f271a
    • Release Manager's avatar
      Trac #25201: Use super() in MatrixSpace.__getitem__ · 22b8be8a
      Release Manager authored
      Relying on `__func__` to get the function of an unbound method will
      break in Python 3. Instead of just fixing this, we use a different and
      better mechanism to call the `__getitem__` from the category: we use
      `super()` to call the base `__getitem__` implementation.
      
      URL: https://trac.sagemath.org/25201
      Reported by: jdemeyer
      Ticket author(s): Jeroen Demeyer
      Reviewer(s): Travis Scrimshaw
      22b8be8a
    • Release Manager's avatar
      Trac #25200: Incorrect long element for signed permutations · 9a7f40d0
      Release Manager authored
      The long element is wrong:
      {{{
      sage: SP = SignedPermutations(5)
      sage: SP.long_element()
      [-5, -4, -3, -2, -1]
      }}}
      It should be
      {{{
      [-1, -2, -3, -4, -5]
      }}}
      
      URL: https://trac.sagemath.org/25200
      Reported by: tscrim
      Ticket author(s): Travis Scrimshaw
      Reviewer(s): Frédéric Chapoton, Jean-Philippe Labbé
      9a7f40d0
    • Release Manager's avatar
      Trac #25195: py3: fix segfault in element wrapper on Python 3 · eba77d3f
      Release Manager authored
      This generated code is later used in such a way that assumes the
      `mapped_args` variable is a `list`--using `map()` on Python 3 sets it to
      a `map` object instead, resulting in a segfault when trying to use it as
      a `list`.
      
      URL: https://trac.sagemath.org/25195
      Reported by: embray
      Ticket author(s): Erik Bray
      Reviewer(s): Jeroen Demeyer
      eba77d3f
    • Release Manager's avatar
      Trac #25192: primitivity test for integral matrices · f5527d21
      Release Manager authored
      A new method `is_primitive` is added to integral matrices.
      
      URL: https://trac.sagemath.org/25192
      Reported by: vdelecroix
      Ticket author(s): Vincent Delecroix
      Reviewer(s): Travis Scrimshaw
      f5527d21
    • Release Manager's avatar
      Trac #25186: Use ZZ.random_element for random_prime · b3b4f750
      Release Manager authored
      The switches the random number generation in `random_prime` to use
      `ZZ.random_element` instead of Python's `random.randint`.
      
      The original motivation is that this gives consistent results between
      Python 2 and Python 3 (whose `randint` implementations have slight
      differences).  The results should be the same insofar as providing a
      uniform distribution, though someone with better knowledge may want to
      check that the tests still make sense as written.
      
      Unsurprisingly, however, this gives `random_prime` a speedup of roughly
      5 times (at least on my system).
      
      URL: https://trac.sagemath.org/25186
      Reported by: embray
      Ticket author(s): Erik Bray
      Reviewer(s): Frédéric Chapoton
      b3b4f750
    • Release Manager's avatar
      Trac #25182: coherent output type for polynomial.degree() · 7e6c6ab9
      Release Manager authored
      Some methods expect a Sage integer from the degree method but this is
      not consistent accross sage polynomials
      {{{
      sage: R1 = PolynomialRing(Zmod(3), 'x', implementation='NTL')
      sage: type(R1.an_element().degree())
      <type 'int'>
      sage: R2 = PolynomialRing(Zmod(3), 'x', implementation='FLINT')
      sage: type(R2.an_element().degree())
      <type 'sage.rings.integer.Integer'>
      }}}
      
      As a consequence
      {{{
      sage: GF(next_prime(2^63)^6)
      Traceback (most recent call last):
      ...
      AttributeError: 'int' object has no attribute 'divisors'
      }}}
      Initial report on [https://groups.google.com/forum/#!topic/sage-support
      /m60g-LrIQsc sage-support].
      
      URL: https://trac.sagemath.org/25182
      Reported by: vdelecroix
      Ticket author(s): Vincent Delecroix
      Reviewer(s): Frédéric Chapoton, John Cremona
      7e6c6ab9
    • Release Manager's avatar
      Trac #25174: conversion of I to fricas is wrong · 6a2222af
      Release Manager authored
      This code in this ticket corrects the conversion of tThe imaginary unit
      (as a symbolic expression) between sagemath and FriCAS.  In FriCAS, it's
      representation is "%i", not "I".  Before the ticket, we had:
      {{{
      sage: fricas(I)^2
       2
      I
      sage: fricas("%i")^2
      - 1
      }}}
      
      After this ticket, also more complex stuff works:
      {{{
      sage: integrate(sin(x)*exp(I*x), x, -pi, 0, algorithm="fricas")
      1/2*I*pi
      }}}
      
      The conversion from SageMath to FriCAS is done in complete analogy to
      maxima.  This may not be ideal, but improving that if necessary should
      be done in a different ticket.
      
      The conversion from FriCAS to SageMath is a straightforward extension in
      the interface code.  After this ticket, complex symbolic expressions and
      polynomials are translated to elements of the `Symbolic Ring`.
      
      URL: https://trac.sagemath.org/25174
      Reported by: mantepse
      Ticket author(s): Martin Rubey
      Reviewer(s): Vincent Delecroix
      6a2222af
    • Release Manager's avatar
      Trac #25169: py3: fixing print in sage-starts script · 6a34919e
      Release Manager authored
      In a python3-sage run of the patchbot:
      {{{
      Testing that Sage starts...
      [2018-04-14 19:22:09] SageMath version 8.2.rc2, Release Date: 2018-04-10
      This looks like the first time you are running Sage.
      Cleaning up, do not interrupt this.
      Done cleaning.
      Traceback (most recent call last):
        File "/home/chapoton/sage3/src/bin/sage-eval", line 10, in <module>
          eval(compile(s,'<cmdline>','exec'))
        File "<cmdline>", line 1
          sage.all._write_started_file(); print "Yes, Sage starts."
                                                                  ^
      SyntaxError: invalid syntax
      Sage failed to start up.
      Please email sage-devel (http://groups.google.com/group/sage-devel)
      }}}
      
      The solution is to make this `print` (originally a
      Python2 print statement) compatible with the
      Python3 print function.
      
      URL: https://trac.sagemath.org/25169
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Samuel Lelièvre
      6a34919e
    • Release Manager's avatar
      Trac #25161: Sphinx build hangs when a BaseException occurs · 80d4a17e
      Release Manager authored
      Python's `multiprocessing.Pool` hangs when a `BaseException` that is not
      an `Excepion` happens in the function it runs; we need to wrap these in
      "normal" Exception's so they get thrown correctly by the pool's `get`.
      
      Here's a minimal Python session to showcase this problem:
      {{{
      Python 2.7.14 (default, Jan  5 2018, 10:41:29)
      [GCC 7.2.1 20171224] on linux2
      Type "help", "copyright", "credits" or "license" for more information.
      >>> def work(x):
      ...     raise BaseException(x)
      ...
      >>> from multiprocessing import Pool
      >>> pool = Pool(2)
      >>> pool.map_async(work, ["error", "error"]).get()
      Process PoolWorker-1:
      Process PoolWorker-2:
      Traceback (most recent call last):
      Traceback (most recent call last):
        File "/usr/lib/python2.7/multiprocessing/process.py", line 267, in
      _bootstrap
        File "/usr/lib/python2.7/multiprocessing/process.py", line 267, in
      _bootstrap
          self.run()
        File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
          self.run()
        File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
          self._target(*self._args, **self._kwargs)
          self._target(*self._args, **self._kwargs)
        File "/usr/lib/python2.7/multiprocessing/pool.py", line 113, in worker
        File "/usr/lib/python2.7/multiprocessing/pool.py", line 113, in worker
          result = (True, func(*args, **kwds))
        File "/usr/lib/python2.7/multiprocessing/pool.py", line 65, in mapstar
          result = (True, func(*args, **kwds))
          return map(*args)
        File "/usr/lib/python2.7/multiprocessing/pool.py", line 65, in mapstar
        File "<stdin>", line 2, in work
          return map(*args)
        File "<stdin>", line 2, in work
      BaseException: error
      BaseException: error
      [hangs]
      }}}
      
      This upstreams part of Debian's `u2-better-sphinx-failure-modes.patch`.
      
      URL: https://trac.sagemath.org/25161
      Reported by: saraedum
      Ticket author(s): Julian Rüth
      Reviewer(s): Erik Bray
      80d4a17e
    • Release Manager's avatar
      Trac #25146: Cleanup of AbstractPartitionDiagram · 6f130ae9
      Release Manager authored
      The `AbstractPartitionDiagram` class from diagram_algebra.py inherits
      from `SetPartitions` and many of the methods will fail if one tries to
      use them because they assume that the base set is `\{1,2,...,n\}`.
      
      This ticket will factor out the relevant classes from `SetPartition` and
      have `AbstractPartitionDiagram` inherit only those.
      
      URL: https://trac.sagemath.org/25146
      Reported by: zabrocki
      Ticket author(s): Mike Zabrocki, Travis Scrimshaw
      Reviewer(s): Travis Scrimshaw, Mike Zabrocki
      6f130ae9
    • Release Manager's avatar
      Trac #24966: package primecount 4.3 · 41c9fffb
      Release Manager authored
      The goal of this ticket is to
      
      - package Kim Walish's `primecount` package (the version of `prime_pi`
        in Sage has bugs, see #24960)
      - provide an experimental interface to it in `arith/prime_pi.pyx` (that
      will
        be merged with the current `prime_pi` in Sage in #25009).
      
      Note that
      
      - `primecount`'s build system uses cmake, which needs an upgrade (see
      #25109)
      - the latest release of `primecount` should work on both big-endian and
      little-indian
        processors but has been tested successfully
      - linking on Mac OSX looks fishy but seems to work fine
      
      Tarball (to be renamed `primecount-4.3.tar.gz` in Sage):
      
      - https://github.com/kimwalisch/primecount/archive/v4.3.tar.gz
      
      This ticket led to opening and solving an upstream issue,
      leading to improvements in the build and documentation:
      
      - https://github.com/kimwalisch/primecount/issues/11
      
      URL: https://trac.sagemath.org/24966
      Reported by: vdelecroix
      Ticket author(s): Vincent Delecroix
      Reviewer(s): Vincent Klein, François Bissey
      41c9fffb
    • Release Manager's avatar
      Trac #24890: Tensor product of lattices · 72980a10
      Release Manager authored
      Let `L1`,`L2` two integral lattices, we define the tensor product of
      `L1` and `L2` as the tensor product of the free modules with the
      bilinear inform induced by `L1,L2`
      
      URL: https://trac.sagemath.org/24890
      Reported by: pmenegat
      Ticket author(s): Paolo Menegatti
      Reviewer(s): Simon Brandhorst, Travis Scrimshaw
      72980a10
    • Release Manager's avatar
      Trac #24460: py3: fixes to sage.libs.gap · 951fa491
      Release Manager authored
      These are the minimal fixes I needed to get all the tests passing for
      `sage.libs.gap` (to be clear, this required fixes in other modules as
      well--these are just the fixes in `sage.libs.gap` itself).
      
      Mostly just minor string conversion fixes, and one or two other little
      things.
      
      URL: https://trac.sagemath.org/24460
      Reported by: embray
      Ticket author(s): Erik Bray
      Reviewer(s): Frédéric Chapoton
      951fa491
    • Release Manager's avatar
      Trac #15508: Implement Fock space · e5af4884
      Release Manager authored
      In type A. I put this in a new `algebras/quantum_groups` folder in
      preparation of Lie algebras and quantum groups #14901.
      
      URL: https://trac.sagemath.org/15508
      Reported by: tscrim
      Ticket author(s): Travis Scrimshaw
      Reviewer(s): Andrew Mathas
      e5af4884
    • Release Manager's avatar
      Trac #25335: Missing imports in src/sage/geometry/polyhedron/base.py · 4756f04c
      Release Manager authored
      Fix the missing imports reported at #25332.
      
      URL: https://trac.sagemath.org/25335
      Reported by: jdemeyer
      Ticket author(s): Frédéric Chapoton, Dima Pasechnik
      Reviewer(s): Dima Pasechnik
      4756f04c
    • Release Manager's avatar
      Trac #25133: Implement WQSym · faad3561
      Release Manager authored
      The combinatorial Hopf algebra indexed by ordered set partitions. We
      implement the monomial basis.
      
      URL: https://trac.sagemath.org/25133
      Reported by: tscrim
      Ticket author(s): Travis Scrimshaw
      Reviewer(s): Darij Grinberg
      faad3561
    • Release Manager's avatar
      Trac #25132: Define the class of SuperPartitions · b593af33
      Release Manager authored
      These combinatorial objects index the space of symmetric polynomials in
      two sets of variables, one commuting and one anti-commuting, and they
      are known as symmetric functions in super space (hence the origin of the
      name super partitions).
      
      Super partitions may be input in two different formats: one as a pair
      consisiting of fermionic (strict partition) and a bosonic (partition)
      part
      and as a list of integer values where the negative entries come first
      and are listed in strict order followed by the positive values in weakly
      decreasing order.
      
      A super partition is displayed as two partitions separated by a
      semicolon
      as a default.  Super partitions may also be displayed as a weakly
      increasing
      sequence of integers that are strict if the numbers are not positive.
      
      URL: https://trac.sagemath.org/25132
      Reported by: zabrocki
      Ticket author(s): Mike Zabrocki
      Reviewer(s): Travis Scrimshaw
      b593af33
    • Release Manager's avatar
      Trac #25131: FQSym: add G basis · c1a36a02
      Release Manager authored
      Currently, we only have the F-basis for FQSym. We implement the G-basis
      (G[sigma] == F[sigma^{-1}^]).
      
      See #25136 for the monomial basis.
      
      URL: https://trac.sagemath.org/25131
      Reported by: darij
      Ticket author(s): Darij Grinberg
      Reviewer(s): Travis Scrimshaw
      c1a36a02
    • Release Manager's avatar
      Trac #25128: Have py_scalar_to_element convert gmpy2 numbers · ad72cec5
      Release Manager authored
      Currently {{{py_scalar_to_element}}} function ({{{coerce.pyx}}}) doesn't
      convert {{{gmpy2 numbers}}}. {{{py_scalar_to_element}}} should work with
      {{{gmpy2}}} the same way it does with {{{numpy}}}.
      
      URL: https://trac.sagemath.org/25128
      Reported by: vklein
      Ticket author(s): Vincent Klein
      Reviewer(s): Vincent Delecroix, Jeroen Demeyer
      ad72cec5
  6. 11 May, 2018 2 commits
  7. 10 May, 2018 4 commits
    • Simon Brandhorst's avatar
    • Release Manager's avatar
      Trac #25121: fix edge color format in graphviz_string · 81f7d7a3
      Release Manager authored
      graphviz color format should be one of the following
      - HSV triple such as `".08396, 0.4862,0.8549"`
      - RGB triple such as `#DA70D6`
      - a color name such as `orchid`
      As a consequence the following is broken
      {{{
      sage: G = Graph([(0,1)])
      sage: G.set_latex_options(edge_colors={(0,1): (0.3, 0.9, 0.0)},
      format='dot2tex')
      sage: view(G)
      }}}
      To make it coherent with matplotlib option as in
      {{{
      sage: plot(x, color=(0.3, 0.9, 0))
      }}}
      we convert 3-tuples in RGB format using the `to_hex` function from
      matplotlib.
      
      URL: https://trac.sagemath.org/25121
      Reported by: vdelecroix
      Ticket author(s): Vincent Delecroix
      Reviewer(s): Sébastien Labbé
      81f7d7a3
    • Release Manager's avatar
      Trac #25120: dot2tex edge coloring is broken · 8821bb14
      Release Manager authored
      From the documentation
      {{{
      sage: sage.graphs.graph_latex.GraphLatex.set_option?
      ...
          - ``edge_colors`` -- a dictionary whose keys are edges of the
            graph and whose values are colors.
      ...
      }}}
      Though
      {{{
      sage: G = Graph([(0,1)])
      sage: G.set_latex_options(format='dot2tex', edge_colors = {(0,1):
      'red'})
      sage: view(G)
      ------------------------------------------------------------------------
      ---
      AssertionError                            Traceback (most recent call
      last)
      <ipython-input-46-e13ee6ead400> in <module>()
      ----> 1 view(G)
      
      /opt/sage/local/lib/python2.7/site-packages/sage/misc/latex.pyc in
      view(objects, title, debug, sep, tiny, pdflatex, engine, viewer,
      tightpage, margin, mode, combine_all, **kwds)
         2201         latex_options = {}
         2202
      -> 2203     s = _latex_file_(objects, title=title, sep=sep, tiny=tiny,
      debug=debug, **latex_options)
         2204     if engine is None:
         2205         engine = _Latex_prefs._option["engine"]
      
      /opt/sage/local/lib/python2.7/site-packages/sage/misc/latex.pyc in
      _latex_file_(objects, title, debug, sep, tiny, math_left, math_right,
      extra_preamble)
         1767         for i in range(len(objects)):
         1768             x = objects[i]
      -> 1769             L = latex(x)
         1770             if '\\begin{pgfpicture}' in L:
         1771                 # Resize the pgf figure to the text width if
      larger.
      
      /opt/sage/local/lib/python2.7/site-packages/sage/misc/latex.pyc in
      __call__(self, x, combine_all)
          921         """
          922         if has_latex_attr(x):
      --> 923             return LatexExpr(x._latex_())
          924         try:
          925             f = latex_table[type(x)]
      
      /opt/sage/local/lib/python2.7/site-
      packages/sage/graphs/generic_graph.pyc in _latex_(self)
          768         setup_latex_preamble()
          769
      --> 770         return self.latex_options().latex()
          771
          772     def _matrix_(self, R=None):
      
      /opt/sage/local/lib/python2.7/site-packages/sage/graphs/graph_latex.pyc
      in latex(self)
         1302             return self.tkz_picture()
         1303         elif format == "dot2tex":
      -> 1304             return self.dot2tex_picture()
         1305
         1306     def dot2tex_picture(self):
      
      /opt/sage/local/lib/python2.7/site-packages/sage/graphs/graph_latex.pyc
      in dot2tex_picture(self)
         1356         options = self.__graphlatex_options.copy()
         1357         options.update(self._options)
      -> 1358         dotdata = self._graph.graphviz_string(labels="latex",
      **options)
         1359         import dot2tex
         1360         return dot2tex.dot2tex(dotdata,
      /opt/sage/local/lib/python2.7/site-packages/sage/misc/decorators.pyc in
      wrapper(*args, **kwds)
          562                 options['__original_opts'] = kwds
          563             options.update(kwds)
      --> 564             return func(*args, **options)
          565
          566         #Add the options specified by @Options to the signature
      of the wrapped
      
      /opt/sage/local/lib/python2.7/site-
      packages/sage/graphs/generic_graph.pyc in graphviz_string(self,
      **options)
        20705                 for edge in options['edge_colors'][color]:
        20706                     assert isinstance(edge, (list, tuple)) and
      len(edge) >= 2 and len(edge) <= 3,\
      > 20707                         "%s is not a valid format for
      edge"%(edge)
        20708                     u = edge[0]
        20709                     v = edge[1]
      
      AssertionError: r is not a valid format for edge
      }}}
      
      The confusion comes from the fact that the convention for `edge_colors`
      with `.plot()` is the reverse
      {{{
      sage: G.plot?
      ...
         * "edge_colors" - a dictionary specifying edge colors: each key
           is a color recognized by matplotlib, and each entry is a list of
           edges.
      ...
      }}}
      So is the case for `graphviz_string`
      {{{
      sage: G.graphviz_string?
      ...
         * "edge_colors" -- (default: None) a dictionary whose keys are
           colors and values are list of edges. }
      ...
      }}}
      
      URL: https://trac.sagemath.org/25120
      Reported by: vdelecroix
      Ticket author(s): Vincent Delecroix
      Reviewer(s): Sébastien Labbé
      8821bb14
    • Release Manager's avatar
      Trac #25117: some pyflakes cleanup for unused variables · 80fa1be9
      Release Manager authored
      outside of combinat folder
      
      URL: https://trac.sagemath.org/25117
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Travis Scrimshaw
      80fa1be9