1. 09 Sep, 2019 1 commit
  2. 02 Sep, 2019 1 commit
  3. 29 Aug, 2019 26 commits
    • Release Manager's avatar
      Trac #28411: refresh the prompt in the installation guide · c631202c
      Release Manager authored
      URL: https://trac.sagemath.org/28411
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Jori Mäntysalo
      c631202c
    • Release Manager's avatar
      Trac #28387: Implement function that returns the balanced digit representation of an integer · 45482b13
      Release Manager authored
      This ticket adds the balanced_digits function, returning the digit
      representation of an integer where the digits are centered at 0. For
      example, this enables:
      {{{
      sage: 8.balanced_digits(3)
      [-1, 0, 1]
      }}}
      {{{
      sage: 33.balanced_digits(6)
      [3, -1, 1]
      }}}
      
      URL: https://trac.sagemath.org/28387
      Reported by: gh-sheareralexj
      Ticket author(s): Alex Shearer
      Reviewer(s): Bruno Grenet
      45482b13
    • Release Manager's avatar
      Trac #28384: py2: UnicodeDecodeError in doctest framework exception handling · 4454ffec
      Release Manager authored
      I mentioned on #28116, that if an exception is raised in a doctest that
      happens to contain non-ASCII bytes in its message, there is a
      `UnicodeDecodeError` that occurs when trying to mix the text of the
      exception with `unicode` strings.
      
      This can be reproduced by running:
      
      {{{
      LANG=fr_FR.UTF8 ./sage -bt src/sage/misc/cython.py
      }}}
      
      It happens to contain a test in which `gcc` is run, producing an error,
      which is wrapped in a `RuntimeError`.  If the French localization of gcc
      is available then the error message contains unicode (in this case utf-8
      encoded) characters that do not get decoded.
      
      URL: https://trac.sagemath.org/28384
      Reported by: embray
      Ticket author(s): Erik Bray
      Reviewer(s): Samuel Lelièvre
      4454ffec
    • Release Manager's avatar
      Trac #28366: Lattice precision timing test fails on Windows 7 due to low-ish clock resolution · 0c8192c3
      Release Manager authored
      In `src/sage/ring/padics/lattice_precision.py`, use
      `if status` rather than `if total_time > 0`.
      
      They are supposed to be equivalent, but the clock
      resolution in Cygwin on Windows 7 is so low that `total_time` can be
      zero even when `status`
      evaluates to `True` as a boolean.
      
      URL: https://trac.sagemath.org/28366
      Reported by: embray
      Ticket author(s): Erik Bray
      Reviewer(s): Samuel Lelièvre
      0c8192c3
    • Release Manager's avatar
      Trac #28274: EnumeratedFamily should use integers as keys · 5e1b351a
      Release Manager authored
      This ticket solves the following problems involing `EnumeratedFamily`:
      
      - The keys of an enumerated family should be integers. Currently, the
      elements of the family itself are returned.
        {{{
        sage: f = Family(Permutations(4))
        sage: f.keys()
        Standard permutations of 4
        sage: list(f.keys()) == list(f)  # should not be True here
        True
        }}}
        Because of this, looking up elements by key as in
      `f[next(iter(f.keys()))]` raises a type error. For example, this is used
      in `DisjointUnionEnumeratedSets`.
      
      - Finite enumerated families should be in the category of
      `FiniteEnumeratedSets()`, while currently it is only in
      `EnumeratedSets()`:
        {{{
      sage: Family(Permutations(4)) in FiniteEnumeratedSets()  # should be
      True
      False
        }}}
      
      - Infinite enumerated families are currently indexed by
      `NonNegativeIntegers()` from
      `sage.categories.example.infinite_enumerated_sets`. This ticket replaces
      the usage of these example numbers by those in
      `sage.sets.non_negative_integers`. This also includes one instance in
      `baxter_permutations`.
      
      URL: https://trac.sagemath.org/28274
      Reported by: gh-mwageringel
      Ticket author(s): Markus Wageringel
      Reviewer(s): Travis Scrimshaw
      5e1b351a
    • Release Manager's avatar
      Trac #28172: Profile of a Finite Permutation Group · ec9715bb
      Release Manager authored
      Add methods profile and profile_series (= profile_polynomial) in
      category finite_permutation_groups, in order to be able to compute the
      orbital profile, and its generating series/polynomial, of a finite
      permutation group.
      
      (The profile of G maps any non negative integer n onto the number of
      G-orbits of n-subsets, for the induced action of G on all subsets of its
      domain.)
      
      URL: https://trac.sagemath.org/28172
      Reported by: falque
      Ticket author(s): Justine Falque
      Reviewer(s): Frédéric Chapoton
      ec9715bb
    • Release Manager's avatar
      Trac #28154: SciPy: patch for missing coding lines in some source files · dcf58df8
      Release Manager authored
      As originally reported at https://github.com/scipy/scipy/issues/9606
      there are a few .py modules in scipy that contain unicode characters in
      docstrings without supplying a required "coding" line, resulting in a
      `SyntaxError` when you try to compile them.
      
      Normally this is not a problem, because when you build scipy with its
      `setup.py` it just compiles all `.pyc` while assuming utf-8 encoding for
      the source files.  If you already have the `.pyc` file, then, nothing
      goes wrong because the `SyntaxError` only arises when the Python
      compiler tries to read the original source file at runtime.
      
      But if for some reason your files' mtimes get messed up (as apparently
      happened to me at some point; not sure how) and the .pyc has to be
      regenerated then you'll get a `SyntaxError` at import time for these
      modules.
      
      For now it should suffice to include the following patch:
      
      https://github.com/scipy/scipy/commit/4a8a35f2c27be9f209cfc6f347e7a57a4a
      62e693.patch
      
      URL: https://trac.sagemath.org/28154
      Reported by: embray
      Ticket author(s): Erik Bray
      Reviewer(s): Vincent Klein
      dcf58df8
    • Release Manager's avatar
      Trac #27917: Standardize doctest headers · 82d75fd3
      Release Manager authored
      It has recently come to my attention that there are a few doctest
      strings within Sage that do not follow the standard
      (http://doc.sagemath.org/html/en/developer/coding_basics.html
      #documentation-strings). Please see the comments in
      https://trac.sagemath.org/ticket/5548 for the details/conversation, but
      essentially, all doctests should be preceded by either a `TESTS::` or
      `EXAMPLES::` header.
      
      I have found a few places where this is not done:
      * set_calculus_method() of src/sage/manifolds/manifold.py
      * from_tamari_sorting_tuple() of src/sage/combinat/binary_tree.py
      ("EXEMPLES" instead of "EXAMPLES")
      * init() of GenericGraphQuery? in src/sage/graphs/graph_database.py
      * _hnf_mod() of src/sage/matrix/matrix_integer_dense.pyx
      
      There are also a few places where we have `Examples::` or `Tests::`
      instead of `EXAMPLES::` or `TESTS::`, and other places have `EXAMPLES:`
      (only one colon)... I am not sure if this matters for running doctests
      but for consistency, they should be fixed too.
      
      * preimage() and dual() of
      src/sage/schemes/projective/projective_subscheme.py
      * _richcmp_() of src/sage/schemes/projective/projective_point.py
      * Lattes_map() of src/sage/schemes/projective/projective_space.py
      * _call_(), SchemeMorphism_polynomial, __getitem__(), __mul__(),
      glue_along_domains() of src/sage/schemes/generic/morphism.py
      
      I have undoubtedly missed many other mistakes, so I believe this ticket
      is two-fold - we should first compile a list of files with incorrect
      docstring headers, and then fix them.
      
      URL: https://trac.sagemath.org/27917
      Reported by: gh-black-stones
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Kevin Lui
      82d75fd3
    • Release Manager's avatar
      Trac #25817: RuntimeError: Encountered operator mismatch in maxima-to-sr translation, integrate · 04d5aab1
      Release Manager authored
      I do not know if this is known or not. If it is, feel free to close.
      
      {{{
      >sage
      ┌────────────────────────────────────────────────────────────────────┐
      │ SageMath version 8.3.rc0, Release Date: 2018-07-08                 │
      │ Type "notebook()" for the browser-based notebook interface.        │
      │ Type "help()" for help.                                            │
      └────────────────────────────────────────────────────────────────────┘
      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
      ┃ Warning: this is a prerelease version, and it may be unstable.     ┃
      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
      sage: var('x')
      x
      sage: integrate(log(e^x*log(x)*sin(x))/x^2, x)
      ------------------------------------------------------------------------
      ---
      RuntimeError                              Traceback (most recent call
      last)
      <ipython-input-2-ee0ac2fd3190> in <module>()
      ----> 1 integrate(log(e**x*log(x)*sin(x))/x**Integer(2), x)
      
      /usr/lib/python2.7/site-packages/sage/misc/functional.py in integral(x,
      *args, **kwds)
          751     """
          752     if hasattr(x, 'integral'):
      --> 753         return x.integral(*args, **kwds)
          754     else:
          755         from sage.symbolic.ring import SR
      
      /usr/lib/python2.7/site-packages/sage/symbolic/expression.pyx in
      sage.symbolic.expression.Expression.integral
      (build/cythonized/sage/symbolic/expression.cpp:69761)()
        12364                     R = ring.SR
        12365             return R(integral(f, v, a, b, **kwds))
      > 12366         return integral(self, *args, **kwds)
        12367
        12368     integrate = integral
      
      /usr/lib/python2.7/site-packages/sage/symbolic/integration/integral.py
      in integrate(expression, v, a, b, algorithm, hold)
          816         return integrator(expression, v, a, b)
          817     if a is None:
      --> 818         return indefinite_integral(expression, v, hold=hold)
          819     else:
          820         return definite_integral(expression, v, a, b, hold=hold)
      
      /usr/lib/python2.7/site-packages/sage/symbolic/function.pyx in
      sage.symbolic.function.BuiltinFunction.__call__
      (build/cythonized/sage/symbolic/function.cpp:11921)()
          996             res = self._evalf_try_(*args)
          997             if res is None:
      --> 998                 res = super(BuiltinFunction, self).__call__(
          999                         *args, coerce=coerce, hold=hold)
         1000
      
      /usr/lib/python2.7/site-packages/sage/symbolic/function.pyx in
      sage.symbolic.function.Function.__call__
      (build/cythonized/sage/symbolic/function.cpp:6948)()
          490                     (<Expression>args[0])._gobj, hold)
          491         elif self._nargs == 2:
      --> 492             res = g_function_eval2(self._serial,
      (<Expression>args[0])._gobj,
          493                     (<Expression>args[1])._gobj, hold)
          494         elif self._nargs == 3:
      
      /usr/lib/python2.7/site-packages/sage/symbolic/integration/integral.py
      in _eval_(self, f, x)
           88         for integrator in self.integrators:
           89             try:
      ---> 90                 return integrator(f, x)
           91             except NotImplementedError:
           92                 pass
      
      /usr/lib/python2.7/site-packages/sage/symbolic/integration/external.py
      in maxima_integrator(expression, v, a, b)
           30         expression = SR(expression)
           31     if a is None:
      ---> 32         result = maxima.sr_integral(expression,v)
           33     else:
           34         result = maxima.sr_integral(expression, v, a, b)
      
      /usr/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py in
      sr_integral(self, *args)
          803         """
          804         try:
      --> 805             return
      max_to_sr(maxima_eval(([max_integrate],[sr_to_max(SR(a)) for a in
      args])))
          806         except RuntimeError as error:
          807             s = str(error)
      
      /usr/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py in
      max_to_sr(expr)
         1697             op=max_op_dict[op_max]
         1698         max_args=cdr(expr)
      -> 1699         args=[max_to_sr(a) for a in max_args]
         1700         return op(*args)
         1701     elif expr.symbolp():
      
      /usr/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py in
      max_to_sr(expr)
         1697             op=max_op_dict[op_max]
         1698         max_args=cdr(expr)
      -> 1699         args=[max_to_sr(a) for a in max_args]
         1700         return op(*args)
         1701     elif expr.symbolp():
      
      /usr/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py in
      max_to_sr(expr)
         1697             op=max_op_dict[op_max]
         1698         max_args=cdr(expr)
      -> 1699         args=[max_to_sr(a) for a in max_args]
         1700         return op(*args)
         1701     elif expr.symbolp():
      
      /usr/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py in
      max_to_sr(expr)
         1697             op=max_op_dict[op_max]
         1698         max_args=cdr(expr)
      -> 1699         args=[max_to_sr(a) for a in max_args]
         1700         return op(*args)
         1701     elif expr.symbolp():
      
      /usr/lib/python2.7/site-packages/sage/interfaces/maxima_lib.py in
      max_to_sr(expr)
         1691                 op=sage_expr.operator()
         1692             if op in sage_op_dict:
      -> 1693                 raise RuntimeError("Encountered operator
      mismatch in maxima-to-sr translation")
         1694             max_op_dict[op_max]=op
         1695             sage_op_dict[op]=op_max
      
      RuntimeError: Encountered operator mismatch in maxima-to-sr translation
      
      }}}
      
      Running on Linux Manjaro 17.1
      
      URL: https://trac.sagemath.org/25817
      Reported by: gh-nasser1
      Ticket author(s): Nils Bruin, Frédéric Chapoton
      Reviewer(s): Travis Scrimshaw
      04d5aab1
    • Release Manager's avatar
      Trac #23639: Strange errors with roots() of polynomials over polynomial rings · 45314bcb
      Release Manager authored
      {{{
      sage: pol = GF(3)['x']['y'].one()
      sage: pol.roots()
      ...
      TypeError: unable to coerce <class
      'sage.rings.polynomial.ideal.Ideal_1poly_field'> to an integer
      sage: pol.roots(multiplicities=False)
      ...
      ValueError: max() arg is an empty sequence
      }}}
      
      {{{
      sage: foo = QQ['k']['n'].one()
      sage: foo.roots(QQ)
      ...
      TypeError: base_ring True must be a ring
      }}}
      
      URL: https://trac.sagemath.org/23639
      Reported by: mmezzarobba
      Ticket author(s): Bruno Grenet
      Reviewer(s): Vincent Delecroix
      45314bcb
    • Release Manager's avatar
      Trac #28419: new pyflakes miscellanous cleanup · f29cee98
      Release Manager authored
      URL: https://trac.sagemath.org/28419
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Travis Scrimshaw
      f29cee98
    • Release Manager's avatar
      Trac #28417: removed deprecated stuff in integer_mod · 77bddf47
      Release Manager authored
      after #15804
      
      ~~also moving some import from inside methods to the top of file~~
      
      ~~(partly suggested by #23746)~~
      
      URL: https://trac.sagemath.org/28417
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Travis Scrimshaw
      77bddf47
    • Release Manager's avatar
      Trac #28412: upgrade Pynac to 0.7.26 · c565a3aa
      Release Manager authored
      * Fix pynac.pc.in (Julien Puydt)
      * Fix mpq and mpz pythonhash (Markus Wageringel, #28219)
      
      https://github.com/pynac/pynac/releases/download/pynac-0.7.26/pynac-0.7.
      26.tar.bz2
      
      URL: https://trac.sagemath.org/28412
      Reported by: rws
      Ticket author(s): Ralf Stephan
      Reviewer(s): Markus Wageringel
      c565a3aa
    • Release Manager's avatar
      Trac #28408: fixing a few invalid escape sequences · 2e47b34a
      Release Manager authored
      URL: https://trac.sagemath.org/28408
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Jeroen Demeyer
      2e47b34a
    • Release Manager's avatar
      Trac #28407: py3: fix quantum_group_gap and graph_latex · 877d2629
      Release Manager authored
      after the wrong fix made in #28312
      
      URL: https://trac.sagemath.org/28407
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): David Coudert
      877d2629
    • Release Manager's avatar
      Trac #28399: remove deprecated things in integer.pyx · 3db8be3d
      Release Manager authored
      after #24260 and #17852
      
      URL: https://trac.sagemath.org/28399
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Travis Scrimshaw
      3db8be3d
    • Release Manager's avatar
      Trac #27818: Meet-subsemilattice for lattices · 6a837c5e
      Release Manager authored
      This patch contains a function to compute subsemilattice of semilattice.
      
      URL: https://trac.sagemath.org/27818
      Reported by: jmantysalo
      Ticket author(s): Jori Mäntysalo
      Reviewer(s): Travis Scrimshaw
      6a837c5e
    • Release Manager's avatar
      Trac #27798: Add `backend` option to associahedron and flow polytope · 2920f66a
      Release Manager authored
      The option `backend` was missing for `polytopes.associahedron` and
      `polytopes.flow_polytope`.
      
      URL: https://trac.sagemath.org/27798
      Reported by: gh-kliem
      Ticket author(s): Jonathan Kliem
      Reviewer(s): Jean-Philippe Labbé, Travis Scrimshaw
      2920f66a
    • Release Manager's avatar
      Trac #27587: Follow up to #25680: Fix tempfile handling in doctests · 98f31998
      Release Manager authored
      See https://trac.sagemath.org/ticket/25680#comment:178
      
      URL: https://trac.sagemath.org/27587
      Reported by: embray
      Ticket author(s): Erik Bray
      Reviewer(s): Frédéric Chapoton, Samuel Lelièvre
      98f31998
    • Release Manager's avatar
      Trac #27473: Matrix inversion fails over a Laurent series ring · 0719be21
      Release Manager authored
      As of 8.7beta6, this works fine (note change from `adjoint` to
      `adjugate` as per #10501):
      {{{
      sage: R.<t> = LaurentSeriesRing(QQ)
      sage: M = t*identity_matrix(2)
      sage: M.adjugate() * ~M.det()
      [t^-1    0]
      [   0 t^-1]
      }}}
      but this fails:
      {{{
      sage: ~M ## Shorthand for M.inverse(), which behaves the same way
      ------------------------------------------------------------------------
      ---
      TypeError                                 Traceback (most recent call
      last)
      <ipython-input-53-6c551a35e6a8> in <module>()
      ----> 1 ~M
      
      /home/kedlaya/sage/local/lib/python3.6/site-
      packages/sage/matrix/matrix0.pyx in
      sage.matrix.matrix0.Matrix.__invert__
      (build/cythonized/sage/matrix/matrix0.c:36096)()
         5380
         5381         A = self.augment(self.parent().identity_matrix())
      -> 5382         A.echelonize()
         5383
         5384         # Now we want to make sure that B is of the form [I|X],
      in
      
      /home/kedlaya/sage/local/lib/python3.6/site-
      packages/sage/matrix/matrix2.pyx in
      sage.matrix.matrix2.Matrix.echelonize
      (build/cythonized/sage/matrix/matrix2.c:48296)()
         6725             if self.base_ring().is_field():
         6726                 if algorithm in ['classical',
      'partial_pivoting', 'scaled_partial_pivoting']:
      -> 6727                     self._echelon_in_place(algorithm)
         6728                 elif algorithm == 'strassen':
         6729                     self._echelon_strassen(cutoff)
      
      /home/kedlaya/sage/local/lib/python3.6/site-
      packages/sage/matrix/matrix2.pyx in
      sage.matrix.matrix2.Matrix._echelon_in_place
      (build/cythonized/sage/matrix/matrix2.c:50128)()
         7004                     scale_factor = 0
         7005                     for c in range(nc):
      -> 7006                         abs_val = A.get_unsafe(r, c).abs()
         7007                         if abs_val > scale_factor:
         7008                             scale_factor = abs_val
      
      /home/kedlaya/sage/local/lib/python3.6/site-
      packages/sage/structure/element.pyx in
      sage.structure.element.RingElement.abs
      (build/cythonized/sage/structure/element.c:18824)()
         2718             ArithmeticError: absolute valued not defined on
      integers modulo n.
         2719         """
      -> 2720         return abs(self)
         2721
         2722     def is_prime(self):
      
      TypeError: bad operand type for abs():
      'sage.rings.laurent_series_ring_element.LaurentSeries'
      }}}
      This worked back in 8.2, so it must be a recent change that broke it.
      
      URL: https://trac.sagemath.org/27473
      Reported by: kedlaya
      Ticket author(s): Kiran Kedlaya
      Reviewer(s): Frédéric Chapoton
      0719be21
    • Release Manager's avatar
      Trac #27444: Expose multithreaded fflas-ffpack features · 842a3dcd
      Release Manager authored
      Dense linear algebra mod small p uses fflas-ffpack over float or double.
      This library support multithreading for some routines:
       - matrix-matrix multiplication
       - PLUQ decomposition
       - etc.
      
      This ticket proposes to expose these parallel variants to Sage user.
      
      URL: https://trac.sagemath.org/27444
      Reported by: gh-ZHG2017
      Ticket author(s): Hongguang Zhu, Clement Pernet
      Reviewer(s): Luca De Feo
      842a3dcd
    • E. Madison Bray's avatar
      Trac #25680: Fix doctest worker output tempfile handling on Cygwin · 32e8ff2b
      E. Madison Bray authored
      This fixes the issue originally described at https://trac.sagemath.org/ticket/25107#comment:14
      in a way that will work on all supported Python versions.
      
      In Python 3.7 the tempfile module was refactored in such a way that setting
      the delete=False attribute on the temporary file object no longer prevents
      deletion of the file when the tempfile object goes out of scope.
      
      Instead we explicitly use NamedTemporaryFile with delete=False, and manually
      manage its deletion at the right time.
      32e8ff2b
    • Frédéric Chapoton's avatar
      remove deprecated stuff from 17852 · c537c68a
      Frédéric Chapoton authored
      c537c68a
    • Frédéric Chapoton's avatar
      remove deprecated stuff from 24260 · 4bcd173e
      Frédéric Chapoton authored
      4bcd173e
    • Kiran Kedlaya's avatar
    • Kiran Kedlaya's avatar
      268d9dbe
  4. 28 Aug, 2019 12 commits
    • Release Manager's avatar
      Trac #28404: Sign of hypergeometric motives is sometimes wrong · cee95e6b
      Release Manager authored
      The `sign` method of `HypergeometricData` sometimes returns answers that
      do not agree with Magma:
      {{{
      sage: from sage.modular.hypergeometric_motive import HypergeometricData
      as Hyp
      sage: H = Hyp(cyclotomic=([6,2],[1,1,1]))
      sage: [H.sign(1/4,p) for p in [5,7,11,13,17,19]] #correct
      [1, 1, -1, -1, 1, 1]
      sage: H = Hyp(cyclotomic=([1,1,1],[6,2]))
      sage: [H.sign(4,p) for p in [5,7,11,13,17,19]] #should agree but doesn't
      [-1, -1, -1, -1, -1, -1]
      }}}
      I believe this is because Magma's formula is not valid when `0 in
      alpha`. Note that this does not affect the `padic_H_value` or
      `euler_factor` methods because these do an alpha-beta swap to avoid this
      case (just as in Magma).
      
      I have a fix for this coded up locally. Will post a patch shortly.
      
      URL: https://trac.sagemath.org/28404
      Reported by: kedlaya
      Ticket author(s): Kiran Kedlaya
      Reviewer(s): Frédéric Chapoton
      cee95e6b
    • Release Manager's avatar
      Trac #28400: fixing a few roles · af8bf5ea
      Release Manager authored
      namely trac, class, meth where the syntax was wrong
      
      URL: https://trac.sagemath.org/28400
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Travis Scrimshaw
      af8bf5ea
    • Release Manager's avatar
      Trac #28398: _richcmp_ for quaternion algebra elements · 1cdf4955
      Release Manager authored
      instead of the old-style {{{_cmp_}}}
      
      URL: https://trac.sagemath.org/28398
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Travis Scrimshaw
      1cdf4955
    • Release Manager's avatar
      Trac #28397: fix some wrong doctests that were not run · abb23972
      Release Manager authored
      URL: https://trac.sagemath.org/28397
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Travis Scrimshaw
      abb23972
    • Release Manager's avatar
      Trac #28396: faster Möbius matrix for Hasse diagrams · 2465a9e4
      Release Manager authored
      I propose a choice of algorithm for computing the Mobius matrix of a
      poset : the current matrix inversion, or the classical recursive
      formula. The second one seems to be always faster..
      
      URL: https://trac.sagemath.org/28396
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Travis Scrimshaw
      2465a9e4
    • Release Manager's avatar
      Trac #28395: Bug in is_weil_polynomial · 4b4b5bf8
      Release Manager authored
      This is a bug:
      {{{
      sage: P.<t> = QQ[]
      sage: u = t^10 + 4*t^9 + 8*t^8 + 18*t^7 + 81*t^6 + 272*t^5 + 567*t^4 +
      882*t^3 + 2744*t^2 + 9604*t + 16807
      sage: [abs(x[0])^2 for x in u.roots(CC)]
      [7.00000000000000,
       7.00000000000000,
       7.00000000000000,
       7.00000000000000,
       7.00000000000000,
       7.00000000000000,
       7.00000000000000,
       7.00000000000000,
       7.00000000000000,
       7.00000000000000]
      sage: u.is_weil_polynomial() # Should return True
      False
      }}}
      
      URL: https://trac.sagemath.org/28395
      Reported by: kedlaya
      Ticket author(s): Kiran Kedlaya
      Reviewer(s): Frédéric Chapoton
      4b4b5bf8
    • Release Manager's avatar
      Trac #28393: add self-tests for polymake · 77466c57
      Release Manager authored
      `polymake` Makefile has a `test` target, so we should have a `spkg-
      check` file to enable self-tests.
      
      URL: https://trac.sagemath.org/28393
      Reported by: tmonteil
      Ticket author(s): Thierry Monteil
      Reviewer(s): Frédéric Chapoton
      77466c57
    • Release Manager's avatar
      Trac #28391: dependencies file for jupymake · a7f0a353
      Release Manager authored
      `jupymake` misses a `dependencies` file.
      
      URL: https://trac.sagemath.org/28391
      Reported by: tmonteil
      Ticket author(s): Thierry Monteil
      Reviewer(s): Matthias Koeppe
      a7f0a353
    • Release Manager's avatar
      Trac #28377: polymake interface broken with "non-standard" quadratic fields · e7a3ec0d
      Release Manager authored
      The polymake interface is confused with Sage number fields that are not
      of the form `QQ[sqrt(D)]`. Here is a simple example
      {{{
      sage: x = polygen(QQ, 'x')
      sage: K = NumberField(x^2 - x -1, 'a', embedding=(1-AA(5).sqrt())/2)
      sage: a = K.gen()
      sage: L = NumberField(x^2 - 5, 'b', embedding=AA(5).sqrt())
      sage: b = L.gen()
      sage: polymake(a)
      0+1r5
      sage: polymake(b)
      0+1r5
      sage: polymake(a) * polymake(a)
      5
      sage: polymake(b) * polymake(b)
      5
      }}}
      
      As a consequence, constructing polytopes with polymake backend is
      completely broken
      {{{
      sage: f = Hom(K, L)([(1-b)/2])
      sage: Kverts =
      [(0,0,a),(1,a,2-a),(2*a,3,1),(2-a,5+2*a,3*a-7),(-3,2*a-1,-1),(1,a,a)]
      sage: Lverts = [list(map(f, v)) for v in Kverts]
      sage: Polyhedron(Kverts, base_ring=K, backend='polymake').f_vector()
      (1, 6, 12, 8, 1)
      sage: Polyhedron(Lverts, base_ring=L, backend='polymake').f_vector()
      (1, 5, 9, 6, 1)
      }}}
      One can check that it is the second one which is correct
      {{{
      sage: Polyhedron(Kverts, base_ring=K, backend='field').f_vector()
      (1, 5, 9, 6, 1)
      sage: Polyhedron(Lverts, base_ring=L, backend='field').f_vector()
      (1, 5, 9, 6, 1)
      }}}
      
      Note: This is tested with the `jupymake` interface but it should not
      matter (?)
      
      URL: https://trac.sagemath.org/28377
      Reported by: vdelecroix
      Ticket author(s): Vincent Delecroix
      Reviewer(s): Jean-Philippe Labbé
      e7a3ec0d
    • Release Manager's avatar
      Trac #28339: Random failure in src/sage/interfaces/expect.py · a5356707
      Release Manager authored
      #27904 reduced the upper limit from 10 to 2 seconds, now this
      occasionally fails with high cpu load:
      {{{
      File "src/sage/interfaces/expect.py", line 1150, in
      sage.interfaces.expect.Expect._expect_expr
      Failed example:
          w = walltime(t); 0.3 < w < 2
      Expected:
          True
      Got:
          False
      }}}
      
      URL: https://trac.sagemath.org/28339
      Reported by: vbraun
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): John Palmieri
      a5356707
    • Release Manager's avatar
      Trac #28271: Implement LexM traversal · f34f77e4
      Release Manager authored
      The algorithm is described here: http://dept-
      info.labri.fr/~gavoille/article/DG07. Using this traversal we can
      approximate the tree-length of an arbitrary graph. The complexity of
      this algorithm will be ''**O(nm)**'' where ''**n**'' is the number of
      vertices and ''**m**'' the number of edges if implemented properly in
      Cython.
      
      URL: https://trac.sagemath.org/28271
      Reported by: gh-giorgosgiapis
      Ticket author(s): Georgios Giapitzakis Tzintanos
      Reviewer(s): David Coudert
      f34f77e4
    • Release Manager's avatar
      Trac #28229: Generalized shifted prime tableau · 304feb16
      Release Manager authored
      The generalized shifted prime tableau defined by BRUCE E. SAGAN is
      similar to the already existing shifted prime tableau in SageMath except
      for the fact that we can also have primed entries in the main diagonal.
      More details can be found here
      https://users.math.msu.edu/users/sagan/Papers/Old/sts-pub.pdf
      
      URL: https://trac.sagemath.org/28229
      Reported by: gh-ChamanAgrawal
      Ticket author(s): Chaman Agrawal
      Reviewer(s): Travis Scrimshaw
      304feb16