PIPS
|
#include <stdio.h>
#include <stdlib.h>
#include "linear_assert.h"
#include "boolean.h"
#include "arithmetique.h"
#include "vecteur.h"
#include "polynome.h"
Go to the source code of this file.
Functions | |
Pmonome | new_monome () |
INTLIBRARY. More... | |
Ppolynome | new_polynome () |
allocation of an unitialized polynome (to avoid various direct unchecked call to malloc) More... | |
Pmonome | make_monome (float coeff, Variable var, Value expo) |
Pmonome make_monome(float coeff, Variable var, Value expo) PRIVATE allocates space for, and creates, the monome "coeff*var^expo". More... | |
Ppolynome | make_polynome (float coeff, Variable var, Value expo) |
Ppolynome make_polynome(float coeff, Variable var, Value expo) PRIVATE allocates space for, and creates, the polynome "coeff*var^expo". More... | |
Ppolynome | monome_to_new_polynome (Pmonome pm) |
Ppolynome monome_to_new_polynome(Pmonome pm) PRIVATE allocates space for, and creates the polynomial containing the monomial pointed by pm, which is NOT duplicated but attached to the polynomial. More... | |
Pmonome | monome_dup (Pmonome pm) |
Pmonome monome_dup(Pmonome pm) PRIVATE creates and returns a copy of pm. More... | |
void | monome_rm (Pmonome *ppm) |
void monome_rm(Pmonome* ppm) PRIVATE frees space occupied by monomial *ppm returns *ppm pointing to MONOME_NUL !usage: monome_rm(&pm); More... | |
void | polynome_rm (Ppolynome *ppp) |
void polynome_rm(Ppolynome* ppp) frees space occupied by polynomial *ppp returns *ppp pointing to POLYNOME_NUL !usage: polynome_rm(&pp); More... | |
Ppolynome | polynome_free (Ppolynome pp) |
Ppolynome polynome_free(Ppolynome pp) frees space occupied by polynomial pp returns pp == POLYNOME_NUL !usage: polynome_rm(pp);. More... | |
Ppolynome | polynome_dup (Ppolynome pp) |
Ppolynome polynome_dup(Ppolynome pp) creates and returns a copy of pp. More... | |
Pmonome make_monome(float coeff, Variable var, Value expo) PRIVATE allocates space for, and creates, the monome "coeff*var^expo".
coeff | oeff |
var | ar |
expo | xpo |
Definition at line 81 of file pnome-alloc.c.
References monome_coeff, MONOME_NUL, monome_term, new_monome(), TCST, VALUE_ONE, value_zero_p, and vect_new().
Referenced by make_polynome(), number_replaces_var(), polynome_decr(), polynome_incr(), polynome_scalar_add(), polynome_scalar_addition(), and polynome_sscanf().
Ppolynome make_polynome(float coeff, Variable var, Value expo) PRIVATE allocates space for, and creates, the polynome "coeff*var^expo".
coeff | oeff |
var | ar |
expo | xpo |
Definition at line 100 of file pnome-alloc.c.
References assert, make_monome(), monome_to_new_polynome(), and MONOME_UNDEFINED_P.
Referenced by add_constraint_on_x(), apply_farkas(), complexity_float_add(), complexity_sigma(), create_farkas_poly(), enode_to_polynome(), evalue_to_polynome(), expression_to_polynome(), make_polynome_Xe(), make_single_var_complexity(), mapping_on_broadcast(), my_vecteur_to_polynome(), old_vecteur_to_polynome(), plc_make_proto(), polynome_power_n(), polynome_sum_of_power(), pvecteur_to_polynome(), reference_to_polynome(), sc_enumerate(), vecteur_mult(), and vecteur_to_polynome().
Pmonome monome_dup(Pmonome pm) PRIVATE creates and returns a copy of pm.
pm | m |
Definition at line 132 of file pnome-alloc.c.
References monome_coeff, MONOME_NUL, MONOME_NUL_P, monome_term, MONOME_UNDEFINED, MONOME_UNDEFINED_P, new_monome(), and vect_dup().
Referenced by monome_gen_copy_tree(), polynome_dup(), polynome_monome_add(), polynome_monome_addition(), and polynome_roots().
void monome_rm | ( | Pmonome * | ppm | ) |
void monome_rm(Pmonome* ppm) PRIVATE frees space occupied by monomial *ppm returns *ppm pointing to MONOME_NUL !usage: monome_rm(&pm);
ppm | pm |
Definition at line 154 of file pnome-alloc.c.
References free(), MONOME_NUL, MONOME_NUL_P, monome_term, MONOME_UNDEFINED_P, and vect_rm().
Referenced by do_solve_hardware_constraints_on_volume(), monome_gen_free(), monome_monome_div(), monome_monome_mult(), polynome_decr(), polynome_free(), polynome_incr(), polynome_rm(), polynome_roots(), polynome_scalar_add(), polynome_scalar_addition(), polynome_sscanf(), and polynome_var_subst().
Ppolynome monome_to_new_polynome(Pmonome pm) PRIVATE allocates space for, and creates the polynomial containing the monomial pointed by pm, which is NOT duplicated but attached to the polynomial.
pm | m |
Definition at line 115 of file pnome-alloc.c.
References MONOME_NUL_P, MONOME_UNDEFINED_P, new_polynome(), polynome_monome, POLYNOME_NUL, polynome_succ, and POLYNOME_UNDEFINED.
Referenced by make_polynome(), number_replaces_var(), polynome_dup(), polynome_gen_read(), polynome_monome_add(), and polynome_monome_addition().
Pmonome new_monome | ( | void | ) |
INTLIBRARY.
POLYNOME_INCLUDED.
allocation of an unitialized monome (to avoid various direct unchecked call to malloc)
(void) fprintf(stderr, "%10.3f MB", (sbrk(0) - etext)/(double)(1 << 20));
xit(-1);
Definition at line 48 of file pnome-alloc.c.
References abort, fprintf(), and malloc().
Referenced by make_monome(), monome_del_var(), monome_dup(), and monome_monome_div().
Ppolynome new_polynome | ( | void | ) |
allocation of an unitialized polynome (to avoid various direct unchecked call to malloc)
(void) fprintf(stderr, "%10.3f MB", (sbrk(0) - etext)/(double)(1 << 20));
xit(-1);
Definition at line 64 of file pnome-alloc.c.
References abort, fprintf(), and malloc().
Referenced by monome_to_new_polynome().
Ppolynome polynome_dup(Ppolynome pp) creates and returns a copy of pp.
pp | p |
Definition at line 211 of file pnome-alloc.c.
References monome_dup(), monome_to_new_polynome(), polynome_monome, POLYNOME_NUL, POLYNOME_NUL_P, polynome_succ, POLYNOME_UNDEFINED, and POLYNOME_UNDEFINED_P.
Referenced by complexity_dup(), cutting_conditions(), do_computation_intensity(), is_not_trivial_p(), make_causal_external(), make_causal_internal(), old_polynome_to_sc(), plc_make_distance(), polynome_add(), polynome_addition(), polynome_equal(), polynome_gen_copy_tree(), polynome_monome_div(), polynome_monome_mult(), polynome_nth_root(), polynome_power_n(), polynome_roots(), polynome_sum_of_power(), polynome_to_new_complexity(), polynome_to_sc(), prgm_mapping(), prototype_var_subst(), search_scc_bdt(), and valuer().
Ppolynome polynome_free(Ppolynome pp) frees space occupied by polynomial pp returns pp == POLYNOME_NUL !usage: polynome_rm(pp);.
correct?
pp | p |
Definition at line 191 of file pnome-alloc.c.
References free(), monome_rm(), polynome_monome, POLYNOME_NUL, polynome_succ, and POLYNOME_UNDEFINED_P.
Referenced by complexity_mult(), complexity_stats_add(), do_group_statement_constant(), polynome_addition(), polynome_monome_addition(), polynome_scalar_multiply(), and valuer().
void polynome_rm | ( | Ppolynome * | ppp | ) |
void polynome_rm(Ppolynome* ppp) frees space occupied by polynomial *ppp returns *ppp pointing to POLYNOME_NUL !usage: polynome_rm(&pp);
correct?
ppp | pp |
Definition at line 170 of file pnome-alloc.c.
References free(), monome_rm(), polynome_monome, POLYNOME_NUL, polynome_succ, and POLYNOME_UNDEFINED_P.
Referenced by complexity_float_add(), complexity_sigma(), cutting_conditions(), do_computation_intensity(), do_solve_hardware_constraints_on_volume(), expression_to_polynome(), make_causal_external(), make_causal_internal(), make_single_var_complexity(), number_replaces_var(), polynome_add(), polynome_gen_free(), polynome_monome_add(), polynome_monome_addition(), polynome_mult(), polynome_nth_root(), polynome_power_n(), polynome_roots(), polynome_scalar_mult(), polynome_sigma(), polynome_sum_of_power(), polynome_var_subst(), power_op_handler(), reference_to_polynome(), and simplify_expression().