Skip to content

Commit b550d85

Browse files
Fix some Newton lengths
1 parent ff5bb63 commit b550d85

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

src/gr_poly/div_series_newton.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,9 @@ _gr_poly_div_series_newton(gr_ptr res, gr_srcptr A, slong Alen, gr_srcptr B, slo
6363
Bnlen = FLINT_MIN(Blen, n);
6464
Wlen = FLINT_MIN(Bnlen + m - 1, n);
6565
W2len = Wlen - m;
66+
6667
FLINT_ASSERT(W2len != 0);
68+
FLINT_ASSERT(m < Wlen);
6769

6870
if (have_mulmid)
6971
{
@@ -89,6 +91,7 @@ _gr_poly_div_series_newton(gr_ptr res, gr_srcptr A, slong Alen, gr_srcptr B, slo
8991

9092
if (have_mulmid)
9193
{
94+
FLINT_ASSERT(m < Wlen);
9295
status |= _gr_poly_mulmid(W, B, Bnlen, T, m, m, Wlen, ctx);
9396
status |= _gr_poly_sub(W, GR_ENTRY(A, m, sz), FLINT_MAX(0, FLINT_MIN(Alen - m, n - m)), W, n - m, ctx);
9497
status |= _gr_poly_mullow(GR_ENTRY(res, m, sz), res, m, W, n - m, n - m, ctx);

src/gr_poly/inv_series_newton.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@ _gr_poly_inv_series_newton(gr_ptr Qinv, gr_srcptr Q, slong Qlen, slong len, slon
5656
Qnlen = FLINT_MIN(Qlen, n);
5757
Wlen = FLINT_MIN(Qnlen + m - 1, n);
5858
W2len = Wlen - m;
59+
5960
FLINT_ASSERT(W2len != 0);
61+
FLINT_ASSERT(m < Wlen);
6062

6163
if (have_mulmid)
6264
{

src/gr_poly/sqrt_series_newton.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,8 @@ _gr_poly_sqrt_series_newton(gr_ptr g,
8686

8787
if (have_mulmid)
8888
{
89-
status |= _gr_poly_mulmid(t, v, m, v, m, m, tlen, ctx);
89+
if (m < tlen)
90+
status |= _gr_poly_mulmid(t, v, m, v, m, m, tlen, ctx);
9091
status |= _gr_poly_sub(GR_ENTRY(u, m, sz), GR_ENTRY(h, m, sz),
9192
FLINT_MAX(0, FLINT_MIN(hlen - m, n - m)), t, FLINT_MAX(0, FLINT_MIN(tlen - m, n - m)), ctx);
9293
}

0 commit comments

Comments
 (0)