Skip to content

Commit

Permalink
sagemathgh-37646: Fix compilation with -std=c++17
Browse files Browse the repository at this point in the history
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

Fixes sagemath#36840.

0c96d61: I don't think there should be
any issues with this, as it should be exactly what `cpdef` does under
the hood. That being said, I'd like someone knowledgable with Cython to
sanity check this.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation accordingly.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
N/A

URL: sagemath#37646
Reported by: Shorden
Reviewer(s): Matthias Köppe, Shorden
  • Loading branch information
Release Manager committed Mar 31, 2024
2 parents cf58964 + 39db3c5 commit 9b0a40d
Show file tree
Hide file tree
Showing 7 changed files with 26 additions and 7 deletions.
6 changes: 3 additions & 3 deletions build/pkgs/configure/checksums.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
tarball=configure-VERSION.tar.gz
sha1=25a360e4892317526249e50eaa51297891511d61
md5=0fd34b91fc06199e6c3672ad969472ee
cksum=1226224895
sha1=461fc89608a23f5e06c75bdd0a7480527fc3fa66
md5=94145a9c6e55496266631d06c3d7fdeb
cksum=613494009
2 changes: 1 addition & 1 deletion build/pkgs/configure/package-version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
d13f6164a314f330071fe2a99112e78de03347f0
e9456b2da71c424d3ff188d5bb75e3c60f42be16
3 changes: 2 additions & 1 deletion src/sage/modular/arithgroup/farey.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include <sstream>
#include <algorithm>
#include <cassert>
#include <functional>

#include <gmpxx.h>
#include <Python.h>
Expand Down Expand Up @@ -737,7 +738,7 @@ size_t FareySymbol::nu3() const {
size_t FareySymbol::rank_pi() const {
if( index() == 2 ) return 1;
return count_if(pairing.begin(), pairing.end(),
bind2nd(greater<int>(), 0))/2;
bind(greater<int>(), placeholders::_1, 0))/2;
}

size_t FareySymbol::number_of_cusps() const {
Expand Down
2 changes: 2 additions & 0 deletions src/sage/modular/arithgroup/farey_symbol.pyx
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# distutils: sources = sage/modular/arithgroup/sl2z.cpp sage/modular/arithgroup/farey.cpp
# distutils: language = c++
# distutils: extra_compile_args = -std=c++11
# sage.doctest: needs sage.libs.pari
r"""
Farey symbol for arithmetic subgroups of `\PSL_2(\ZZ)`
Expand Down
2 changes: 1 addition & 1 deletion src/sage/rings/polynomial/hilbert.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ cdef inline list interred(list L) noexcept:
# that appears later in L.
if not L:
return []
L.sort(key=ETuple.unweighted_degree)
L.sort(key=ETuple._unweighted_degree)
cdef size_t i
cdef ETuple m
cdef list result = [<ETuple> PyList_GET_ITEM(L, 0)]
Expand Down
2 changes: 2 additions & 0 deletions src/sage/rings/polynomial/polydict.pxd
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ cdef class ETuple:
cdef ETuple _new(self) noexcept
cdef int get_exp(self, size_t i) noexcept

# need a cdef version for function pointers
cdef int _unweighted_degree(self) except *
cpdef int unweighted_degree(self) except *
cpdef int weighted_degree(self, tuple w) except *
cpdef int unweighted_quotient_degree(self, ETuple other) except *
Expand Down
16 changes: 15 additions & 1 deletion src/sage/rings/polynomial/polydict.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -1845,7 +1845,7 @@ cdef class ETuple:

# additional methods

cpdef int unweighted_degree(self) except *:
cdef int _unweighted_degree(self) except *:
r"""
Return the sum of entries.
Expand All @@ -1863,6 +1863,20 @@ cdef class ETuple:
degree += self._data[2 * i + 1]
return degree

cpdef int unweighted_degree(self) except *:
r"""
Return the sum of entries.
EXAMPLES::
sage: from sage.rings.polynomial.polydict import ETuple
sage: ETuple([1, 1, 0, 2, 0]).unweighted_degree()
4
sage: ETuple([-1, 1]).unweighted_degree()
0
"""
return self._unweighted_degree()

@cython.boundscheck(False)
@cython.wraparound(False)
cpdef int weighted_degree(self, tuple w) except *:
Expand Down

0 comments on commit 9b0a40d

Please sign in to comment.