diff --git a/build/pkgs/configure/checksums.ini b/build/pkgs/configure/checksums.ini index 69415aafab8..c1f9a8d43e2 100644 --- a/build/pkgs/configure/checksums.ini +++ b/build/pkgs/configure/checksums.ini @@ -1,3 +1,3 @@ tarball=configure-VERSION.tar.gz -sha1=e162e0f52da5eca0c01ddf4831edcea1acd72033 -sha256=2033521228294e134368d69457d6e582706e84ff10bf3d6d0a57a2a4afad0a8b +sha1=7ae6149d44ba78586d234861a18856430f89c439 +sha256=2417ae01c7f3ed65708a7fc937d9f2c4592252cbc35dceb3323445bd868bf8ee diff --git a/build/pkgs/configure/package-version.txt b/build/pkgs/configure/package-version.txt index 2a5e3433ccb..bcdb4a11b5b 100644 --- a/build/pkgs/configure/package-version.txt +++ b/build/pkgs/configure/package-version.txt @@ -1 +1 @@ -b178c10a7401b381b8ed2daab5aaf026436452c9 +95fb8c3284c490325ef1e116f3a038a3467f5086 diff --git a/src/sage/groups/generic.py b/src/sage/groups/generic.py index c3831eb2bc5..69acc7c654d 100644 --- a/src/sage/groups/generic.py +++ b/src/sage/groups/generic.py @@ -1257,6 +1257,17 @@ def order_from_multiple(P, m, plist=None, factorization=None, check=True, sage: K. = GF(3^60) sage: order_from_multiple(a, 3^60 - 1, operation='*', check=False) 42391158275216203514294433200 + + TESTS: + + Check that :issue:`38489` is fixed:: + + sage: from sage.groups.generic import order_from_multiple + sage: plist = [43, 257, 547, 881] + sage: m = prod(plist[:-1]) + sage: elt = Zmod(m)(plist[-1]) + sage: order_from_multiple(elt, m, plist=plist) + 6044897 """ Z = integer_ring.ZZ @@ -1325,6 +1336,8 @@ def _order_from_multiple_helper(Q, L, S): if abs(sum_left + v - (S / 2)) > abs(sum_left - (S / 2)): break sum_left += v + if not 0 < k < l: + k = l // 2 L1 = L[:k] L2 = L[k:] # recursive calls