Merge branch 'topcom'
[barvinok.git] / bernoulli.h
blob6ff0d3f9a74b2bb2574d4ebd626c3d98c8a8b501
1 #include <barvinok/evalue.h>
3 #if defined(__cplusplus)
4 extern "C" {
5 #endif
7 struct barvinok_options;
9 struct bernoulli_coef {
10 Vector *num;
11 Vector *den;
12 Vector *lcm; /* lcm of this and previous denominators */
13 int size;
14 int n; /* The number of Bernoulli coefficients */
17 struct poly_list {
18 Vector **poly;
19 int size;
20 int n; /* The number of polynomials */
24 * Compute Bernoulli coefficients up to the nth.
25 * The returned structure will contain at least n+1 coefficients (0..n).
27 struct bernoulli_coef *bernoulli_coef_compute(int n);
30 * Compute Faulhaber polynomials up to the nth.
31 * The returned structure will contain at least n+1 polynomials (0..n).
33 struct poly_list *faulhaber_compute(int n);
36 * Compute Bernoulli polynomials up to the nth.
37 * The returned structure will contain at least n+1 polynomials (0..n).
39 struct poly_list *bernoulli_compute(int n);
41 evalue *Bernoulli_sum(Polyhedron *P, Polyhedron *C,
42 struct barvinok_options *options);
43 evalue *Bernoulli_sum_evalue(evalue *e, unsigned nvar,
44 struct barvinok_options *options);
46 #if defined(__cplusplus)
48 #endif