From ba1dd7ece9bee4eff2dd5673cb04d13298a1f2d4 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Tue, 8 Apr 2008 16:23:33 +0200 Subject: [PATCH] bernstein.cc: evalue2ex: don't assume all periodic tables have the same size --- bernstein.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bernstein.cc b/bernstein.cc index b0d0865..2f40d40 100644 --- a/bernstein.cc +++ b/bernstein.cc @@ -96,6 +96,7 @@ static ex evalue2ex_r(const evalue *e, const exvector& vars, return value2numeric(e->x.n)/value2numeric(e->d); ex base_var = 0; ex poly = 0; + int rem; switch (e->x.p->type) { case polynomial: @@ -109,8 +110,8 @@ static ex evalue2ex_r(const evalue *e, const exvector& vars, break; case periodic: assert(coset); - return evalue2ex_r(&e->x.p->arr[VALUE_TO_INT(coset->p[e->x.p->pos-1])], - vars, extravar, expr, coset); + rem = VALUE_TO_INT(coset->p[e->x.p->pos-1]) % e->x.p->size; + return evalue2ex_r(&e->x.p->arr[rem], vars, extravar, expr, coset); default: return fail(); } -- 2.11.4.GIT