PIPS
polynome.h
Go to the documentation of this file.
1 /* Warning! Do not modify this file that is automatically generated! */
2 /* Modify src/Libs/polynome/polynome-local.h instead, to add your own modifications. */
3 
4 /* header file built by cproto */
5 
6 #ifndef polynome_header_included
7 #define polynome_header_included
8 /* polynome-local.h */
9 /*
10 
11  $Id: polynome-local.h 1641 2016-03-02 08:20:19Z coelho $
12 
13  Copyright 1989-2016 MINES ParisTech
14 
15  This file is part of Linear/C3 Library.
16 
17  Linear/C3 Library is free software: you can redistribute it and/or modify it
18  under the terms of the GNU Lesser General Public License as published by
19  the Free Software Foundation, either version 3 of the License, or
20  any later version.
21 
22  Linear/C3 Library is distributed in the hope that it will be useful, but WITHOUT ANY
23  WARRANTY; without even the implied warranty of MERCHANTABILITY or
24  FITNESS FOR A PARTICULAR PURPOSE.
25 
26  See the GNU Lesser General Public License for more details.
27 
28  You should have received a copy of the GNU Lesser General Public License
29  along with Linear/C3 Library. If not, see <http://www.gnu.org/licenses/>.
30 
31 */
32 
33 /*
34  *
35  * SYMBOLIC POLYNOMIALS P. Berthomier 02-08-90
36  *
37  * L. Zhou Apr.8,91
38  *
39  *
40  * This package contains some routines manipulating symbolic polynomials
41  * with any number of variables. It uses the packages vecteur and arithmetique.
42  *
43  * There are routines for allocation/duplication/destruction, input/output,
44  * "factorization", variable substitution, integer power exponentiation,
45  * addition, multiplication, integration of polynomials.
46  *
47  * The package lacks: division by a one-variable polynomial, comparison
48  * of two polynomials (when possible), ...
49  *
50  *
51  * POLYNOMIAL STRUCTURE
52  *
53  *
54  * We use a Pvecteur structure to represent a sort of "normalized monomial":
55  * a product of powers of variables without scalar coefficient.
56  *
57  * The field "Variable" of the Pvecteur is a pointer to the variable
58  * We only use pointer equality, so if two different pointers
59  * refer to the same variable, the polynomials won't be normalized:
60  * things such as 2*N + 3*N may appear.
61  * The field "Value" contains the integer exponent of that unknown
62  * in that monomial.
63  *
64  * We add a floating-point coefficient to form a complete monomial
65  * structure: a *Pmonome.
66  *
67  * We define a polynomial as an unsorted list of monomial structure.
68  *
69  *
70  *
71  * Example of Pmonome: 2 * X^2.Y.Z^3
72  * (the "@" below means: beginning of a pointer)
73  *
74  *
75  * -----------
76  * Pmonome @------> | 2 | (coeff:float)
77  * |---------|
78  * | @ | (term:Pvecteur)
79  * ---- | ----
80  * |
81  * V
82  * / -----------
83  * | | Y , 1 |
84  * | -----------
85  * Pvecteur | | Z , 3 |
86  * | -----------
87  * | | X , 2 |
88  * \ -----------
89  *
90  *
91  *
92  * Example of Ppolynome: 6 * N^3.k + 3 * N.k - 2
93  *
94  * ----------- ----------- -----------
95  * Ppolynome:@----> | @-------> | @-------> | / | (succ:Ppolynome)
96  * |---------| |---------| |---------|
97  * | @ | | @ | | @ | (monome:Pmonome)
98  * ---- | ---- ---- | ---- ---- | ----
99  * | | |
100  * V V V
101  * / ----------- ----------- -----------
102  * | | 6 | | 3 | | -2 |
103  * Pmonomes | ----------- ----------- -----------
104  * | | @ | | @ | | @ |
105  * \ ---- | ---- ---- | ---- ---- | ----
106  * | | |
107  * V V V
108  * / ----------- ----------- -----------
109  * | | N , 3 | | N , 1 | | TCST, 1 |
110  * Pvecteurs| ----------- ----------- -----------
111  * | | k , 1 | | k , 1 |
112  * \ ----------- -----------
113  *
114  * Nul polynomials are represented by a fixed pointer: POLYNOME_NUL.
115  * Undefined polynomials are represented by POLYNOME_UNDEFINED.
116  *
117  * The package is cut into ten files:
118  *
119  * pnome-types.h
120  * polynome.h (This file. Automatically generated from pnome-types.h)
121  *
122  * pnome-alloc.c
123  * pnome-bin.c
124  * pnome-error.c
125  * pnome-io.c
126  * pnome-private.c
127  * pnome-reduc.c
128  * pnome-scal.c
129  * pnome-unaires.c
130  *
131  *
132  */
133 
134 
135 #ifndef POLYNOME_INCLUDED
136 #define POLYNOME_INCLUDED
137 
138 typedef struct Smonome {
139  float coeff;
140  Pvecteur term;
142 
143 typedef struct Spolynome {
144  Pmonome monome;
145  struct Spolynome *succ;
147 
148 
149 /* Macros definitions */
150 #define monome_coeff(pm) ((pm)->coeff)
151 #define monome_term(pm) ((pm)->term)
152 #define polynome_monome(pp) ((pp)->monome)
153 #define polynome_succ(pp) ((pp)->succ)
154 /*
155 #define is_single_monome(pp) ((POLYNOME_NUL_P(pp)) || (POLYNOME_NUL_P(polynome_succ(pp))))
156 */
157 #define is_single_monome(pp) ((!POLYNOME_NUL_P(pp)) && (POLYNOME_NUL_P(polynome_succ(pp))))
158 
159 #define monome_constant_new(coeff) make_monome(coeff, TCST, 1)
160 #define monome_power1_new(coeff, var) make_monome(coeff, var, 1)
161 
162 /* Null/undefined, monomial/polynomial definitions */
163 #define MONOME_NUL ((Pmonome) -256)
164 #define MONOME_NUL_P(pm) ((pm)==MONOME_NUL)
165 #define MONOME_UNDEFINED ((Pmonome) -252)
166 #define MONOME_UNDEFINED_P(pm) ((pm)==MONOME_UNDEFINED)
167 #define MONOME_CONSTANT_P(pm) (term_cst((pm)->term))
168 
169 #define POLYNOME_NUL ((Ppolynome) NULL)
170 #define POLYNOME_NUL_P(pp) ((pp)==POLYNOME_NUL)
171 #define POLYNOME_UNDEFINED ((Ppolynome) -248)
172 #define POLYNOME_UNDEFINED_P(pp) ((pp)==POLYNOME_UNDEFINED)
173 
174 #define MONOME_COEFF_MULTIPLY_SYMBOL "*"
175 #define MONOME_VAR_MULTIPLY_SYMBOL "."
176 #define POLYNOME_NUL_SYMBOL "0"
177 #define POLYNOME_UNDEFINED_SYMBOL "<polynome undefined>"
178 #define MONOME_NUL_SYMBOL "<monome nul>"
179 #define MONOME_UNDEFINED_SYMBOL "<monome undefined>"
180 
181 #define MAX_NAME_LENGTH 50
182 
183 #define PNOME_MACH_EPS 1E-8 /* below this value, a float is null */
184 #define PNOME_FLOAT_N_DECIMALES 2 /* nb of figures after point for coeffs */
185 #define PNOME_FLOAT_TO_EXP_LEVEL 1E8 /* numbers >1E8 are printed with exponent */
186 #define PNOME_FLOAT_TO_FRAC_LEVEL 9 /* print 1/2..1/9 rather than 0.50..0.11 */
187 
188 #endif /* POLYNOME_INCLUDED */
189 
190 /* cproto-generated files */
191 /* pnome-alloc.c */
192 extern Pmonome new_monome(void);
193 extern Ppolynome new_polynome(void);
194 extern Pmonome make_monome(float /*coeff*/, Variable /*var*/, Value /*expo*/);
195 extern Ppolynome make_polynome(float /*coeff*/, Variable /*var*/, Value /*expo*/);
197 extern Pmonome monome_dup(Pmonome /*pm*/);
198 extern void monome_rm(Pmonome */*ppm*/);
199 extern void polynome_rm(Ppolynome */*ppp*/);
200 extern Ppolynome polynome_free(Ppolynome /*pp*/);
201 extern Ppolynome polynome_dup(Ppolynome /*pp*/);
202 /* pnome-bin.c */
203 extern void polynome_monome_add(Ppolynome */*ppp*/, Pmonome /*pm*/);
204 extern Ppolynome polynome_monome_addition(Ppolynome /*pp*/, Pmonome /*pm*/);
205 extern void polynome_add(Ppolynome */*ppp*/, Ppolynome /*pp2*/);
206 extern Ppolynome polynome_addition(Ppolynome /*pp*/, Ppolynome /*pp2*/);
207 extern Ppolynome polynome_monome_mult(Ppolynome /*pp*/, Pmonome /*pm*/);
208 extern Ppolynome polynome_mult(Ppolynome /*pp1*/, Ppolynome /*pp2*/);
209 extern Pmonome monome_monome_div(Pmonome /*pm1*/, Pmonome /*pm2*/);
210 extern Ppolynome polynome_monome_div(Ppolynome /*pp*/, Pmonome /*pm*/);
211 extern Ppolynome polynome_div(Ppolynome /*pp1*/, Ppolynome /*pp2*/);
212 extern Ppolynome vecteur_to_polynome(Pvecteur /*pv*/);
213 /* pnome-error.c */
214 extern void polynome_error(const char */*name*/, char */*fmt*/, ...);
215 extern void good_polynome_assert(char */*function*/, ...);
216 extern bool monome_check(Pmonome /*pm*/);
217 extern bool polynome_check(Ppolynome /*pp*/);
218 extern bool is_polynome_a_monome(Ppolynome /*pp*/);
219 /* pnome-io.c */
220 extern void float_to_frac(double /*x*/, char **/*ps*/);
221 extern void monome_fprint(FILE */*fd*/, Pmonome /*pm*/, Pbase /*pb*/, bool /*plus_sign*/, char *(* /*variable_name*/)(Variable));
222 extern char *monome_sprint(Pmonome /*pm*/, Pbase /*pb*/, bool /*plus_sign*/, char *(* /*variable_name*/)(Variable));
223 extern void polynome_fprint(FILE */*fd*/, Ppolynome /*pp*/, char *(* /*variable_name*/)(Variable), int (* /*is_inferior_var*/)(Pvecteur *, Pvecteur *));
224 extern char *polynome_sprint(Ppolynome /*pp*/, char *(* /*variable_name*/)(Variable), int (* /*is_inferior_var*/)(Pvecteur *, Pvecteur *));
225 extern char *default_variable_name(Variable /*var*/);
226 extern int default_is_inferior_var(Variable /*var1*/, Variable /*var2*/);
227 extern int default_is_inferior_varval(Pvecteur /*varval1*/, Pvecteur /*varval2*/);
228 extern int default_is_inferior_pvarval(Pvecteur */*pvarval1*/, Pvecteur */*pvarval2*/);
229 extern Ppolynome polynome_sscanf(char */*sp*/, Variable (* /*name_to_variable*/)(Variable));
230 /* pnome-private.c */
231 extern Pmonome monome_del_var(Pmonome /*pm*/, Variable /*var*/);
232 extern bool monome_colin(Pmonome /*pm1*/, Pmonome /*pm2*/);
233 extern bool monome_equal(Pmonome /*pm1*/, Pmonome /*pm2*/);
234 extern float Bernouilli(int /*i*/);
235 extern int factorielle(int /*n*/);
236 extern double intpower(double /*d*/, int /*n*/);
237 extern bool is_inferior_monome(Pmonome /*pm1*/, Pmonome /*pm2*/, int (* /*is_inferior_var*/)(Pvecteur *, Pvecteur *));
238 /* pnome-reduc.c */
239 extern Ppolynome polynome_var_subst(Ppolynome /*pp*/, Variable /*var*/, Ppolynome /*ppsubst*/);
240 extern int polynome_degree(Ppolynome /*pp*/, Variable /*var*/);
241 extern int polynome_max_degree(Ppolynome /*pp*/);
242 extern Ppolynome polynome_factorize(Ppolynome /*pp*/, Variable /*var*/, int /*n*/);
243 extern float polynome_TCST(Ppolynome /*pp*/);
244 extern bool polynome_constant_p(Ppolynome /*pp*/);
245 extern Pbase polynome_used_var(Ppolynome /*pp*/, int (* /*is_inferior_var*/)(Pvecteur *, Pvecteur *));
246 extern bool polynome_contains_var(Ppolynome /*pp*/, Variable /*var*/);
247 extern bool polynome_equal(Ppolynome /*pp1*/, Ppolynome /*pp2*/);
248 /* pnome-scal.c */
249 extern void polynome_scalar_mult(Ppolynome */*ppp*/, double /*factor*/);
250 extern Ppolynome polynome_scalar_multiply(Ppolynome /*pp*/, double /*factor*/);
251 extern void polynome_scalar_add(Ppolynome */*ppp*/, double /*term*/);
252 extern Ppolynome polynome_scalar_addition(Ppolynome /*pp*/, double /*term*/);
253 extern Ppolynome polynome_power_n(Ppolynome /*pp*/, int /*n*/);
254 extern Ppolynome polynome_nth_root(Ppolynome /*p*/, int /*n*/);
255 extern Ppolynome number_replaces_var(Ppolynome /*pp*/, Variable /*var*/, double /*num*/);
256 extern Ppolynome polynome_incr(Ppolynome /*pp*/);
257 extern Ppolynome polynome_decr(Ppolynome /*pp*/);
258 /* pnome-root.c */
259 extern Pvecteur polynome_roots(Ppolynome /*p*/, Variable /*var*/);
260 /* pnome-unaires.c */
261 extern void polynome_negate(Ppolynome */*ppp*/);
262 extern Ppolynome polynome_opposed(Ppolynome /*pp*/);
263 extern Ppolynome polynome_sum_of_power(Ppolynome /*ppsup*/, int /*p*/);
264 extern Ppolynome polynome_sigma(Ppolynome /*pp*/, Variable /*var*/, Ppolynome /*ppinf*/, Ppolynome /*ppsup*/);
265 extern Ppolynome polynome_sort(Ppolynome */*ppp*/, int (* /*is_inferior_var*/)(Pvecteur *, Pvecteur *));
266 extern void polynome_chg_var(Ppolynome */*ppp*/, Variable /*v_old*/, Variable /*v_new*/);
267 #endif /* polynome_header_included */
int Value
bool monome_colin(Pmonome, Pmonome)
bool monome_colin(Pmonome pm1, Pmonome pm2) PRIVATE returns true if the two monomials are "colinear":...
Definition: pnome-private.c:77
bool polynome_check(Ppolynome)
bool polynome_check(Ppolynome pp) Return true if all's right.
Definition: pnome-error.c:131
void polynome_add(Ppolynome *, Ppolynome)
void polynome_add(Ppolynome* ppp, Ppolynome pp2) (*ppp) = (*ppp) + pp2.
Definition: pnome-bin.c:171
bool is_polynome_a_monome(Ppolynome)
bool is_polynome_a_monome(Ppolynome pp) Return true if the pp is just a monome.
Definition: pnome-error.c:162
bool polynome_equal(Ppolynome, Ppolynome)
bool polynome_equal(Ppolynome pp1, Ppolynome pp2) return (pp1 == pp2) >>>TO BE CONTINUED<<<
Definition: pnome-reduc.c:257
Ppolynome new_polynome(void)
allocation of an unitialized polynome (to avoid various direct unchecked call to malloc)
Definition: pnome-alloc.c:64
Ppolynome make_polynome(float, Variable, Value)
Ppolynome make_polynome(float coeff, Variable var, Value expo) PRIVATE allocates space for,...
Definition: pnome-alloc.c:100
void polynome_negate(Ppolynome *)
pnome-unaires.c
Definition: pnome-unaires.c:45
Ppolynome vecteur_to_polynome(Pvecteur)
===========================================================================
Definition: pnome-bin.c:406
float polynome_TCST(Ppolynome)
float polynome_TCST(Ppolynome pp) returns the constant term of polynomial pp.
Definition: pnome-reduc.c:156
Ppolynome polynome_incr(Ppolynome)
Ppolynome polynome_incr(Ppolynome pp) returns pp + 1.
Definition: pnome-scal.c:226
void monome_fprint(FILE *, Pmonome, Pbase, bool, char *(*)(Variable))
char * polynome_sprint(Ppolynome, char *(*)(Variable), int(*)(Pvecteur *, Pvecteur *))
void monome_rm(Pmonome *)
void monome_rm(Pmonome* ppm) PRIVATE frees space occupied by monomial *ppm returns *ppm pointing to M...
Definition: pnome-alloc.c:154
Ppolynome polynome_nth_root(Ppolynome, int)
computes the n-root of polynomial if possible, that is if all exponents are multiple of n return POLY...
Definition: pnome-scal.c:177
Ppolynome polynome_monome_addition(Ppolynome, Pmonome)
Ppolynome polynome_monome_addition(Ppolynome pp, Pmonome pm) PRIVATE Add monomial pm to polynomial pp...
Definition: pnome-bin.c:112
void polynome_monome_add(Ppolynome *, Pmonome)
pnome-bin.c
Definition: pnome-bin.c:50
Ppolynome polynome_opposed(Ppolynome)
Ppolynome polynome_opposed(Ppolynome pp); changes sign of polynomial pp.
Definition: pnome-unaires.c:59
Ppolynome polynome_dup(Ppolynome)
Ppolynome polynome_dup(Ppolynome pp) creates and returns a copy of pp.
Definition: pnome-alloc.c:211
void polynome_fprint(FILE *, Ppolynome, char *(*)(Variable), int(*)(Pvecteur *, Pvecteur *))
Ppolynome polynome_sort(Ppolynome *, int(*)(Pvecteur *, Pvecteur *))
Ppolynome polynome_var_subst(Ppolynome, Variable, Ppolynome)
pnome-reduc.c
Definition: pnome-reduc.c:47
Ppolynome polynome_mult(Ppolynome, Ppolynome)
Ppolynome polynome_mult(Ppolynome pp1, Ppolynome pp2) returns pp1 * pp2.
Definition: pnome-bin.c:287
Ppolynome polynome_factorize(Ppolynome, Variable, int)
Ppolynome polynome_factorize(Ppolynome pp, Variable var, int n) returns the (polynomial) coefficient ...
Definition: pnome-reduc.c:131
Ppolynome polynome_scalar_multiply(Ppolynome, double)
Pmonome monome_dup(Pmonome)
Pmonome monome_dup(Pmonome pm) PRIVATE creates and returns a copy of pm.
Definition: pnome-alloc.c:132
Pbase polynome_used_var(Ppolynome, int(*)(Pvecteur *, Pvecteur *))
Ppolynome polynome_sum_of_power(Ppolynome, int)
Ppolynome polynome_sum_of_power(Ppolynome ppsup, int p) calculates the sum of i^p for i=1 to (ppsup),...
Definition: pnome-unaires.c:79
int polynome_max_degree(Ppolynome)
int polynome_max_degree(Ppolynome pp) returns the degree of polynomial pp Let's hope there aren't too...
Definition: pnome-reduc.c:113
Pmonome monome_del_var(Pmonome, Variable)
pnome-private.c
Definition: pnome-private.c:47
int default_is_inferior_pvarval(Pvecteur *, Pvecteur *)
bool default_is_inferior_pvarval(Pvecteur * pvarval1, Pvecteur * pvarval2) return true if var1 is bef...
Definition: pnome-io.c:286
Pmonome new_monome(void)
POLYNOME_INCLUDED.
Definition: pnome-alloc.c:48
void polynome_chg_var(Ppolynome *, Variable, Variable)
void polynome_chg_var(Ppolynome *ppp, Variable v_old, Variable v_new) replace the variable v_old by v...
void float_to_frac(double, char **)
pnome-io.c
float Bernouilli(int)
float Bernouilli(int i) PRIVATE returns Bi = i-th Bernouilli number
Ppolynome polynome_div(Ppolynome, Ppolynome)
Ppolynome polynome_div(Ppolynome pp1, Ppolynome pp2) returns p = pp1 / pp2.
Definition: pnome-bin.c:381
Ppolynome polynome_decr(Ppolynome)
Ppolynome polynome_decr(Ppolynome pp) returns pp - 1.
Definition: pnome-scal.c:246
bool polynome_constant_p(Ppolynome)
bool polynome_constant_p(Ppolynome pp) return true if pp is a constant polynomial (including null pol...
Definition: pnome-reduc.c:180
double intpower(double, int)
double intpower(double d, int n) returns d^n for all integers n
void good_polynome_assert(char *,...)
void good_polynome_assert(va_alist) Check if the second argument is a valid polynomial.
Definition: pnome-error.c:84
int polynome_degree(Ppolynome, Variable)
int polynome_degree(Ppolynome pp, Variable var) returns the degree of polynomial pp viewed as a polyn...
Definition: pnome-reduc.c:93
bool is_inferior_monome(Pmonome, Pmonome, int(*)(Pvecteur *, Pvecteur *))
Ppolynome polynome_sigma(Ppolynome, Variable, Ppolynome, Ppolynome)
Ppolynome polynome_sigma(Ppolynome pp, Variable var, Ppolynome ppinf, ppsup) returns the sum of pp wh...
struct Spolynome Spolynome
Ppolynome polynome_sscanf(char *, Variable(*)(Variable))
Ppolynome polynome_sscanf(char *sp, (*name_to_variable)()) converts into polynomial structure the exp...
Definition: pnome-io.c:359
bool monome_check(Pmonome)
bool monome_check(Pmonome pm) Return true if all's right.
Definition: pnome-error.c:110
Ppolynome monome_to_new_polynome(Pmonome)
Ppolynome monome_to_new_polynome(Pmonome pm) PRIVATE allocates space for, and creates the polynomial ...
Definition: pnome-alloc.c:115
Ppolynome number_replaces_var(Ppolynome, Variable, double)
struct Smonome Smonome
void polynome_rm(Ppolynome *)
void polynome_rm(Ppolynome* ppp) frees space occupied by polynomial *ppp returns *ppp pointing to POL...
Definition: pnome-alloc.c:170
bool polynome_contains_var(Ppolynome, Variable)
bool polynome_contains_var(Ppolynome pp, Variable var) PRIVATE returns true if variable var is in pol...
Definition: pnome-reduc.c:238
struct Spolynome * Ppolynome
int factorielle(int)
int factorielle (int n) PRIVATE returns n!
void polynome_scalar_add(Ppolynome *, double)
char * monome_sprint(Pmonome, Pbase, bool, char *(*)(Variable))
int default_is_inferior_varval(Pvecteur, Pvecteur)
bool default_is_inferior_varval(Pvecteur varval1, Pvecteur varval2) return true if var1 is before var...
Definition: pnome-io.c:276
Ppolynome polynome_addition(Ppolynome, Ppolynome)
Ppolynome polynome_addition(Ppolynome pp, Ppolynome pp2) pp = pp + pp2.
Definition: pnome-bin.c:195
void polynome_error(const char *, char *,...)
pnome-error.c
Definition: pnome-error.c:62
Pmonome monome_monome_div(Pmonome, Pmonome)
Pmonome monome_monome_div(Pmonome pm1, Pmonome pm2) PRIVATE (pm1) = (pm1) / pm2.
Definition: pnome-bin.c:314
Ppolynome polynome_free(Ppolynome)
Ppolynome polynome_free(Ppolynome pp) frees space occupied by polynomial pp returns pp == POLYNOME_NU...
Definition: pnome-alloc.c:191
Ppolynome polynome_monome_div(Ppolynome, Pmonome)
Ppolynome polynome_monome_div(Ppolynome pp, Pmonome pm) PRIVATE returns p = pp / pm.
Definition: pnome-bin.c:356
Pvecteur polynome_roots(Ppolynome, Variable)
pnome-root.c
Definition: pnome-root.c:48
int default_is_inferior_var(Variable, Variable)
bool default_is_inferior_var(Variable var1, Variable var2) return true if var1 is before var2,...
Definition: pnome-io.c:265
Ppolynome polynome_scalar_addition(Ppolynome, double)
Pmonome make_monome(float, Variable, Value)
Pmonome make_monome(float coeff, Variable var, Value expo) PRIVATE allocates space for,...
Definition: pnome-alloc.c:81
Ppolynome polynome_monome_mult(Ppolynome, Pmonome)
Ppolynome polynome_monome_mult(Ppolynome pp, Pmonome pm) PRIVATE returns pp * pm.
Definition: pnome-bin.c:266
bool monome_equal(Pmonome, Pmonome)
bool monome_equal(Pmonome pm1, Pmonome pm2) PRIVATE returns true if the two monomials are equal same ...
Definition: pnome-private.c:93
void polynome_scalar_mult(Ppolynome *, double)
pnome-scal.c
Ppolynome polynome_power_n(Ppolynome, int)
Ppolynome polynome_power_n(Ppolynome pp, int n) returns pp ^ n (n>=0)
Definition: pnome-scal.c:121
struct Smonome * Pmonome
char * default_variable_name(Variable)
char *default_variable_name(Variable var) returns for variable var the name "Vxxxx" where xxxx are fo...
Definition: pnome-io.c:242
Pvecteur term
float coeff
Pmonome monome
struct Spolynome * succ
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
Definition: vecteur-local.h:89
void * Variable
arithmetique is a requirement for vecteur, but I do not want to inforce it in all pips files....
Definition: vecteur-local.h:60