From c600d3e675adfccd81c7d5ce8d7ff982695de8ff Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Wed, 26 Jul 2006 13:45:25 +0200 Subject: [PATCH] gen_fun: add copy constructor --- barvinok/genfun.h | 8 +++++++- genfun.cc | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/barvinok/genfun.h b/barvinok/genfun.h index 2db9fe8..2bfb062 100644 --- a/barvinok/genfun.h +++ b/barvinok/genfun.h @@ -35,7 +35,7 @@ struct gen_fun { void add(const ZZ& cn, const ZZ& cd, const vec_ZZ& num, const mat_ZZ& den); /* add cn/cd times gf */ - void add(const ZZ& cn, const ZZ& cd, gen_fun *gf); + void add(const ZZ& cn, const ZZ& cd, const gen_fun *gf); void substitute(Matrix *CP, const mat_ZZ& map, const vec_ZZ& offset); gen_fun *Hadamard_product(gen_fun *gf, unsigned MaxRays); void add_union(gen_fun *gf, unsigned MaxRays); @@ -43,6 +43,12 @@ struct gen_fun { operator evalue *() const; void coefficient(Value* params, Value* c) const; + gen_fun(const gen_fun *gf) { + ZZ one; + one = 1; + context = Polyhedron_Copy(gf->context); + add(one, one, gf); + } gen_fun(Polyhedron *C = NULL) : context(C) {} ~gen_fun() { if (context) diff --git a/genfun.cc b/genfun.cc index 724c01a..92ad6f1 100644 --- a/genfun.cc +++ b/genfun.cc @@ -172,7 +172,7 @@ void gen_fun::add(const ZZ& cn, const ZZ& cd, const vec_ZZ& num, term.push_back(r); } -void gen_fun::add(const ZZ& cn, const ZZ& cd, gen_fun *gf) +void gen_fun::add(const ZZ& cn, const ZZ& cd, const gen_fun *gf) { ZZ n, d; for (int i = 0; i < gf->term.size(); ++i) { -- 2.11.4.GIT