From 15bffb84ad4b7f6c22cc8a63dfa6d6eadcca6e18 Mon Sep 17 00:00:00 2001 From: Oscar Benjamin Date: Fri, 25 Jul 2025 00:37:41 +0100 Subject: [PATCH 1/2] fix: set prec when creating series from series --- src/flint/test/test_all.py | 12 ++++++++++++ src/flint/types/fmpq_series.pyx | 4 ++-- src/flint/types/fmpz_series.pyx | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/flint/test/test_all.py b/src/flint/test/test_all.py index f38f1b35..59d1c46a 100644 --- a/src/flint/test/test_all.py +++ b/src/flint/test/test_all.py @@ -696,6 +696,12 @@ def test_fmpz_series(): assert s1._equal_repr(1) is False assert Z([])._equal_repr(Z([0])) is True assert Z([1])._equal_repr(Z([0])) is False + p = Z([1,2]) + assert p.prec == 10 + p4 = Z([1,2], prec=4) + assert p4.prec == 4 + p4 = Z(p, prec=4) + assert p4.prec == 4 # XXX: this gives a core dump: # s = Z([1,2]) # s[10**10] = 1 @@ -1200,6 +1206,12 @@ def test_fmpq_series(): assert s1._equal_repr(sz3) is False assert Q([1])._equal_repr(flint.fmpq(1)) is False assert Q([1])._equal_repr(1) is False + p = Q([1,2]) + assert p.prec == 10 + p4 = Q([1,2], prec=4) + assert p4.prec == 4 + p4 = Q(p, prec=4) + assert p4.prec == 4 # XXX: this gives a core dump: # s = Q([1,2]) # s[10**10] = 1 diff --git a/src/flint/types/fmpq_series.pyx b/src/flint/types/fmpq_series.pyx index 1ce75c10..a99f530c 100644 --- a/src/flint/types/fmpq_series.pyx +++ b/src/flint/types/fmpq_series.pyx @@ -75,10 +75,10 @@ cdef class fmpq_series(flint_series): if val is not None: if typecheck(val, fmpq_series): fmpq_poly_set(self.val, (val).val) - self._prec = min((val)._prec, getcap()) + self._prec = min((val)._prec, self._prec) elif typecheck(val, fmpz_series): fmpq_poly_set_fmpz_poly(self.val, (val).val) - self._prec = min((val)._prec, getcap()) + self._prec = min((val)._prec, self._prec) elif typecheck(val, fmpz_poly): fmpq_poly_set_fmpz_poly(self.val, (val).val) elif typecheck(val, fmpq_poly): diff --git a/src/flint/types/fmpz_series.pyx b/src/flint/types/fmpz_series.pyx index 06ff936d..07bc519d 100644 --- a/src/flint/types/fmpz_series.pyx +++ b/src/flint/types/fmpz_series.pyx @@ -68,7 +68,7 @@ cdef class fmpz_series(flint_series): if val is not None: if typecheck(val, fmpz_series): fmpz_poly_set(self.val, (val).val) - self._prec = min((val)._prec, getcap()) + self._prec = min((val)._prec, self._prec) elif typecheck(val, fmpz_poly): fmpz_poly_set(self.val, (val).val) elif typecheck(val, list): From 158443562ee0797f548740033ee427fced9cb381 Mon Sep 17 00:00:00 2001 From: Oscar Benjamin Date: Fri, 25 Jul 2025 00:43:29 +0100 Subject: [PATCH 2/2] Add FLINT 3.3.1 to the test matrix --- .github/workflows/buildwheel.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/buildwheel.yml b/.github/workflows/buildwheel.yml index 73981d50..12a380e5 100644 --- a/.github/workflows/buildwheel.yml +++ b/.github/workflows/buildwheel.yml @@ -179,7 +179,7 @@ jobs: fail-fast: false matrix: # Supported Flint versions: - flint-tag: ['v3.0.1', 'v3.1.3-p1', 'v3.2.2'] + flint-tag: ['v3.0.1', 'v3.1.3-p1', 'v3.2.2', 'v3.3.1'] steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5