From 308d52dd6b8b2d2b6ab1ac1ff127694c69f3f8de Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Fri, 18 Apr 2008 23:42:52 +0200 Subject: [PATCH] power.h: extract from euler.cc --- Makefile.am | 1 + euler.cc | 25 +------------------------ power.h | 23 +++++++++++++++++++++++ 3 files changed, 25 insertions(+), 24 deletions(-) create mode 100644 power.h diff --git a/Makefile.am b/Makefile.am index e77c3e0..640b270 100644 --- a/Makefile.am +++ b/Makefile.am @@ -128,6 +128,7 @@ libbarvinok_core_la_SOURCES = \ polysign_pip.c \ polysign_polylib.c \ polysign.h \ + power.h \ reduce_domain.c \ reduce_domain.h \ reducer.cc \ diff --git a/euler.cc b/euler.cc index b56d203..1f4f602 100644 --- a/euler.cc +++ b/euler.cc @@ -12,6 +12,7 @@ #include "euler.h" #include "lattice_point.h" #include "param_util.h" +#include "power.h" #include "reduce_domain.h" /* Compute total degree in first nvar variables */ @@ -98,30 +99,6 @@ Value *binomial(unsigned n, unsigned k) return &binom.binom[n]->p[k]; } -struct power { - int n; - Vector *powers; - - power(Value v, int max) { - powers = Vector_Alloc(max+1); - assert(powers); - value_set_si(powers->p[0], 1); - if (max >= 1) - value_assign(powers->p[1], v); - n = 2; - } - ~power() { - Vector_Free(powers); - } - Value *operator[](int exp) { - assert(exp >= 0); - assert(exp < powers->Size); - for (; n <= exp; ++n) - value_multiply(powers->p[n], powers->p[n-1], powers->p[1]); - return &powers->p[exp]; - } -}; - /* * Computes the coefficients of * diff --git a/power.h b/power.h new file mode 100644 index 0000000..e90927b --- /dev/null +++ b/power.h @@ -0,0 +1,23 @@ +struct power { + int n; + Vector *powers; + + power(Value v, int max) { + powers = Vector_Alloc(max+1); + assert(powers); + value_set_si(powers->p[0], 1); + if (max >= 1) + value_assign(powers->p[1], v); + n = 2; + } + ~power() { + Vector_Free(powers); + } + Value *operator[](int exp) { + assert(exp >= 0); + assert(exp < powers->Size); + for (; n <= exp; ++n) + value_multiply(powers->p[n], powers->p[n-1], powers->p[1]); + return &powers->p[exp]; + } +}; -- 2.11.4.GIT