From 12f1742dd4300bb377ef2fbd1a84904caf48210f Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Fri, 3 Nov 2006 10:07:47 +0100 Subject: [PATCH] gen_fun::substitute: normalize terms --- genfun.cc | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/genfun.cc b/genfun.cc index 864904e..4ce96de 100644 --- a/genfun.cc +++ b/genfun.cc @@ -244,12 +244,18 @@ void gen_fun::substitute(Matrix *CP) Polyhedron *C = Polyhedron_Image(context, CP, 0); Polyhedron_Free(context); context = C; + + short_rat_list new_term; for (short_rat_list::iterator i = term.begin(); i != term.end(); ++i) { - (*i)->d.power *= map; - (*i)->n.power *= map; - for (int j = 0; j < (*i)->n.power.NumRows(); ++j) - (*i)->n.power[j] += offset; + short_rat *r = (*i); + r->d.power *= map; + r->n.power *= map; + for (int j = 0; j < r->n.power.NumRows(); ++j) + r->n.power[j] += offset; + r->normalize(); + new_term.insert(r); } + term.swap(new_term); } struct cone { -- 2.11.4.GIT