1. 29 Apr, 2020 1 commit
  2. 25 Apr, 2020 28 commits
    • Release Manager's avatar
      Updated SageMath version to 9.1.rc2 · 50c5ac80
      Release Manager authored
      50c5ac80
    • Release Manager's avatar
      Trac #29558: Autogenerated parts of installation guide · 119bf477
      Release Manager authored
      - Add a homebrew section, which requires producing good autogenerated
      homebrew files
      - Clean up the cygwin autogenerated files
      
      URL: https://trac.sagemath.org/29558
      Reported by: jhpalmieri
      Ticket author(s): John Palmieri, Matthias Koeppe
      Reviewer(s): Matthias Koeppe, John Palmieri
      119bf477
    • Release Manager's avatar
      Trac #29543: normal_basis for positive-dimensional ideals · 59129403
      Release Manager authored
      This ticket adds a `degree` option to the `normal_basis` method of
      ideals.
      
      This allows to limit the output to monomials of a particular degree,
      which is useful when the corresponding quotient ring is not finite-
      dimensional as a vector space.
      
      {{{
      sage: R.<x,y,z> = QQ[]
      sage: I = R.ideal(x^2 + y^2 - 1)
      sage: [I.normal_basis(d) for d in (0..3)]
      [[1],
       [z, y, x],
       [z^2, y*z, x*z, y^2, x*y],
       [z^3, y*z^2, x*z^2, y^2*z, x*y*z, y^3, x*y^2]]
      }}}
      
      Previously, the method could only be used when the quotient ring was
      finite-dimensional.
      
      This functionality is provided by Singular. For reference, the
      corresponding Singular function is [https://www.singular.uni-
      kl.de/Manual/4-1-2/sing_275.htm#SEC315 kbase].
      
      URL: https://trac.sagemath.org/29543
      Reported by: gh-mwageringel
      Ticket author(s): Markus Wageringel
      Reviewer(s): Travis Scrimshaw, Kwankyu Lee
      59129403
    • Release Manager's avatar
      Trac #29534: Trigger CI workflows on GitHub Actions by pushing tags · b3274856
      Release Manager authored
      1. If a developers wants to run the standard set of CI tests, just
      pushing a tag is a simpler interface than creating a pull request:  `git
      tag -f "ci" && git push --force github "ci"`
      
      2. Also this ensures that releases always trigger a CI test.
      
      Follow-up (wishlist): #29535 Customize CI workflows on !GitHub Actions
      using specially structured tag names
      
      URL: https://trac.sagemath.org/29534
      Reported by: mkoeppe
      Ticket author(s): Matthias Koeppe
      Reviewer(s): Dima Pasechnik
      b3274856
    • Release Manager's avatar
      Trac #29341: GitHub CI workflow: Add testing of optional packages · a7386469
      Release Manager authored
      We add a new GitHub Actions CI workflow `tox-optional.yml`, which tests
      most optional packages, using the `maximal` packages factor.
      
      URL: https://trac.sagemath.org/29341
      Reported by: mkoeppe
      Ticket author(s): Matthias Koeppe
      Reviewer(s): Dima Pasechnik
      a7386469
    • Release Manager's avatar
      Trac #28976: AssertionError when creating valuations from prime ideals · 53e80270
      Release Manager authored
      {{{
      R.<x> = QQ[]
      K.<theta_K> = NumberField(x^6 - 18*x^4 - 24*x^3 + 27*x^2 + 36*x - 6)
      fp = K.fractional_ideal((2, -7/44*theta_K^5 + 19/44*theta_K^4 +
      87/44*theta_K^3 - 87/44*theta_K^2 - 5/2*theta_K + 39/22))
      print(fp.norm())               # yields 2
      print(fp in K.primes_above(2)) # yields True
      v = K.valuation(fp)            # raises AssertionError
      }}}
      
      see https://groups.google.com/forum/#!topic/sage-nt/zEkLa-
      4cgys/discussion
      
      {{{
      K.<pi, w> = NumberField([x^2 - 2, x^2 + x + 1]);
      K.valuation(pi) # raises AssertionError
      }}}
      
      see https://groups.google.com/forum/#!topic/sage-nt/zEkLa-
      4cgys/discussion
      
      URL: https://trac.sagemath.org/28976
      Reported by: saraedum
      Ticket author(s): Julian Rüth
      Reviewer(s): Vincent Delecroix
      53e80270
    • Release Manager's avatar
      Trac #29554: fix buggy test in #29445 · 9dfaf72c
      Release Manager authored
      {{{
      configure:17249: checking whether hyperellcharpoly bug is fixed
        ***   too many arguments: ...lcharpoly(x^10+x^9+x^8+x,0*Mod(1,3))
        ***                                                   ^-----------
      configure:17257: result: no; cannot use system pari/GP with known bug
      
      }}}
      
      also should fix the error in another ticket #29494 touching this stuff
      
      URL: https://trac.sagemath.org/29554
      Reported by: dimpase
      Ticket author(s): Dima Pasechnik
      Reviewer(s): Vincent Delecroix
      9dfaf72c
    • Release Manager's avatar
      Trac #29521: Modify giac upstream tarball to remove non-portable filenames · 732b4e1b
      Release Manager authored
      http://www-fourier.ujf-
      grenoble.fr/~parisse/debian/dists/stable/main/source/
      
      When preparing the reduced tarball with `spkg-src`,
      we should rename the non-portable file names with a colon in them:
      
      {{{
      $ find . -name "*:*"
      ./doc/pari/Programming_in_GP:_control_statements.html
      ./doc/pari/Programming_in_GP:_other_specific_functions.html
      ./doc/pari/cont_Programming_in_GP:_other_specific_functions.html
      ./doc/pari/cont_Programming_in_GP:_control_statements.html
      }}}
      
      (problematic at least on Windows - as reported in #28549.)
      
      Previous updates:
      - #26315 Upgrade to Giac 1.5
      - #28101 update giac to 1.5.0-63
      
      Follow-up: #29552 (Upgrade giac to 1.5.0-87) ... for Sage 9.2
      
      URL: https://trac.sagemath.org/29521
      Reported by: mkoeppe
      Ticket author(s): Matthias Koeppe
      Reviewer(s): François Bissey, Dima Pasechnik
      732b4e1b
    • Release Manager's avatar
      Trac #29545: document how to use Jupyter remotely · 984a111c
      Release Manager authored
      This ticket adds this to the documentation. Namely:
      {{{
      ssh -L localhost:8888:localhost:8888 -t USER@REMOTE sage -n jupyter
      --no-browser --port=8888
      }}}
      Previously discussed on [https://groups.google.com/forum/#!topic/sage-
      devel/eA4LLyHP99M sage-devel].
      
      URL: https://trac.sagemath.org/29545
      Reported by: gh-mwageringel
      Ticket author(s): Markus Wageringel
      Reviewer(s): Matthias Koeppe
      984a111c
    • Release Manager's avatar
      Trac #29529: add FreeMagma as an example of a magma · 57b44a42
      Release Manager authored
      This ticket adds an example of a magma.
      
      {{{
      sage: M = Magmas().example(); M
      An example of a magma: the free magma generated by ('a', 'b', 'c', 'd')
      sage: a, b, c, d = M.magma_generators()
      sage: a * (b * c) * (d * a * b)
      '((a*(b*c))*((d*a)*b))'
      }}}
      
      This is in part motivated by [https://ask.sagemath.org/question/50799
      /polynomial-ring-indexed-over-an-abelian-group-magma/ this ask-sagemath
      question] and by the seeming lack of magmas in Sage.
      
      URL: https://trac.sagemath.org/29529
      Reported by: gh-mwageringel
      Ticket author(s): Markus Wageringel
      Reviewer(s): Travis Scrimshaw
      57b44a42
    • Release Manager's avatar
      Trac #26343: Sagetex should unset TEXINPUTS when testing · 4a5e7e30
      Release Manager authored
      The test suite for sagetex should unset `TEXINPUTS` when testing. As it
      is, it runs `latex` on the wrong file `example.tex`: it tests one that
      happens to lie in a path in `TEXINPUTS`, and then it uses the version of
      `sagetex.sty` from elsewhere, also. (My `TEXINPUTS` has `.` at the end
      of the list of paths, not the beginning, so it looks there last. It has
      `PATH_TO_SAGE/local/share/texmf//`, where `PATH_TO_SAGE` is the location
      of my standard stable Sage installation, earlier in the list of paths.)
      
      URL: https://trac.sagemath.org/26343
      Reported by: jhpalmieri
      Ticket author(s): John Palmieri
      Reviewer(s): Matthias Koeppe
      4a5e7e30
    • Release Manager's avatar
      Trac #29550: Defect `UniformRandomUniform` method in hypergraph_generators.py · c4765283
      Release Manager authored
      On going through the example in  the documentation of
      `UniformRandomUniform` method following error occurs.
      
      {{{
      sage: H = hypergraphs.UniformRandomUniform(52, 3, 17)
      ------------------------------------------------------------------------
      ---
      TypeError                                 Traceback (most recent call
      last)
      <ipython-input-1-56df6490a66e> in <module>()
      ----> 1 H = hypergraphs.UniformRandomUniform(Integer(52), Integer(3),
      Integer(17))
      
      /home/vipul/sage/local/lib/python3.7/site-
      packages/sage/graphs/hypergraph_generators.py in
      UniformRandomUniform(self, n, k, m)
          263         all_edges = Subsets(vertices, uniformity)
          264         try:
      --> 265             edges = sample(all_edges, m)
          266         except OverflowError:
          267             raise OverflowError("binomial({}, {}) too large to
      be treated".format(n, k))
      
      /home/vipul/sage/local/lib/python3.7/site-packages/sage/misc/prandom.py
      in sample(population, k)
          178         [357009070, 558990255, 196187132, 752551188, 85926697,
      954621491, 624802848]
          179     """
      --> 180     return _pyrand().sample(population, k)
          181
          182 def random():
      
      /home/vipul/sage/local/lib/python3.7/random.py in sample(self,
      population, k)
          315             population = tuple(population)
          316         if not isinstance(population, _Sequence):
      --> 317             raise TypeError("Population must be a sequence or
      set.  For dicts, use list(d).")
          318         randbelow = self._randbelow
          319         n = len(population)
      
      TypeError: Population must be a sequence or set.  For dicts, use
      list(d).
      }}}
      
      Above defect should be fixed as early as possible. As It is already in
      latest sage release.
      
      P.S : It also passes doctest. So something is wrong there too.
      
      here is a link of discussion regarding this [https://groups.google.com/f
      orum/?utm_medium=email&utm_source=footer#!msg/sage-
      devel/6vv6k1vhihQ/55-lqLAXCAAJ]
      
      URL: https://trac.sagemath.org/29550
      Reported by: gh-vipul79321
      Ticket author(s): David Coudert
      Reviewer(s): Dima Pasechnik
      c4765283
    • Release Manager's avatar
      Trac #29548: Unable to plot LS path crystal · fe34e752
      Release Manager authored
      {{{
      sage: LS = crystals.LSPaths(['A',2], [1,1])
      sage: L = RootSystem(['A',2]).ambient_space()
      sage: L.plot_crystal(LS)
      ------------------------------------------------------------------------
      ---
      KeyError                                  Traceback (most recent call
      last)
      <ipython-input-17-6e9fcdd41f09> in <module>()
      ----> 1 L.plot_crystal(LS)
      
      /home/uqtscrim/sage/local/lib/python3.7/site-
      packages/sage/combinat/root_system/root_lattice_realizations.py in
      plot_crystal(self, crystal, plot_labels, label_color, edge_labels,
      circle_size, circle_thickness, **options)
         3190
         3191             for h,t,i in g.edges():
      -> 3192                 G += arrow(positions[h.weight()],
      positions[t.weight()],
         3193                            zorder=1,
      rgbcolor=plot_options.color(i),
         3194                            arrowsize=plot_options._arrowsize)
      
      KeyError: -2*Lambda[1] + Lambda[2]
      }}}
      
      URL: https://trac.sagemath.org/29548
      Reported by: tscrim
      Ticket author(s): Travis Scrimshaw
      Reviewer(s): Frédéric Chapoton
      fe34e752
    • Release Manager's avatar
      Trac #29544: improve fraction field of power series · 36eac34f
      Release Manager authored
      over domains, so that they become Laurent series
      
      inspired by the old #8972
      
      URL: https://trac.sagemath.org/29544
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Travis Scrimshaw
      36eac34f
    • Release Manager's avatar
      Trac #29540: some cleanup in sf/monomial · 64f29833
      Release Manager authored
      * slightly better code for conversion from polynomial
      
      * pep cleanup
      
      * remove any use of six
      
      URL: https://trac.sagemath.org/29540
      Reported by: chapoton
      Ticket author(s): Frédéric Chapoton
      Reviewer(s): Travis Scrimshaw
      64f29833
    • Release Manager's avatar
      Trac #29533: Remove defunct SAGE_PORT mechanism · e3941307
      Release Manager authored
      We remove the last traces of the `SAGE_PORT` mechanism from the source
      and from the developer guide.
      
      `SAGE_PORT` stopped working when the build process started to depend on
      `configure` output files.
      
      (from #29316)
      
      URL: https://trac.sagemath.org/29533
      Reported by: mkoeppe
      Ticket author(s): Matthias Koeppe
      Reviewer(s): Dima Pasechnik
      e3941307
    • Release Manager's avatar
      Trac #29522: layout_planar fails on disconnected graphs · a9d8c0d6
      Release Manager authored
      `layout_planar` fails on disconnected graphs
      
      {{{
      sage: g = Graph(2)
      sage: g.layout_planar()
      ------------------------------------------------------------------------
      ---
      ValueError                                Traceback (most recent call
      last)
      <ipython-input-5-5590605c1dc8> in <module>()
      ----> 1 g.layout_planar()
      
      /home/jf/sage/local/lib/python3.7/site-
      packages/sage/graphs/generic_graph.py in layout_planar(self,
      set_embedding, on_embedding, external_face, test, circular, **options)
         5355                                  ''.format(external_face, self))
         5356
      -> 5357         _triangulate(G, G._embedding)
         5358
         5359         # Optional error-checking
      
      /home/jf/sage/local/lib/python3.7/site-packages/sage/graphs/schnyder.py
      in _triangulate(g, comb_emb)
           68     # first make sure that the graph has at least 3 vertices,
      and that it is connected
           69     if g.order() < 3:
      ---> 70         raise ValueError("A Graph with less than 3 vertices
      doesn't have any triangulation.")
           71     if not g.is_connected():
           72         raise NotImplementedError("_triangulate() only knows how
      to handle connected graphs.")
      
      ValueError: A Graph with less than 3 vertices doesn't have any
      triangulation.
      }}}
      
      The error message is different when the graph has more vertices:
      {{{
      sage: g = Graph(3)
      sage: g.layout_planar()
      ------------------------------------------------------------------------
      ---
      NotImplementedError                       Traceback (most recent call
      last)
      <ipython-input-7-5590605c1dc8> in <module>()
      ----> 1 g.layout_planar()
      
      /home/jf/sage/local/lib/python3.7/site-
      packages/sage/graphs/generic_graph.py in layout_planar(self,
      set_embedding, on_embedding, external_face, test, circular, **options)
         5355                                  ''.format(external_face, self))
         5356
      -> 5357         _triangulate(G, G._embedding)
         5358
         5359         # Optional error-checking
      
      /home/jf/sage/local/lib/python3.7/site-packages/sage/graphs/schnyder.py
      in _triangulate(g, comb_emb)
           70         raise ValueError("A Graph with less than 3 vertices
      doesn't have any triangulation.")
           71     if not g.is_connected():
      ---> 72         raise NotImplementedError("_triangulate() only knows how
      to handle connected graphs.")
           73
           74     # At this point we know that the graph is connected, has at
      least 3
      
      NotImplementedError: _triangulate() only knows how to handle connected
      graphs.
      }}}
      
      With this ticket the function `layout_planar` handles small graphs and
      graphs that are not connected. This is done by modifying the
      `spring_layout_fast_split` function used for the spring layout so that
      it can work with any layout function.
      
      The ticket also fixes bugs of `layout_planar`
      - when called with `on_embedding` and an input graph that does not have
      an `_embedding` attribute,
      - when called on a non-planar graph,
      
      URL: https://trac.sagemath.org/29522
      Reported by: gh-jfraymond
      Ticket author(s): Jean-Florent Raymond
      Reviewer(s): David Coudert
      a9d8c0d6
    • Release Manager's avatar
      Trac #29426: Make dependencies of optional packages more detailed, no longer... · 29a41a6a
      Release Manager authored
      Trac #29426: Make dependencies of optional packages more detailed, no longer depend on all standard packages
      
      #28095 (Add `--enable-OPTIONALSPKG` options to `configure`) made it
      possible to build Sage and a number of optional packages in one pass.
      
      To improve opportunities for build parallelization, we should make
      dependencies of optional packages more detailed and no longer depend on
      all standard packages.
      
      This will also make it faster to test builds from scratch to a specific
      optional package.
      
      URL: https://trac.sagemath.org/29426
      Reported by: mkoeppe
      Ticket author(s): Matthias Koeppe
      Reviewer(s): Jonathan Kliem
      29a41a6a
    • Release Manager's avatar
      Trac #29403: ci-cygwin.yml: Multi-stage build · 5cba647c
      Release Manager authored
      The GitHub workflow for cygwin does not fit into the 6-hour time limit.
      We do a multi-stage build, saving and loading `local/` to/from build
      artifacts.
      
      URL: https://trac.sagemath.org/29403
      Reported by: mkoeppe
      Ticket author(s): Matthias Koeppe
      Reviewer(s): Dima Pasechnik
      5cba647c
    • Release Manager's avatar
      Trac #29382: Compute the centroid of a polytope · 0aa5303e
      Release Manager authored
      This ticket implements a method to compute the center of the mass of a
      polytope.
      
      It is motivated by
      
      https://ask.sagemath.org/question/8092/compute-the-centroid-
      of-a-polytope/
      
      URL: https://trac.sagemath.org/29382
      Reported by: gh-kliem
      Ticket author(s): Volker Braun, Jonathan Kliem
      Reviewer(s): Laith Rastanawi, Jean-Philippe Labbé
      0aa5303e
    • Release Manager's avatar
      Trac #29347: Signed Representation · 1f084633
      Release Manager authored
      URL: https://trac.sagemath.org/29347
      Reported by: gh-coolsidd
      Ticket author(s): Siddharth Singh
      Reviewer(s): Travis Scrimshaw
      1f084633
    • Release Manager's avatar
      Trac #29188: Move vertex facet graph to combinatorial polyhedron · 1470ad61
      Release Manager authored
      We move the method `vertex_facet_graph` from `Polyhedron_base` to
      `CombinatorialPolyhedron`.
      
      Along the way we fix an bug, namely that
      `vertex_facet_graph(labels=False)` has the edges the wrong way::
      
      {{{
      sage: P = polytopes.cube()
      sage: P.vertex_facet_graph().is_isomorphic(P.vertex_facet_graph(False))
      False
      sage: P.vertex_facet_graph().is_isomorphic(P.vertex_facet_graph(False).r
      everse())
      True
      }}}
      
      URL: https://trac.sagemath.org/29188
      Reported by: gh-kliem
      Ticket author(s): Jonathan Kliem
      Reviewer(s): Jean-Philippe Labbé
      1470ad61
    • Release Manager's avatar
      Trac #29186: Add simplicity and simpliciality to polyhedra · 88c5a80b
      Release Manager authored
      In #27086 we have implemented simplicity and simpliciality for
      combinatorial polyhedra. We expose this methods in `Polyhedron_base`.
      
      The methods return the largest `k` such that the polytope is
      `k`-simple/simplicial. In case of unbounded polyhedra a
      `NotImplementedError` is raised.
      
      A polytope is `k`-simplicial if every `k`-face is a simplex. It is
      `k`-simple if its dual/polar is `k`-simplicial.
      
      URL: https://trac.sagemath.org/29186
      Reported by: gh-kliem
      Ticket author(s): Jonathan Kliem
      Reviewer(s): Jean-Philippe Labbé
      88c5a80b
    • Release Manager's avatar
      Trac #28873: Implement ambient volume of polyhedron with normaliz · 3e49dccf
      Release Manager authored
      We implement the ambient volume using backend normaliz.
      
      This is done by return 0 or infinity if the polyhedron is not full-
      dimensional and not compact respectively.
      
      Otherwise, we take the `induced_lattice` volume and divide by
      `factorial(self.dim())`.
      
      See section 6.1.1 of the normaliz manual on how `induced_lattice` volume
      relates to euclidean volume:
      [https://github.com/Normaliz/Normaliz/blob/master/doc/Normaliz.pdf]
      
      This is much faster than the current method, so we set this to default
      if backend is normaliz.
      
      {{{
      sage: P = polytopes.dodecahedron(backend='normaliz')
      sage: %time P.volume(engine='normaliz')
      CPU times: user 3.91 ms, sys: 0 ns, total: 3.91 ms
      Wall time: 1.49 ms
      -176*sqrt5 + 400
      sage: %time P.volume(engine='internal')
      CPU times: user 26.5 ms, sys: 332 µs, total: 26.9 ms
      Wall time: 27.5 ms
      -176*sqrt5 + 400
      }}}
      
      {{{
      sage: P = polytopes.one_hundred_twenty_cell(backend='normaliz')
      sage: %time P.volume(engine='normaliz')
      CPU times: user 1.5 s, sys: 0 ns, total: 1.5 s
      Wall time: 210 ms
      120*sqrt5
      sage: %time P.volume(engine='internal')
      CPU times: user 8.61 s, sys: 14.7 ms, total: 8.63 s
      Wall time: 8.63 s
      120*sqrt5
      }}}
      {{{
      sage: P = polytopes.hypercube(6, backend='normaliz')
      sage: %time P.volume(engine='normaliz')
      CPU times: user 2.33 ms, sys: 0 ns, total: 2.33 ms
      Wall time: 2.34 ms
      64
      sage: %time P.volume(engine='internal')
      CPU times: user 183 ms, sys: 32 µs, total: 183 ms
      Wall time: 182 ms
      64
      }}}
      
      This also speeds up calculation in case the polyhedron is not full-
      dimensional:
      
      {{{
      sage: P = polytopes.permutahedron(6, backend='normaliz')
      sage: %time P.volume(measure='induced')
      CPU times: user 37.7 s, sys: 42.4 ms, total: 37.7 s
      Wall time: 24.2 s
      1296*sqrt(6)
      sage: %time P.volume(engine='internal', measure='induced')
      CPU times: user 42.9 s, sys: 71.9 ms, total: 43 s
      Wall time: 41.8 s
      1296*sqrt(6)
      }}}
      
      However, note that calculation of the affine hull takes quite some time
      in this case. So we leave the inexact normaliz option for now:
      {{{
      sage: %time P.volume(engine='normaliz', measure='induced')
      CPU times: user 710 ms, sys: 0 ns, total: 710 ms
      Wall time: 92.3 ms
      3174.5387066469984
      }}}
      
      Possible follow ups:
      
      There is probably a good and fast way to convert the lattice volume to
      the euclidean volume exactly. Also, once we can set up a normaliz
      polyhedron with both Vrep and Hrep, affine hull should be really quick.
      
      URL: https://trac.sagemath.org/28873
      Reported by: gh-kliem
      Ticket author(s): Jonathan Kliem
      Reviewer(s): Jean-Philippe Labbé
      3e49dccf
    • Release Manager's avatar
      Trac #28777: F5 algorithm for Tate series · b95332d5
      Release Manager authored
      This tickets implements two F5-like algorithms (called `PoTe` and
      `VaPoTe` respectively) for computing Gröbner bases over Tate algebras.
      
      URL: https://trac.sagemath.org/28777
      Reported by: caruso
      Ticket author(s): Xavier Caruso, Thibaut Verron
      Reviewer(s): Travis Scrimshaw
      b95332d5
    • Release Manager's avatar
      Trac #28757: CombinatorialPolyhedron: Remove empty folder · 41b2c494
      Release Manager authored
      In the folder `src/sage/geometry/polyhedron/combinatorial_polyhedron`
      there is an empty folder that keeps appearing.
      
      This is because `bit_vector_operations` was not properly defined in
      `module_list.py`.
      
      We fix this by including the functions needed directly in each file with
      `cdef extern from "bit_vector_operations.cc"` and removing the module `s
      age/geometry/polyhedron/combinatorial_polyhedron/bit_vector_operations.c
      c`.
      
      URL: https://trac.sagemath.org/28757
      Reported by: gh-kliem
      Ticket author(s): Jonathan Kliem
      Reviewer(s): Jean-Philippe Labbé
      41b2c494
    • Release Manager's avatar
      Trac #28626: Compute graph of polyhedron with CombinatorialPolyhedron · 9355edde
      Release Manager authored
      We use `CombinatorialPolyhedron` to compute the graph of
      `Polyhedron_base`.
      
      In the case of polyhedra with `lines` aka unpointed polyhedra this
      changes the behavior:
      
      - Old behavior: The vertex graph basically ignored the lines, so that
      {{{
      sage: P = Polyhedron(vertices=my_vertices, rays=my_rays, lines=my_lines)
      sage: Q = Polyhedron(vertices=my_vertices, rays=my_rays)
      }}}
        have the same graph (assuming the Vrepresentation as `['my_vertices',
      'my_rays', 'my_lines']` is minimal).
      - New behavior: The vertex graph of a polyhedron with lines contains no
      vertices as the polyhedron as no vertices.
      
      We add information about this to the documentation of `vertex_graph`.
      
      We alter a doctest in `combinatorial_automorphism_group` that assumed
      the old behavior.
      
      See [https://groups.google.com/d/msg/sage-
      devel/lTwb_P0nBEw/_R4vXOxgDAAJ] for the discussion of this change.
      
      URL: https://trac.sagemath.org/28626
      Reported by: gh-kliem
      Ticket author(s): Jonathan Kliem
      Reviewer(s): Dima Pasechnik, Jean-Philippe Labbé
      9355edde
    • Release Manager's avatar
      Trac #27508: Force tail reduction in polynomial quotient ring · a6b03dda
      Release Manager authored
      I'd like to "remove squares" in some polynomials living in a polynomial
      ring over `QQ`, in 2 variables: `x`,`y`. I tried to implement this by
      modding out by the ideal `(x^2 - x, y^2 - y)`. Depending on the
      ordering, the result of `.mod()` does not always output the polynomial I
      am looking for.
      
      Without specifying an ordering, everything seems fine:
      {{{
      #!python
      sage: R1.<x,y> = PolynomialRing(QQ, 2)
      sage: I1 = R1.ideal(["x^2 - x", "y^2 - y"])
      sage: R1("x^2 + y").mod(I1)
      x + y
      sage: R1("x + y^2").mod(I1)
      x + y
      }}}
      
      However, when specifying the order `lex` the reduction of `x + y^2` is
      not as expected:
      {{{
      #!python
      sage: R2.<x,y> = PolynomialRing(QQ, 2, order="lex")
      sage: I2 = R2.ideal(["x^2 - x", "y^2 - y"])
      sage: R2("x^2 + y").mod(I2)
      x + y
      sage: R2("x + y^2").mod(I2)
      x + y^2
      }}}
      
      This issue was reported in [[https://groups.google.com/forum/#!topic
      /sage-support/80Scc9pTkPM|sage-support]] where it was pointed out that
      it is likely a bug in Singular, or in the Singular interface to Sage.
      
      In particular, using the order `lex` works when
      `implementation="generic"` is also specified:
      {{{
      #!python
      sage: R3.<x,y> = PolynomialRing(QQ, 2, order="lex",
      implementation="generic")
      sage: I3 = R3.ideal(["x^2 - x", "y^2 - y"])
      sage: R3("x^2 + y").mod(I3)
      x + y
      sage: R3("x + y^2").mod(I3)
      x + y
      }}}
      
      For reference, I am using Sage version 8.6 on macOS Mojave 10.14.3.
      
      PS. see also https://groups.google.com/d/msg/sage-
      devel/K49-V3BbWbg/pxuoehPvAAAJ
      
      URL: https://trac.sagemath.org/27508
      Reported by: gh-rachelplayer
      Ticket author(s): Dima Pasechnik
      Reviewer(s): Markus Wageringel
      a6b03dda
  3. 24 Apr, 2020 4 commits
  4. 23 Apr, 2020 7 commits