1. 13 May, 2018 1 commit
  2. 09 May, 2018 1 commit
  3. 08 May, 2018 38 commits
    • Release Manager's avatar
      Trac #24921: Add optional package "ninja_build" (build system for polymake) · 537a2705
      Release Manager authored
      polymake 3.2r2 requires ninja-build.
      
      https://ninja-build.org/
      
      {{{
      (cd upstream && wget https://github.com/ninja-
      build/ninja/archive/v1.8.2.tar.gz -O ninja_build-1.8.2.tar.gz)
      }}}
      
      URL: https://trac.sagemath.org/24921
      Reported by: mkoeppe
      Ticket author(s): Matthias Koeppe
      Reviewer(s): Jeroen Demeyer
      537a2705
    • Release Manager's avatar
      Trac #24909: Boruvka algorithm for MST · 31df4df8
      Release Manager authored
      Added the Boruvka's algorithm for finding the minimum spanning tree
      
      URL: https://trac.sagemath.org/24909
      Reported by: meghanamreddy
      Ticket author(s): Meghana M Reddy
      Reviewer(s): David Coudert
      31df4df8
    • Release Manager's avatar
      Trac #24903: optional package autotools fail to build · ad537e4b
      Release Manager authored
      At least on archlinux
      {{{
      autoreconf: running: automake-1.10 --add-missing --copy
      Useless use of /d modifier in transliteration operator at /opt/sage/loca
      l/var/tmp/sage/build/autotools-20141105.p0/build/automake-1.10/lib/Autom
      ake/Wrap.pm line 60.
      Unescaped left brace in regex is illegal here in regex; marked by <--
      HERE in m/\${ <-- HERE ([^ \t=:+{}]+)}/ at /opt/sage/local/var/tmp/sage/
      build/autotools-20141105.p0/build/automake-1.10/automake line 3823.
      autoreconf: automake-1.10 failed with exit status: 255
      make[4]: *** [Makefile:665: amhello-1.0.tar.gz] Error 1
      }}}
      
      The branch attached to this ticket proposes to drop this SPKG.
      
      URL: https://trac.sagemath.org/24903
      Reported by: vdelecroix
      Ticket author(s): Julian Rüth
      Reviewer(s): Dima Pasechnik
      ad537e4b
    • Release Manager's avatar
      Trac #24626: More substantial implementation of matrices over complex ball fields · 500d2feb
      Release Manager authored
      URL: https://trac.sagemath.org/24626
      Reported by: mmezzarobba
      Ticket author(s): Marc Mezzarobba
      Reviewer(s): Vincent Delecroix
      500d2feb
    • Release Manager's avatar
      Trac #25076: Fix Matrix_gfpn_dense * int · 96987ac2
      Release Manager authored
      The following previous bug was fixed by #24742:
      {{{
      sage: M = matrix(GF(9,'x'), 2,3)
      sage: type(M)
      <type 'sage.matrix.matrix_gfpn_dense.Matrix_gfpn_dense'>
      sage: M*1
      [0 0 0]
      [0 0 0]
      sage: M*int(1)
      ...
      ValueError: Cannot initialise non-square matrix from 1
      }}}
      
      This ticket adds a test that makes sure that the issue remains fixed.
      
      URL: https://trac.sagemath.org/25076
      Reported by: SimonKing
      Ticket author(s): SimonKing
      Reviewer(s): Jeroen Demeyer
      96987ac2
    • Release Manager's avatar
      Trac #24878: Improve function? docstring · 80adc4fc
      Release Manager authored
      The function `function()` from `symbolic/function_factory.py` allows to
      create symbolic functions on the command line, and it has an excellent
      docstring which is not shown with `function?` because the function is
      wrapped by `function()` from `calculus/var.pyx`. Part of the var
      function needs to be in Cython for specific reason.
      
      This ticket moves the global function to the one in
      `function_factory.py`, leaving the part that needs to be in Cython
      inside `var.pyx`, merging docstrings, and so making it all accessible
      with `function?`.
      
      URL: https://trac.sagemath.org/24878
      Reported by: rws
      Ticket author(s): Ralf Stephan
      Reviewer(s): Sébastien Labbé
      80adc4fc
    • Release Manager's avatar
      Trac #24848: Implement join of polytopes · 1968b08e
      Release Manager authored
      From ​https://www.csun.edu/~ctoth/Handbook/chap15.pdf:
      
      The join of two polytopes `P` (of dimension d) and `Q` (of dimension d')
      is the (d+d'+1)-polytope obtained as the convex hull of `P\cup Q` after
      embedding P and Q in a space where their affine hulls are skew.
      
      URL: https://trac.sagemath.org/24848
      Reported by: jipilab
      Ticket author(s): Jean-Philippe Labbé
      Reviewer(s): Vincent Delecroix, Moritz Firsching
      1968b08e
    • Release Manager's avatar
      Trac #24839: py3: an issue about dict iterators · 4a483001
      Release Manager authored
      some sums complain when using python3
      
      {{{
      File "src/sage/combinat/crystals/multisegments.py", line 432, in sage.co
      mbinat.crystals.multisegments.InfinityCrystalOfMultisegments.Element.phi
      Failed example:
          mg.f(1).phi(0)
      Exception raised:
          Traceback (most recent call last):
            File "/home/chapoton/sage3/local/lib/python3.6/site-
      packages/sage/doctest/forker.py", line 557, in _run
              self.compile_and_execute(example, compiler, test.globs)
            File "/home/chapoton/sage3/local/lib/python3.6/site-
      packages/sage/doctest/forker.py", line 967, in compile_and_execute
              exec(compiled, globs)
            File "<doctest sage.combinat.crystals.multisegments.InfinityCrysta
      lOfMultisegments.Element.phi[5]>", line 1, in <module>
              mg.f(Integer(1)).phi(Integer(0))
            File "/home/chapoton/sage3/local/lib/python3.6/site-
      packages/sage/combinat/crystals/multisegments.py", line 436, in phi
              return self.epsilon(i) + self.weight().scalar(h[i])
            File "/home/chapoton/sage3/local/lib/python3.6/site-
      packages/sage/combinat/root_system/weight_space.py", line 506, in scalar
              return BR.sum(self[i] * c for (i, c) in lambdacheck)
          TypeError: iter() returned non-iterator of type 'dict_items'
      }}}
      
      URL: https://trac.sagemath.org/24839
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Erik Bray
      4a483001
    • Release Manager's avatar
      Trac #24742: New MatrixArgs object to deal with constructing matrices · ad6ee1bb
      Release Manager authored
      Constructing matrices is a mess currently. There is a lot of code
      duplication between
      
      A. The global `matrix()` constructor
      
      B. `MatrixSpace.__call__`
      
      C. The various `Matrix.__init__` methods
      
      Since a lot of parameters are involved (matrix space, matrix size,
      entries, ring, sparseness, implementation), I decided to create a new
      class `MatrixArgs` just for dealing with inputting matrices. This also
      makes matrices more consistent: because the same code is used
      everywhere, constructing matrices should now behave the same
      independently of the implementation (base ring, sparseness).
      
      These are the changes in this branch:
      
      1. A completely new module `sage.matrix.args`. This module concentrates
      in one place everything which was scattered in various places before. I
      tried to reproduce the existing functionality, except where it didn't
      make sense. I took care to be efficient where efficiency matters, for
      example by avoiding copies.
      
      2. Enormous simplifications to A, B and C above, typically replacing
      them with just a few lines of code. In a few cases where the original
      code was particularly ugly, I mostly left the ugly code in place to be
      fixed later.
      
      3. Various minor changes here and there. Note that most of these were
      separated in dependent tickets, but a few are left for this ticket.
      
      This fixes: #8277, #10613, #12778, #20211, #19134, #25076
      
      Follow-up tickets: #23719, #25061
      
      URL: https://trac.sagemath.org/24742
      Reported by: jdemeyer
      Ticket author(s): Jeroen Demeyer
      Reviewer(s): Marc Mezzarobba
      ad6ee1bb
    • Release Manager's avatar
      Trac #24370: Riemann surfaces: algebraization and automorphisms · 13fd23bb
      Release Manager authored
      This is a small amount of new code for Riemann surfaces. Main features:
      
      * converting endomorphism representations on the homology of the
      Jacobian into representations on the tangent space;
      
      * algebraizing said tangential representations;
      
      * determining automorphism groups.
      
      URL: https://trac.sagemath.org/24370
      Reported by: sijsling
      Ticket author(s): Nils Bruin, Jeroen Sijsling
      Reviewer(s): Julian Rüth
      13fd23bb
    • Release Manager's avatar
      Trac #19506: Implement cellular algebras · 9fb25e50
      Release Manager authored
      Cellular algebras are a class of algebras that have a well-behaved
      representation theory generalizing that of the Hecke algebra:
      
      - https://en.wikipedia.org/wiki/Cellular_algebra
      - http://webusers.imj-
      prg.fr/~bernhard.keller/ictp2006/lecturenotes/xi.pdf
      
      We give a basic category implementation of cellular algebras and add the
      symmetric group algebra into this category as an example implementation.
      
      URL: https://trac.sagemath.org/19506
      Reported by: tscrim
      Ticket author(s): Travis Scrimshaw
      Reviewer(s): Andrew Mathas
      9fb25e50
    • Release Manager's avatar
      Trac #16823: Implement the free Lie algebra · 59c99eca
      Release Manager authored
      Part of #14901. Implements the free Lie algebra in two different bases.
      
      URL: https://trac.sagemath.org/16823
      Reported by: tscrim
      Ticket author(s): Travis Scrimshaw
      Reviewer(s): Darij Grinberg
      59c99eca
    • Release Manager's avatar
      Trac #24835: Change error message in construction of polyhedron object · 70e163d5
      Release Manager authored
      The current error message given by
      
      {{{
          sage: Polyhedron([[sqrt(2)]])
          Traceback (most recent call last):
          ...
          ValueError: for polyhedra with floating point numbers, the only
      allowed ring is RDF with backend 'cdd'
      }}}
      
      should be replaced by "ValueError: the only allowed inexact ring is RDF
      with backend 'cdd'"
      
      URL: https://trac.sagemath.org/24835
      Reported by: jipilab
      Ticket author(s): Jean-Philippe Labbé
      Reviewer(s): Moritz Firsching
      70e163d5
    • Release Manager's avatar
      Trac #24788: Multiplication of the Gram Matrix · e498ec44
      Release Manager authored
      Let `L` an integer quadratic lattice and `M` its Gram matrix. For a non-
      zero integer `d` we could define `L(d)` as the lattice with intersection
      matrix `dM`.
      If `d=1` it creates just a new lattice with a standard basis.
      
      URL: https://trac.sagemath.org/24788
      Reported by: pmenegat
      Ticket author(s): Paolo Menegatti
      Reviewer(s): Simon Brandhorst
      e498ec44
    • Release Manager's avatar
      Trac #24680: Cleanup some deprecated functions (matrix and coding) · 2c0ee065
      Release Manager authored
      Remove code deprecated in #21024, #20835, #21165, #20565, #20953,
      #20908, #20787, #20100, #18928, #21576, #19930.
      
      Note that this removes numerous functions from the top-level namespace
      and other unwanted places.
      
      While removing the deprecated
      `sage.coding.code_constructions.ReedSolomonCode` it became clear that a
      rethinking of what `ReedSolomonCode` should do: a new version which
      constructs "classical Reed-Solomon codes" has therefore been implemented
      in `sage.coding.grs`.
      
      '''According to the deprecation policy, this can be merged 25 March
      2018'''
      
      URL: https://trac.sagemath.org/24680
      Reported by: jsrn
      Ticket author(s): Johan Rosenkilde
      Reviewer(s): Kwankyu Lee
      2c0ee065
    • Release Manager's avatar
      Trac #24662: Upgrade scipoptsuite to 5.0.1 · 30c21d31
      Release Manager authored
      Before working on #21003, it might be a good idea to get the current
      version of the scipoptsuite running. This ticket should be very similar
      to #22557.
      
      Upstream archive:
      ​http://scip.zib.de/download.php?fname=scipoptsuite-5.0.1.tgz (DO NOT
      put on sage servers -- we cannot redistribute this archive)
      
      URL: https://trac.sagemath.org/24662
      Reported by: moritz
      Ticket author(s): Moritz Firsching, Matthias Koeppe
      Reviewer(s): Matthias Koeppe, Moritz Firsching, François Bissey
      30c21d31
    • Release Manager's avatar
      Trac #23665: Implement Frobenius formula for Hecke algebra characters · 0c9519f6
      Release Manager authored
      This implements the basis qbar (as denoted by Ram-Remmel) for the ring
      of symmetric functions, which are q-deformations of the powersums. The
      character table for the Hecke algebra (with quadratic relation T^2^ =
      (q-1)T + q) is obtained as the transition matrix from qbar to Schurs.
      
      URL: https://trac.sagemath.org/23665
      Reported by: tscrim
      Ticket author(s): Travis Scrimshaw
      Reviewer(s): Mike Zabrocki
      0c9519f6
    • Release Manager's avatar
      Trac #24645: Support for spkg-postinst scripts · d2deec20
      Release Manager authored
      This is a change separated out from #22509, to add support for `spkg-
      postinst` scripts in SPKGs.  These are run after `spkg-install` and, in
      the case of packages that support `$SAGE_DESTDIR`, after the package's
      main files have been copied into `$SAGE_LOCAL`.
      
      This allows for post-installation steps that are easier to perform once
      the package has been installed into its runtime context.  It ''may'' be
      used to generate additional files which are not tracked.  In this it
      would be good to have an `spkg-postrm` script that cleans up any such
      files, but for now that is omitted since we don't have proper package
      uninstallation yet (this was added in #22510 which still needs to be
      updated).
      
      URL: https://trac.sagemath.org/24645
      Reported by: embray
      Ticket author(s): Erik Bray
      Reviewer(s): Julian Rüth
      d2deec20
    • Release Manager's avatar
      Trac #24644: Use $SAGE_SUDO when copying files from SAGE_DESTDIR to SAGE_LOCAL · 68e8076f
      Release Manager authored
      Minor followup to #24106, which didn't support the `SAGE_SUDO` variable
      properly.
      
      URL: https://trac.sagemath.org/24644
      Reported by: embray
      Ticket author(s): Erik Bray
      Reviewer(s): Julian Rüth
      68e8076f
    • Release Manager's avatar
      Trac #24638: Fix OpenBLAS build on SPARC · ea439259
      Release Manager authored
      '''Upstream''':
      
      - https://github.com/xianyi/OpenBLAS/pull/1443
      - https://github.com/xianyi/OpenBLAS/pull/1447
      
      URL: https://trac.sagemath.org/24638
      Reported by: jdemeyer
      Ticket author(s): Jeroen Demeyer
      Reviewer(s): Dima Pasechnik
      ea439259
    • Release Manager's avatar
      Trac #24623: Euclidean spaces and vector calculus · 7e5f242d
      Release Manager authored
      This ticket implements Euclidean spaces as Riemannian manifolds
      diffeomorphic to '''R'''^n^ and equipped with a flat metric, which
      defines the Euclidean dot product. Using the operators introduced in
      #24622, this provides the standard operators of vector calculus: dot
      product, norm, cross product, gradient, divergence, curl and Laplacian,
      along with the standard coordinate systems (Cartesian, spherical,
      cylindrical, etc.).
      
      See this [https://ask.sagemath.org/question/40792/div-grad-and-curl-
      once-again/ ask.sagemath question] for a motivation, as well as this
      [https://ask.sagemath.org/question/41898/ one].
      
      The implementation is performed via the parent class `EuclideanSpace`,
      which inherits from `PseudoRiemannianManifold` (introduced in #24622).
      Two subclasses are devoted to specific cases:
      - `EuclideanPlane` for n=2
      - `Euclidean3dimSpace` for n=3
      The user interface for constructing an Euclidean space relies on the
      `EuclideanSpace.__classcall_private__` to direct to the appropriate
      subclass.
      
      The implementation through the manifold framework allows for an easy use
      of various coordinate systems, along with the related transformations.
      However, the user interface does not assume any knowledge of Riemannian
      geometry. In particular, no direct manipulation of the metric tensor is
      required.
      
      A minimal example is
      {{{
      sage: E.<x,y,z> = EuclideanSpace(3)
      sage: v = E.vector_field(-y, x, 0)
      sage: v.display()
      -y e_x + x e_y
      sage: v[:]
      [-y, x, 0]
      sage: w = v.curl()
      sage: w.display()
      2 e_z
      sage: w[:]
      [0, 0, 2]
      }}}
      The transformation to spherical coordinates:
      {{{
      sage: spherical.<r,th,ph> = E.spherical_coordinates()
      sage: spherical_frame = E.spherical_frame()  # orthonormal frame (e_r,
      e_th, e_ph)
      sage: v.display(spherical_frame)
      sqrt(x^2 + y^2) e_ph
      sage: v.display(spherical_frame, spherical)
      r*sin(th) e_ph
      sage: v[spherical_frame, :, spherical]
      [0, 0, r*sin(th)]
      sage: w.display(spherical_frame, spherical)
      2*cos(th) e_r - 2*sin(th) e_th
      sage: w[spherical_frame, :, spherical]
      [2*cos(th), -2*sin(th), 0]
      }}}
      
      More detailed examples are in the following Jupyter notebooks:
      
      - [http://nbviewer.jupyter.org/github/egourgoulhon/SageMathTest/blob/mas
      ter/Worksheets/vector_calc_cartesian.ipynb vector calculus in Cartesian
      coordinates]
      - [http://nbviewer.jupyter.org/github/egourgoulhon/SageMathTest/blob/mas
      ter/Worksheets/vector_calc_spherical.ipynb vector calculus in spherical
      coordinates]
      - [http://nbviewer.jupyter.org/github/egourgoulhon/SageMathTest/blob/mas
      ter/Worksheets/vector_calc_cylindrical.ipynb vector calculus in
      cylindrical coordinates]
      - [http://nbviewer.jupyter.org/github/egourgoulhon/SageMathTest/blob/mas
      ter/Worksheets/vector_calc_change.ipynb changing coordinates in the
      Euclidean 3-space]
      - [http://nbviewer.jupyter.org/github/egourgoulhon/SageMathTest/blob/mas
      ter/Worksheets/vector_calc_advanced.ipynb Advanced aspects: Euclidean
      spaces as Riemannian manifolds]
      - [http://nbviewer.jupyter.org/github/egourgoulhon/SageMathTest/blob/mas
      ter/Worksheets/Euclidean_plane.ipynb the Euclidean plane]
      
      This work is part of the [http://sagemanifolds.obspm.fr/ SageManifolds
      project], see #18528 for an overview.
      
      URL: https://trac.sagemath.org/24623
      Reported by: egourgoulhon
      Ticket author(s): Eric Gourgoulhon
      Reviewer(s): Travis Scrimshaw
      7e5f242d
    • Release Manager's avatar
      Trac #24585: r_jupyter package is broken · dce70424
      Release Manager authored
      First, when trying to `sage -i r_jupyter`, the install fails since the
      `spkg-install` script is not executable (apparently nobody tried to
      install that package for a while):
      
      {{{
      cd '/opt/sagemath/sage-source' && \
          source '/opt/sagemath/sage-source/src/bin/sage-env' && \
          sage-logger -p '/opt/sagemath/sage-source/build/pkgs/r_jupyter/spkg-
      install' /opt/sagemath/sage-source/logs/pkgs/r_jupyter.log
      [r_jupyter] /opt/sagemath/sage-source/build/bin/sage-logger: line 89:
      /opt/sagemath/sage-source/build/pkgs/r_jupyter/spkg-install: Permission
      denied
      }}}
      
      Then, if i make that file executable, the script does not work at all:
      
      {{{
      [r_jupyter] Warning message:
      [r_jupyter] package 'IRkernel' is not available (for R version 3.4.3)
      [r_jupyter] > IRkernel::installspec()
      [r_jupyter] Error in loadNamespace(name) : there is no package called
      'IRkernel'
      [r_jupyter] Calls: :: ... tryCatch -> tryCatchList -> tryCatchOne ->
      <Anonymous>
      [r_jupyter] Execution halted
      }}}
      
      Documentation can be found at https://irkernel.github.io/installation/
      
      We modify it so that the kernel is installed at the right place
      (otherwise it is installed in the user's
      `~/.local/share/jupyter/kernels/ir/` directory).
      
      URL: https://trac.sagemath.org/24585
      Reported by: tmonteil
      Ticket author(s): Thierry Monteil
      Reviewer(s): Emmanuel Charpentier
      dce70424
    • Release Manager's avatar
      Trac #24577: is_genus for torsion quadratic modules · c46927cb
      Release Manager authored
      Add a method `is_genus(self, signature, even=True)` for
      `sage.modules.torsion_quadratic_modules.TorsionQuadraticForm`
      that returns if there exists an integral lattice with given signature
      and torsion quadratic form.
      
      URL: https://trac.sagemath.org/24577
      Reported by: sbrandhorst
      Ticket author(s): Simon Brandhorst
      Reviewer(s): Paolo Menegatti
      c46927cb
    • Release Manager's avatar
      Trac #24576: Brown invariant of a TorsionQuadraticModule · 0bdd6f9d
      Release Manager authored
      Implement a method for
      `sage.modules.torsion_quadratic_module.TorsionQuadraticModule`
      
      that returns the Brown invariant of the torsion quadratic form.
      
      URL: https://trac.sagemath.org/24576
      Reported by: sbrandhorst
      Ticket author(s): Simon Brandhorst
      Reviewer(s): Kenji Hashimoto
      0bdd6f9d
    • Release Manager's avatar
      Trac #24564: Gluing of lattices · 5cc1dd49
      Release Manager authored
      Let `L1`,...,`Ln` `n` integer lattices and `A_L1`,..., `A_Ln` their
      discriminant groups.
      If `G1`,...,`Gn` are subgroups of the `A_Li` and `v_i,1`,...,`v_i,k`
      vectors of `Gi`, such that the span of
      `(v_1,1+...+v_n,1,...,v_1,k+...+v_n,k)` is isotropical then we can
      define the "gluing" `L`, an overlattice of `L1 +...+ Ln`
      
      URL: https://trac.sagemath.org/24564
      Reported by: pmenegat
      Ticket author(s): Paolo Menegatti
      Reviewer(s): Simon Brandhorst
      5cc1dd49
    • Release Manager's avatar
      Trac #24559: py3: better backwards-compatibility for Python longs · af11d436
      Release Manager authored
      This does three little things to better support `long`-related
      functionality, especially in the doctests.  This allows a lot of tests
      to pass on Python 3 that wouldn't otherwise, or would need to be skipped
      and/or have Python 3 specific copies:
      
      * The Sage preparser supports Python 2 style long literals, like `42L`.
      These are just treated as normal ints on Python 3 (we could also
      consider adding a deprecation warning for this usage).  I actually wish
      Python itself had done this (just as they restored backwards-compat for
      `u''` literals--that they didn't I think is just that explicit `long`s
      is relatively uncommon.
      
      * The ''doctest'' parser has a fixup for recognizing long literals in
      the expected output of a test, and treating them as normal ints on
      Python 3.  This is probably the weakest part of the patch in terms of
      implementation--it's very naïve and I can imagine the possibility of
      false positives, though it is still pretty unlikely.  Open to better
      ideas on this.
      
      * In `sage.all` I added, on Python 3 only, a new global called `long`
      which is just a function that wraps `int()` and (except in the tests,
      for now) raises a `DeprecationWarning` for using `long()`.  This still
      allows a lot of tests to work.  I deliberately made it a simple
      function, and not a class, as the latter would tempt too many errors
      with code like `isinstance(x, long)`.
      
      URL: https://trac.sagemath.org/24559
      Reported by: embray
      Ticket author(s): Erik Bray
      Reviewer(s): Jeroen Demeyer
      af11d436
    • Release Manager's avatar
      Trac #24541: Fix Cone.orthogonal_sublattice · 3307f676
      Release Manager authored
      For cones not living in toric lattices `orthogonal_sublattice` may be
      completely wrong, e.g.
      {{{
      sage: c = Cone([(1,0)], lattice=ZZ^2)
      sage: c.orthogonal_sublattice()
      Ambient free module of rank 1 over the principal ideal domain Integer
      Ring
      sage: c.dual()
      ...
      TypeError: cannot convert (1) to Vector space of dimension 2 over
      Rational Field!
      }}}
      The bug was introduced a long time ago by #13183.
      
      URL: https://trac.sagemath.org/24541
      Reported by: novoselt
      Ticket author(s): Andrey Novoseltsev
      Reviewer(s): Frédéric Chapoton
      3307f676
    • Release Manager's avatar
      Trac #24508: py3: problems with tests that use random_element · 52ab02ee
      Release Manager authored
      Lots and lots of tests fail on Python 3 due to the use of
      `random_element`s in tests.
      
      The problem, I've found, is not to do with seeding the RNG.  Python's
      `random` produces the same sequence with the same seed on Python 2 and
      3.  However, there is a slight difference in the implementation of
      `random.randint`, such that it does produce different values,
      annoyingly.
      
      I'm not sure how we want to deal with this.  In Sage there's a
      `sage.misc.prandom` that for some reason provides wrappers around
      functions from Python's `random` module.  Perhaps one thing we could do
      is ensure that `sage.misc.prandom` is always used, and modify its
      wrapper to `randint` (actually `randrange`, which `randint` is
      implemented on top of), to provide consistent results.
      
      URL: https://trac.sagemath.org/24508
      Reported by: embray
      Ticket author(s): Erik Bray
      Reviewer(s): Jeroen Demeyer
      52ab02ee
    • Release Manager's avatar
      Trac #24481: Replace PARI stackwarn.patch with upstream version · 87dcf820
      Release Manager authored
      Upstream PARI has finally accepted the patch `stackwarn.patch` which has
      been in Sage since about 2 years. However, the version which was
      accepted upstream is not exactly the patch from Sage. In this ticket, we
      replace `stackwarn.patch` by the version which was accepted upstream.
      
      URL: https://trac.sagemath.org/24481
      Reported by: jdemeyer
      Ticket author(s): Jeroen Demeyer
      Reviewer(s): Julian Rüth
      87dcf820
    • Release Manager's avatar
      Trac #24433: Speed up p-adic Gamma by caching Dwork expansion coefficients · 9dabe7b5
      Release Manager authored
      The computation of the p-adic Gamma function in both Pari and Sage uses
      a Mahler expansion in terms of the Dwork exponential series. The
      optional `algorithm` flag defaults to `pari` instead of `sage` because
      the implementation there has been optimized better.
      
      However, in use cases where one needs to repeatedly evaluate Gamma for
      the same prime `p`, such as for the trace formula for hypergeometric
      motives (see #23952), it is better to cache the coefficients of the
      Dwork exponential rather than recomputing them. Sample output:
      {{{
      sage: p = next_prime(5000)
      sage: F = Qp(p)
      sage: time l1 = [F(a/(p-1)).gamma(algorithm='pari') for a in range(p-1)]
      CPU times: user 6min 17s, sys: 23.2 ms, total: 6min 17s
      Wall time: 6min 17s
      sage: time l2 = [F(a/(p-1)).gamma(algorithm='sage') for a in range(p-1)]
      CPU times: user 21.3 s, sys: 36 ms, total: 21.3 s
      Wall time: 21.3 s
      sage: all(l1[i] == l2[i] for i in range(p-1))
      True
      }}}
      
      URL: https://trac.sagemath.org/24433
      Reported by: kedlaya
      Ticket author(s): Kiran Kedlaya
      Reviewer(s): Frédéric Chapoton
      9dabe7b5
    • Release Manager's avatar
      Trac #24416: GeneralDiscreteDistribution broken when entries >= 2^1024 · 0c6181d7
      Release Manager authored
      {{{
      sage: from collections import Counter
      }}}
      
      This is ok:
      {{{
      sage: X = GeneralDiscreteDistribution([1,2,2^1023])
      sage: Counter(X.get_random_element() for _ in range(100))
      Counter({2: 100})
      sage: Counter(X.get_random_element() for _ in range(100))
      Counter({2: 100})
      }}}
      
      This is not ok:
      {{{
      sage: X = GeneralDiscreteDistribution([1,2,2^1024])
      sage: Counter(X.get_random_element() for _ in range(100))
      Counter({2: 66, 0: 34})
      sage: Counter(X.get_random_element() for _ in range(100))
      Counter({2: 67, 0: 33})
      }}}
      
      URL: https://trac.sagemath.org/24416
      Reported by: slabbe
      Ticket author(s): Sébastien Labbé
      Reviewer(s): Vincent Delecroix
      0c6181d7
    • Release Manager's avatar
      Trac #24323: 'BrauerAlgebra' has no attribute 'options' · 6aa51476
      Release Manager authored
      From an untested example in `src/sage/combinat/diagram_algebras.py`:
      {{{
      sage: BrauerAlgebra.options.display="compact"
      ------------------------------------------------------------------------
      ---
      AttributeError                            Traceback (most recent call
      last)
      <ipython-input-5-5d75ac353372> in <module>()
      ----> 1 BrauerAlgebra.options.display="compact"
      
      AttributeError: type object 'BrauerAlgebra' has no attribute 'options'
      }}}
      
      URL: https://trac.sagemath.org/24323
      Reported by: jdemeyer
      Ticket author(s): Travis Scrimshaw
      Reviewer(s): Mike Zabrocki, Aaron Lauve
      6aa51476
    • Release Manager's avatar
      Trac #24314: rootfinding for polynomials with complex ball coefficients using arb · e4ec2f62
      Release Manager authored
      URL: https://trac.sagemath.org/24314
      Reported by: mmezzarobba
      Ticket author(s): Marc Mezzarobba
      Reviewer(s): Vincent Delecroix
      e4ec2f62
    • Release Manager's avatar
      Trac #24312: py3: fixes to sage.misc.sageinspect · 79c3ec00
      Release Manager authored
      I felt it might be important to make sure these functions were working
      properly, as some of Sage's metaprogramming and related tests rely on
      reliable introspection.
      
      A number of the tests in this module only made sense on Python 2 due to
      minor syntactic differences or similar minor differences between the
      languages; in some cases I provided Python 3 alternatives, in other
      cases the test is just run on Python 2.  In still other cases I changed
      the test slightly to work on both, where I felt that it didn't impact
      the validity of the test.
      
      URL: https://trac.sagemath.org/24312
      Reported by: embray
      Ticket author(s): Erik Bray
      Reviewer(s): Jeroen Demeyer
      79c3ec00
    • Release Manager's avatar
      Trac #24152: Bug when converting a Sage polyhedron into Polymake pexpect · 14669b2e
      Release Manager authored
      Conversion of a Sage polyhedron into Polymake fails in the first
      attempt, but succeeds in the second attempt. I've put the example into
      the first comment rather than in the ticket description.
      
      The fix is to install the `File::Slurp module` into perl5. This ticket
      updates the information about prerequisites (and how to install them) in
      `build/pkg/polymake/SPKG.txt`.
      
      URL: https://trac.sagemath.org/24152
      Reported by: SimonKing
      Ticket author(s): Matthias Koeppe
      Reviewer(s): Jean-Philippe Labbé
      14669b2e
    • Release Manager's avatar
      Trac #24130: Reverse plane partitions and Hillman-Grassl · 68fd0296
      Release Manager authored
      Long ago I planned to build a class for reverse plane partitions once
      the tableaux class was overhauled (#17983). But the overhaul project
      never got finished, and I will probably not have much to add to it in
      foreseeable time.
      
      The purpose of this ticket is to create a bare-bones class for reverse
      plane partitions (output is highly encouraged about what this class
      should be able to do and what it should inherit from!). Then, we want to
      implement the Hillman-Grassl correspondence and Sulzgruber's alternative
      bijection (arXiv:1612.03922v2).
      
      URL: https://trac.sagemath.org/24130
      Reported by: darij
      Ticket author(s): Darij Grinberg, Tom Roby
      Reviewer(s): Travis Scrimshaw
      68fd0296
    • Release Manager's avatar
      Trac #24129: Complete the standard bijections on the symmetric group · 24c396a1
      Release Manager authored
      * The Foata-Schützenberger transform on permutations is implemented
      (foata_bijection), but its inverse is not. This should be easy to fix --
      an algorithm is given in the very same reference http://www-igm.univ-
      mlv.fr/~berstel/Mps/Travaux/A/1978-3MajorIndexMathNachr.pdf .
      
      * The first fundamental bijection on S_n, as well as its inverse, seem
      to not be in SageMath (although FindStat has them:
      http://www.findstat.org/MapsDatabase/Mp00087 ). A similarly defined map
      -- forget_cycles -- already exists, but this is not it.
      
      URL: https://trac.sagemath.org/24129
      Reported by: darij
      Ticket author(s): Darij Grinberg, Tom Roby
      Reviewer(s): Travis Scrimshaw
      24c396a1
    • Release Manager's avatar
      Trac #23733: Stop supporting SAGE64 and CFLAG64 · b3ce0ca7
      Release Manager authored
      I propose to get rid of `src/bin/sage-arch-env` and
      `$SAGE_LOCAL/etc/sage-64.txt`, which is a very specialized mechanism of
      storing a bit of configuration in SAGE_LOCAL. Instead, `SAGE64` should
      simply be replaced by adding `-m64` in `$CC` or `$CFLAGS` and maybe
      setting `ABI=64`. See #24596.
      
      Since `CFLAG64` is only used to support `SAGE64`, this implies that
      `CFLAG64` is no longer used either.
      
      URL: https://trac.sagemath.org/23733
      Reported by: mkoeppe
      Ticket author(s): John Palmieri, Jeroen Demeyer
      Reviewer(s): Dima Pasechnik
      b3ce0ca7