iscc: add inverse operation
[barvinok.git] / bernoulli.h
blobfb07af6349147e55d6d69115be6fb133b971b1c3
1 #include <barvinok/evalue.h>
2 #include "section_array.h"
4 #if defined(__cplusplus)
5 extern "C" {
6 #endif
8 struct barvinok_options;
10 struct bernoulli_coef {
11 Vector *num;
12 Vector *den;
13 Vector *lcm; /* lcm of this and previous denominators */
14 int size;
15 int n; /* The number of Bernoulli coefficients */
18 struct poly_list {
19 Vector **poly;
20 int size;
21 int n; /* The number of polynomials */
25 * Compute Bernoulli coefficients up to the nth.
26 * The returned structure will contain at least n+1 coefficients (0..n).
28 struct bernoulli_coef *bernoulli_coef_compute(int n);
31 * Compute Faulhaber polynomials up to the nth.
32 * The returned structure will contain at least n+1 polynomials (0..n).
34 struct poly_list *faulhaber_compute(int n);
37 * Compute Bernoulli polynomials up to the nth.
38 * The returned structure will contain at least n+1 polynomials (0..n).
40 struct poly_list *bernoulli_compute(int n);
42 evalue *bernoulli_summate(Polyhedron *P, evalue *E, unsigned nvar,
43 struct evalue_section_array *sections,
44 struct barvinok_options *options);
46 #if defined(__cplusplus)
48 #endif