PIPS
|
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "arithmetique.h"
#include "linear_assert.h"
#include "boolean.h"
#include "vecteur.h"
#include "contrainte.h"
#include "sc.h"
Go to the source code of this file.
Macros | |
#define | MALLOC(s, t, f) malloc(s) |
package sc More... | |
Functions | |
Psysteme | sc_new (void) |
Psysteme sc_new(): alloue un systeme vide, initialise tous les champs avec des valeurs nulles, puis retourne ce systeme en resultat. More... | |
Pbase | sc_to_minimal_basis (Psysteme ps) |
creation d'une base contenant toutes les variables apparaissant avec des coefficients non-nuls dans les egalites ou les inegalites de ps More... | |
void | sc_creer_base (Psysteme ps) |
void sc_creer_base(Psysteme ps): initialisation des parametres dimension et base d'un systeme lineaire en nombres entiers ps, i.e. More... | |
void | sc_fix (Psysteme s) |
fix system s for coherency of the base and number of things. More... | |
Pbase | sc_base_dup (int nbv, Pbase b) |
Variable * sc_base_dup(int nbv, Variable * b): duplication de la table des variables base, qui contient nbv elements. More... | |
Psysteme | sc_dup (Psysteme ps) |
Psysteme sc_dup(Psysteme ps): should becomes a link. More... | |
Psysteme | sc_copy (Psysteme ps) |
Psysteme sc_copy(Psysteme ps): duplication d'un systeme (allocation et copie complete des champs sans sharing) More... | |
void | sc_rm (Psysteme ps) |
void sc_rm(Psysteme ps): liberation de l'espace memoire occupe par le systeme de contraintes ps; More... | |
Psysteme | sc_init_with_sc (Psysteme sc) |
This function returns a new empty system which has been initialized with the same dimension and base than sc. More... | |
Psysteme | sc_empty (Pbase b) |
Psysteme sc_empty(Pbase b): build a Psysteme with one unfeasible constraint to define the empty subspace in a space R^n, where n is b's dimension. More... | |
Psysteme | sc_rn (Pbase b) |
Psysteme sc_rn(Pbase b): build a Psysteme without constraints to define R^n, where n is b's dimension. More... | |
bool | sc_empty_p (Psysteme sc) |
bool sc_empty_p(Psysteme sc): check if the set associated to sc is the constant sc_empty or not. More... | |
bool | sc_rn_p (Psysteme sc) |
bool sc_rn_p(Psysteme sc): check if the set associated to sc is the whole space, rn More... | |
void | sc_add_egalite (Psysteme p, Pcontrainte e) |
void sc_add_egalite(Psysteme p, Pcontrainte e): macro ajoutant une egalite e a un systeme p; la base n'est pas mise a jour; il faut faire ensuite un appel a sc_creer_base(); il vaut mieux utiliser sc_make() More... | |
void | sc_add_inegalite (Psysteme p, Pcontrainte i) |
void sc_add_inegalite(Psysteme p, Pcontrainte i): macro ajoutant une inegalite i a un systeme p; la base n'est pas mise a jour; il faut ensuite faire un appel a sc_creer_base(); il vaut mieux utiliser sc_make(); More... | |
void | sc_add_egalites (Psysteme p, Pcontrainte i) |
void | sc_add_inegalites (Psysteme p, Pcontrainte i) |
package sc
Definition at line 42 of file sc_alloc.c.
void sc_add_egalite | ( | Psysteme | p, |
Pcontrainte | e | ||
) |
void sc_add_egalite(Psysteme p, Pcontrainte e): macro ajoutant une egalite e a un systeme p; la base n'est pas mise a jour; il faut faire ensuite un appel a sc_creer_base(); il vaut mieux utiliser sc_make()
sc_add_eg est (a peu pres) equivalent a sc_add_egalite, mais le parametre e n'est utilise qu'une fois ce qui permet d'eviter des surprises en cas de e++ et autres effects de bords a chaque evaluation de e; sc_add_egalite est donc plus sur que sc_add_eg
If the system basis should be updated, use sc_constraint_add() and the two related function in sc_insert.c
Definition at line 389 of file sc_alloc.c.
References assert, Ssysteme::egalites, Ssysteme::nb_eq, and Scontrainte::succ.
Referenced by adg_sc_dup(), base_complete(), better_elim_var_with_eg(), broadcast_conditions(), broadcast_dimensions(), broadcast_of_dataflow(), completer_base(), completer_n_base(), compose_vvs(), dj_simple_inegs_to_eg(), do_solve_hardware_constraints_on_nb_proc(), elim_var_with_eg(), find_implicit_equation(), generate_system_for_equal_variables(), generate_work_sharing_system(), hpfc_compute_align_constraints(), hpfc_compute_distribute_constraints(), hpfc_compute_entity_to_new_declaration(), hpfc_compute_unicity_constraints(), local_tile_constraints(), loop_bounds_to_tile_bounds(), loop_regions_normalize(), make_expression_equalities(), make_scanning_over_one_tile(), mapping_on_broadcast(), new_elim_var_with_eg(), nullify_factors(), old_polynome_to_sc(), partial_broadcast_coefficients(), plc_elim_var_with_eg(), polynome_to_sc(), prepare_reindexing(), prototype_dimension(), sc_append(), sc_constraint_add(), sc_copy(), sc_dup1(), sc_elim_double_constraints(), sc_find_equalities(), sc_gen_read(), sc_restricted_to_variables_transitive_closure(), sc_safe_append(), sc_strong_normalize2(), sc_strong_normalize_and_check_feasibility(), sc_strong_normalize_and_check_feasibility2(), separate_variables(), set_dimensions_of_local_variable_family(), stmt_bdt_directions(), tile_change_of_basis(), transformer_add_sign_information(), transformer_equality_fix_point(), translate_global_value(), valuer(), vvs_on_vvs(), and vvs_to_sc().
void sc_add_egalites | ( | Psysteme | p, |
Pcontrainte | i | ||
) |
Adjust the number of equalities
Definition at line 415 of file sc_alloc.c.
References contrainte_succ, CONTRAINTE_UNDEFINED, CONTRAINTE_UNDEFINED_P, and nb_elems_list().
Referenced by add_bounding_box_constraints().
void sc_add_inegalite | ( | Psysteme | p, |
Pcontrainte | i | ||
) |
void sc_add_inegalite(Psysteme p, Pcontrainte i): macro ajoutant une inegalite i a un systeme p; la base n'est pas mise a jour; il faut ensuite faire un appel a sc_creer_base(); il vaut mieux utiliser sc_make();
sc_add_ineg est (a peu pres) equivalent a sc_add_inegalite; cf supra pour l'explication des differences
Definition at line 406 of file sc_alloc.c.
References assert, Ssysteme::inegalites, Ssysteme::nb_ineq, and Scontrainte::succ.
Referenced by add_constraint_on_x(), adg_get_conjonctions(), adg_get_predicate_of_loops(), adg_sc_dup(), build_integer_sc_nredund(), build_list_of_min(), build_sc_nredund_1pass_ofl_ctrl(), comp_exec_domain(), compute_entity_to_declaration_constraints(), dj_simple_inegs_to_eg(), do_solve_hardware_constraints_on_nb_proc(), expressions_to_predicate(), generate_work_sharing_system(), get_bounds_expression(), hpfc_compute_distribute_constraints(), hpfc_compute_entity_to_new_declaration(), include_parameters_in_sc(), ineq_redund_with_sc_p(), interlaced_basic_workchunk_regions_p(), loop_regions_normalize(), make_bounds(), make_dual(), make_tile_constraints(), my_adg_expressions_to_predicate(), processor_loop(), re_do_it(), sc_append(), sc_constraint_add(), sc_copy(), sc_dup1(), sc_gen_read(), sc_image_computation(), sc_multiply_constant_terms(), sc_restricted_to_variables_transitive_closure(), sc_safe_append(), sc_strong_normalize_and_check_feasibility(), sc_supress_parallel_redund_constraints(), sc_supress_same_constraints(), separate_variables(), separate_variables_2(), tile_hyperplane_constraints(), tile_membership(), tile_membership_constraints(), transformer_add_sign_information(), and valuer().
void sc_add_inegalites | ( | Psysteme | p, |
Pcontrainte | i | ||
) |
Adjust the number of inequalities
Definition at line 432 of file sc_alloc.c.
References contrainte_succ, CONTRAINTE_UNDEFINED, CONTRAINTE_UNDEFINED_P, and nb_elems_list().
Referenced by add_bounding_box_constraints(), and sc_bounded_normalization().
Variable * sc_base_dup(int nbv, Variable * b): duplication de la table des variables base, qui contient nbv elements.
Modifications:
ancien nom: tab_dup
Definition at line 162 of file sc_alloc.c.
References assert, base_copy(), and base_dimension.
Psysteme sc_copy(Psysteme ps): duplication d'un systeme (allocation et copie complete des champs sans sharing)
replace sc_dup(ps), which now becomes a link
Ancien nom (obsolete): cp_sc()
Modification: L'ordre des egalites, inegalites, la base et des variables dans le syteme est recopie egalement. (CA, 28/08/91),(DN,24/6/02)
We can use contrainte_copy, contraintes_copy here If we test the size of system here for debugging purposes, il may cost more time ...
Definition at line 230 of file sc_alloc.c.
References Ssysteme::base, base_copy(), contrainte_new(), contrainte_vecteur, cp, Ssysteme::dimension, Ssysteme::egalites, eq, Ssysteme::inegalites, Ssysteme::nb_eq, Ssysteme::nb_ineq, sc_add_egalite(), sc_add_inegalite(), sc_new(), vect_copy(), and VECTEUR_UNDEFINED.
Referenced by ineq_redund_with_sc_p(), interlaced_basic_workchunk_regions_p(), main(), sc_append(), sc_dup(), sc_fourier_motzkin_feasibility_ofl_ctrl_timeout_ctrl(), sc_gen_copy_tree(), sc_intersection(), sc_intersection_empty_p_ofl(), sc_janus_feasibility_ofl_ctrl_timeout_ctrl(), sc_normalize2(), sc_projection_concat_proj_on_variables(), sc_safe_append(), sc_safe_intersection(), sc_simplexe_feasibility_ofl_ctrl_timeout_ctrl(), sc_strong_normalize2(), sc_strong_normalize_and_check_feasibility(), sc_strong_normalize_and_check_feasibility2(), text_pointer_value(), text_points_to_relation(), text_transformer(), transformer_derivative_constraints(), and transformer_list_generic_transitive_closure().
void sc_creer_base | ( | Psysteme | ps | ) |
void sc_creer_base(Psysteme ps): initialisation des parametres dimension et base d'un systeme lineaire en nombres entiers ps, i.e.
de la base implicite correspondant aux egalites et inegalites du systeme;
Attention, cette base ne reste pas coherente apres un ajout de nouvelles egalites ou inegalites (risque d'ajout de nouvelles variables), ni apres des suppressions (certaines variables de la base risque de n'apparaitre dans aucune contrainte).
dimension : nombre de variables du systeme (i.e. differentes de TCST, le terme constant)
Modifications:
Definition at line 129 of file sc_alloc.c.
References assert, sc_to_minimal_basis(), and vect_size().
Referenced by adg_compact_quast(), adg_dup_disjunctive_nodes(), adg_get_conjonctions(), adg_get_predicate_of_loops(), adg_path_max_source(), adg_sc_update_base(), adg_update_dfg(), algorithm_tiling(), append_eg(), base_complete(), better_elim_var_with_eg(), broadcast_of_dataflow(), build_and_test_dependence_context(), build_sc_with_several_uniform_ref(), build_third_comb(), change_base_in_sc(), clean_shared_io_system(), clean_the_system(), comp_exec_domain(), completer_base(), completer_n_base(), compute_entity_to_declaration_constraints(), creer_predicat(), dependence_system_add_lci_and_di(), dj_simple_inegs_to_eg(), elim_var_with_eg(), expressions_to_predicate(), extract_lattice(), find_implicit_equation(), generate_distributed_io_system(), generate_shared_io_system(), generate_system_for_distributed_variable(), generate_system_for_equal_variables(), generate_work_sharing_system(), hpfc_compute_align_constraints(), hpfc_compute_distribute_constraints(), hpfc_compute_entity_to_new_declaration(), hpfc_compute_unicity_constraints(), include_trans_in_sc(), ineq_redund_with_sc_p(), interlaced_basic_workchunk_regions_p(), loop_basic_workchunk_to_workchunk(), loop_iteration_domaine_to_sc(), loop_regions_normalize(), make_dual(), make_expression_equalities(), make_scanning_over_one_tile(), make_scanning_over_tiles(), make_tile_constraints(), my_adg_expressions_to_predicate(), my_sc_normalize(), my_substitute_var_with_vec(), new_elim_var_with_eg(), nullify_factors(), old_polynome_to_sc(), partial_broadcast_coefficients(), plc_elim_var_with_eg(), polynome_to_sc(), prepare_reindexing(), prototype_dimension(), put_variables_in_ordered_lists(), re_do_it(), region_translation(), remove_variables_if_possible(), sc_concatenate(), sc_constraint_add(), sc_find_equalities(), sc_fix(), sc_fourier_motzkin_feasibility_ofl_ctrl(), sc_make(), sc_minmax_of_variable2(), sc_restricted_to_variables_transitive_closure(), sc_simplex_feasibility_ofl_ctrl_fixprec(), sc_substitute_dimension(), sc_supress_parallel_redund_constraints(), sc_supress_same_constraints(), simplify_deducable_variables(), simplify_minmax_contrainte(), stmt_bdt_directions(), substitute_var_with_vec(), system_contains_var(), system_new_var_subst(), tile_hyperplane_constraints(), tile_membership(), tile_membership_constraints(), transform_in_ineq(), transformer_equality_fix_point(), valuer(), and vvs_to_sc().
Psysteme sc_dup(Psysteme ps): should becomes a link.
Ancien nom (obsolete): cp_sc()
Definition at line 176 of file sc_alloc.c.
References sc_copy().
Referenced by __attribute__(), add_elt_to_sys_list(), adg_compact_quast(), adg_dataflowgraph(), adg_dataflowgraph_with_extremities(), adg_make_disjunctions(), adg_predicate_list_dup(), adg_update_dfg(), algorithm_row_echelon_generic(), analyze_quast(), base_complete(), broadcast_conditions(), broadcast_of_dataflow(), build_first_comb(), build_list_of_min(), build_sc_with_several_uniform_ref(), build_third_comb(), build_third_subcomb(), check_range_wrt_precondition(), combiner_ofl_with_test(), compatible_pc_p(), completer_base(), completer_n_base(), converti_psysmin_psysmax(), convex_cells_intersection_p(), copy_write_statement_with_cumulated_regions(), dataflows_on_reference(), dependence_cone_positive(), dj_intersection_ofl_ctrl(), dj_simple_inegs_to_eg(), do_check_isolate_statement_preconditions_on_call(), do_group_statement_constant(), do_isolate_statement_preconditions_satisified_p(), do_solve_hardware_constraints_on_nb_proc(), edge_weight(), efficient_sc_check_inequality_feasibility(), elementary_convex_union(), elim_redund_sc_with_sc(), evaluate_var_to_complexity(), expression_and_precondition_to_integer_interval(), expression_less_than_in_context(), find_implicit_equation(), find_pattern(), first_precondition_of_module(), GENERATION(), hyperplane(), integer_expression_and_precondition_to_integer_interval(), integer_value_and_precondition_to_integer_interval(), local_tile_constraints(), loop_bounds_to_tile_bounds(), loop_executed_approximation(), loop_nest_to_tile(), main(), make_bdt_initial(), make_causal_external(), make_causal_internal(), make_load_blocks(), make_movements_loop_body_wp65(), make_rectangular_area(), make_scanning_over_one_tile(), make_scanning_over_tiles(), make_store_blocks(), mapping_on_broadcast(), movement_computation(), new_system_with_only_live_variable(), pa_dup(), pa_intersect_complement(), pa_intersect_system(), pa_path_to_disjunct_ofl_ctrl(), pa_path_to_disjunct_rule4_ofl_ctrl(), pa_path_to_few_disjunct_ofl_ctrl(), pa_supress_same_constraints(), pa_system_difference_ofl_ctrl(), parallel_tiling(), parametric_transformer_empty_p(), partial_eval_reference(), plint(), precondition_minmax_of_value(), predicate_dup(), prepare_reindexing(), processor_loop(), region_range_nul_p(), region_to_minimal_dimensions(), regions_may_convex_hull(), regions_must_convex_hull(), regions_transformer_apply(), sc_cute_convex_hull(), sc_elim_redund_with_first_ofl_ctrl(), sc_enveloppe_chernikova_ofl_ctrl(), sc_faisabilite_optim(), sc_find_equalities(), sc_image_computation(), sc_minmax_of_variables(), sc_projection_concat_proj_on_variables(), sc_resol_smith(), sc_restricted_to_variables_transitive_closure(), sc_supress_parallel_redund_constraints(), sc_supress_same_constraints(), search_scc_bdt(), separate_variables(), separate_variables_2(), set_dimensions_of_local_variable_family(), simplify_minmax_contrainte(), sl_dup(), smith_int(), stmt_bdt_directions(), sys_int_fais(), sys_int_redond(), syst_smith(), systeme_to_loop_nest(), TestDependence(), TestDiCnst(), TestDiVariables(), text_region_no_action(), tiling_transformation(), top_down_abc_dimension(), transform_in_ineq(), transformer_combine(), transformer_convex_hulls(), transformer_general_intersection(), transformer_normalize(), translate_to_module_frame(), true_copy_schedule(), unimodular(), variable_to_dimensions(), xml_Call(), xml_Loop(), xml_Pattern_Paving(), xml_Region_Range(), and xml_tiling().
Psysteme sc_empty(Pbase b): build a Psysteme with one unfeasible constraint to define the empty subspace in a space R^n, where n is b's dimension.
b is shared by sc.
The unfeasible constraint is the equations 0 == 1
Definition at line 319 of file sc_alloc.c.
References base_dimension, contrainte_make(), CONTRAINTE_UNDEFINED, eq, sc_make(), TCST, VALUE_ONE, and vect_new().
Referenced by algorithm_row_echelon_generic(), algorithm_tiling(), build_sc_nredund_1pass_ofl_ctrl(), dependence_cone_positive(), dj_empty(), elementary_convex_union(), empty_transformer(), get_other_constraints(), main(), pa_empty(), region_sc_projection_along_variables_ofl_ctrl(), region_sc_projection_ofl_along_parameter(), sc_bounded_normalization(), sc_elim_redund_with_first_ofl_ctrl(), sc_enveloppe_chernikova_ofl_ctrl(), sc_find_equalities(), sc_min(), sc_normalize(), sc_projection_concat_proj_on_variables(), sc_projection_optim_along_vecteur_ofl(), sc_restricted_to_variables_transitive_closure(), sc_safe_build_sc_nredund_1pass(), sc_safe_build_sc_nredund_2pass(), sc_safe_elim_db_constraints(), sc_safe_elim_redund(), sc_safe_kill_db_eg(), sc_strong_normalize_and_check_feasibility(), sc_supress_parallel_redund_constraints(), transformer_combine(), transformer_convex_hulls(), transformer_empty(), transformer_list_generic_transitive_closure(), transformer_normalize(), and transformer_projection_with_redundancy_elimination_and_check().
bool sc_empty_p(Psysteme sc): check if the set associated to sc is the constant sc_empty or not.
More expensive tests like sc_faisabilite() are necessary to handle the general case.
Definition at line 350 of file sc_alloc.c.
References assert, contrainte_vecteur, empty, eq, TCST, vect_size(), vecteur_val, and vecteur_var.
Referenced by adg_update_dfg(), algorithm_row_echelon_generic(), algorithm_tiling(), build_and_test_dependence_context(), build_integer_sc_nredund(), build_sc_nredund_1pass_ofl_ctrl(), build_sc_nredund_2pass_ofl_ctrl(), build_third_comb(), c_convex_effects_on_actual_parameter_forward_translation(), cell_reference_sc_exact_projection_along_variable(), convex_cells_inclusion_p(), convex_cells_intersection_p(), dependence_cone_positive(), disjunction_to_list_of_regions(), dj_empty_p(), dj_simple_inegs_to_eg(), dj_system_complement(), elementary_convex_union(), expression_less_than_in_context(), generate_io_collect_or_update(), generate_optional_if(), get_other_constraints(), main(), my_system_remove_variables(), pa_empty_p(), pa_path_to_disjunct_ofl_ctrl(), pa_path_to_disjunct_rule4_ofl_ctrl(), pa_reduce_simple_complement(), pa_system_difference_ofl_ctrl(), parametric_transformer_empty_p(), region_exact_projection_along_parameters(), region_exact_projection_along_variable(), region_exact_projection_along_variables(), region_inf_difference(), region_intersection(), region_non_exact_projection_along_parameters(), region_non_exact_projection_along_variables(), region_sup_difference(), regions_may_convex_hull(), regions_must_convex_hull(), regions_transformer_apply(), remove_temporal_variables_from_system(), sc_enveloppe_chernikova_ofl_ctrl(), sc_faisabilite_optim(), sc_feasibility_ofl_ctrl(), sc_fm_project_variables(), sc_fourier_motzkin_feasibility_ofl_ctrl(), sc_lexicographic_sort(), sc_min(), sc_minmax_of_variable_optim(), sc_normalize(), sc_proj_optim_on_di_ofl(), sc_projection_optim_along_vecteur_ofl(), sc_remove_large_coef(), sc_restricted_to_variables_transitive_closure(), sc_reversal(), sc_safe_append(), sc_safe_build_sc_nredund_1pass(), sc_safe_build_sc_nredund_2pass(), sc_supress_parallel_redund_constraints(), sc_vect_sort(), sl_fprint_tab(), sl_max_constraints_nb(), statement_weakly_feasible_p(), system_sorted_text_format(), TestDependence(), top_down_abc_dimension(), transformer_argument_general_consistency_p(), transformer_combine(), transformer_convex_hulls(), transformer_filter(), transformer_is_empty_p(), transformer_normalize(), and transformer_projection_with_redundancy_elimination_and_check().
void sc_fix | ( | Psysteme | s | ) |
fix system s for coherency of the base and number of things.
Definition at line 141 of file sc_alloc.c.
References Ssysteme::base, base_rm, Ssysteme::egalites, Ssysteme::inegalites, nb_elems_list(), Ssysteme::nb_eq, Ssysteme::nb_ineq, and sc_creer_base().
Referenced by extract_common_syst(), sc_cute_convex_hull(), sc_feasibility_ofl_ctrl(), sc_janus_feasibility_ofl_ctrl_timeout_ctrl(), and transitive_closure_system().
This function returns a new empty system which has been initialized with the same dimension and base than sc.
Definition at line 303 of file sc_alloc.c.
References Ssysteme::base, base_copy(), Ssysteme::dimension, and sc_new().
Referenced by bound_distribution(), bound_generation(), build_sc_machine(), build_sc_nredund_1pass_ofl_ctrl(), constraint_distribution(), elim_redund_sc_with_sc(), movement_computation(), parallel_tiling(), and sc_projection_concat_proj_on_variables().
Psysteme sc_new | ( | void | ) |
Psysteme sc_new(): alloue un systeme vide, initialise tous les champs avec des valeurs nulles, puis retourne ce systeme en resultat.
Attention, sc_new ne fabrique pas un systeme coherent comportant une base. Un tel systeme s'obtient par appel a la fonction sc_creer_base, apres avoir ajoute des equations et des inequations au systeme. La base n'est pas entretenue lorsque le systeme est modifie.
Ancien nom: init_systeme()
Definition at line 55 of file sc_alloc.c.
References assert, Ssysteme::base, BASE_NULLE, Ssysteme::dimension, Ssysteme::egalites, Ssysteme::inegalites, malloc(), Ssysteme::nb_eq, and Ssysteme::nb_ineq.
Referenced by adg_get_conjonctions(), adg_get_predicate_of_loops(), adg_sc_dup(), args_to_transformer(), base_complete(), better_elim_var_with_eg(), broadcast_dimensions(), broadcast_of_dataflow(), build_and_test_dependence_context(), build_contraction_matrices(), build_integer_sc_nredund(), build_sc_with_several_uniform_ref(), c_convex_effects_on_actual_parameter_forward_translation(), comp_exec_domain(), completer_base(), completer_n_base(), compose_vvs(), compute_entity_to_declaration_constraints(), creer_Psysteme(), cutting_conditions(), do_isolate_statement_preconditions_satisified_p(), effects_to_dma(), elim_var_with_eg(), entity_assumed_declaration_sc(), expressions_to_predicate(), find_implicit_equation(), generate_work_sharing_system(), get_bounds_expression(), get_unsatisfied_system(), hpfc_compute_align_constraints(), hpfc_compute_distribute_constraints(), hpfc_compute_unicity_constraints(), include_parameters_in_sc(), loop_basic_workchunk_to_workchunk(), loop_iteration_domaine_to_sc(), loop_nest_to_wp65_code(), loop_regions_normalize(), main(), make_bounds(), make_causal_external(), make_causal_internal(), make_context_of_loop(), make_dual(), make_expression_equalities(), make_reindex(), make_tile_constraints(), mapping_on_broadcast(), matrix_to_system(), my_adg_expressions_to_predicate(), new_elim_var_with_eg(), nullify_factors(), old_polynome_to_sc(), partial_broadcast_coefficients(), plc_elim_var_with_eg(), plc_make_distance(), polynome_to_sc(), prepare_reindexing(), prettyprint_dependence_graph(), prettyprint_dependence_graph_view(), prototype_dimension(), re_do_it(), read_syst_from_file(), sc_copy(), sc_dup1(), sc_full(), sc_gen_read(), sc_image_computation(), sc_init_with_sc(), sc_of_constrs(), sc_restricted_to_variables_transitive_closure(), sc_rn(), search_scc_bdt(), separate_variables(), separate_variables_2(), simple_reference_to_convex_reference_conversion(), stmt_bdt_directions(), test_file(), tile_hyperplane_constraints(), tile_membership(), tile_membership_constraints(), transformer_equality_fix_point(), valuer(), vvs_on_vvs(), and vvs_to_sc().
void sc_rm | ( | Psysteme | ps | ) |
void sc_rm(Psysteme ps): liberation de l'espace memoire occupe par le systeme de contraintes ps;
utilisation standard: sc_rm(s); s = NULL;
comme toujours, les champs pointeurs sont remis a NULL avant la desallocation pour detecter au plus tot les erreurs dues a l'allocation dynamique de memoire
Definition at line 277 of file sc_alloc.c.
References contraintes_free(), free(), vect_rm(), VECTEUR_NUL_P, and VECTEUR_UNDEFINED.
Referenced by __attribute__(), add_var_sup(), algorithm_row_echelon_generic(), algorithm_tiling(), analyze_quast(), base_complete(), broadcast_of_dataflow(), build_sc_nredund_1pass_ofl_ctrl(), cell_reference_sc_exact_projection_along_variable(), cell_reference_system_remove_psi_variables(), cell_reference_system_remove_rho_variables(), check_range_wrt_precondition(), combiner_ofl_with_test(), completer_base(), completer_n_base(), constraints_to_loop_bound(), convex_cells_intersection_p(), dependence_cone_positive(), disjunction_to_list_of_regions(), do_array_expansion(), do_check_isolate_statement_preconditions_on_call(), dual_positive(), efficient_sc_check_inequality_feasibility(), eq_in_ineq(), find_eg(), find_pattern(), generate_remapping_code(), generate_remapping_system(), GENERATION(), get_other_constraints(), hpf_remapping(), hpfc_simplify_condition(), ineq_redund_with_sc_p(), interlaced_basic_workchunk_regions_p(), loop_executed_approximation(), loop_regions_normalize(), main(), make_causal_external(), make_causal_internal(), make_rectangular_area(), make_reindex(), mapping_on_broadcast(), move_transformer(), new_loop_bound(), old_transformer_free(), parallel_tiling(), parametric_transformer_empty_p(), plint(), primal_positive(), processor_loop(), region_exact_projection_along_parameters(), region_exact_projection_along_variable(), region_exact_projection_along_variables(), region_non_exact_projection_along_parameters(), region_non_exact_projection_along_variables(), region_sc_projection_ofl_along_parameter(), regions_may_convex_hull(), regions_must_convex_hull(), regions_transformer_apply(), sc_add_normalize_eq(), sc_add_normalize_ineq(), sc_append(), sc_bounded_normalization(), sc_cute_convex_hull(), sc_elim_db_constraints(), sc_elim_double_constraints(), sc_elim_redund(), sc_faisabilite_optim(), sc_find_equalities(), sc_fourier_motzkin_feasibility_ofl_ctrl(), sc_fourier_motzkin_feasibility_ofl_ctrl_timeout_ctrl(), sc_free(), sc_fusion(), sc_gen_free(), sc_intersection(), sc_intersection_empty_p_ofl(), sc_janus_feasibility_ofl_ctrl_timeout_ctrl(), sc_kill_db_eg(), sc_minmax_of_variable2(), sc_minmax_of_variable_optim(), sc_normalize(), sc_normalize2(), sc_of_sg(), sc_projection_optim_along_vecteur_ofl(), sc_rational_feasibility(), sc_resol_smith(), sc_restricted_to_variables_transitive_closure(), sc_safe_append(), sc_safe_elim_db_constraints(), sc_safe_intersection(), sc_safe_kill_db_eg(), sc_simplexe_feasibility_ofl_ctrl_timeout_ctrl(), sc_strong_normalize2(), sc_strong_normalize_and_check_feasibility(), sc_strong_normalize_and_check_feasibility2(), sc_triang_elim_redund(), sc_union(), search_scc_bdt(), set_dimensions_of_local_variables(), smith_int(), statement_insertion_fix_access(), sys_int_fais(), syst_smith(), systeme_to_loop_nest(), TestDependence(), TestDiCnst(), text_pointer_value(), text_points_to_relation(), text_region_no_action(), text_transformer(), top_down_abc_dimension(), transform_in_ineq(), transformer_combine(), transformer_convex_hulls(), transformer_normalize(), translate_to_module_frame(), var_ecart_sup(), xml_Region_Range(), and xml_Task().
Psysteme sc_rn(Pbase b): build a Psysteme without constraints to define R^n, where n is b's dimension.
b is shared by sc.
Definition at line 336 of file sc_alloc.c.
References base_dimension, and sc_new().
Referenced by algorithm_row_echelon_generic(), algorithm_tiling(), build_third_comb(), elementary_convex_union(), generate_distributed_io_system(), generate_shared_io_system(), generate_system_for_distributed_variable(), generate_system_for_equal_variables(), hpfc_compute_entity_to_new_declaration(), loop_basic_workchunk_to_workchunk(), prepare_reindexing(), regions_must_convex_hull(), sc_cute_convex_hull(), sc_enveloppe_chernikova_ofl_ctrl(), sc_restricted_to_variables_transitive_closure(), and TestDependence().
bool sc_rn_p(Psysteme sc): check if the set associated to sc is the whole space, rn
Definition at line 369 of file sc_alloc.c.
References assert.
Referenced by build_sc_nredund_1pass_ofl_ctrl(), build_sc_nredund_2pass_ofl_ctrl(), build_third_comb(), cell_reference_sc_exact_projection_along_variable(), convex_cells_inclusion_p(), convex_cells_intersection_p(), dependence_cone_positive(), elementary_convex_union(), expression_less_than_in_context(), generate_optional_if(), main(), my_system_remove_variables(), region_exact_projection_along_parameters(), region_exact_projection_along_variable(), region_exact_projection_along_variables(), region_inf_difference(), region_non_exact_projection_along_parameters(), region_non_exact_projection_along_variables(), region_sup_difference(), regions_may_convex_hull(), regions_must_convex_hull(), regions_transformer_apply(), remove_temporal_variables_from_system(), sc_elim_simple_redund_with_eq(), sc_elim_simple_redund_with_ineq(), sc_enveloppe_chernikova_ofl_ctrl(), sc_feasibility_ofl_ctrl(), sc_fusion(), sc_lexicographic_sort(), sc_minmax_of_variable(), sc_normalize(), sc_remove_large_coef(), sc_restricted_to_variables_transitive_closure(), sc_reversal(), sc_safe_append(), sc_safe_build_sc_nredund_1pass(), sc_safe_build_sc_nredund_2pass(), sc_vect_sort(), and top_down_abc_dimension().
creation d'une base contenant toutes les variables apparaissant avec des coefficients non-nuls dans les egalites ou les inegalites de ps
great optimization
Definition at line 76 of file sc_alloc.c.
References BASE_NULLE, Ssysteme::egalites, Ssysteme::inegalites, linear_hashtable_free(), linear_hashtable_isin(), linear_hashtable_make(), linear_hashtable_put_once(), seen, Scontrainte::succ, Svecteur::succ, TCST, VALUE_ONE, var_of, vect_chain(), Scontrainte::vecteur, and VECTEUR_NUL.
Referenced by gcd_and_constant_dependence_test(), parametric_transformer_empty_p(), partial_eval_reference(), sc_creer_base(), sc_projection_optim_along_vecteur_ofl(), simplify_float_constraint_system(), transformer_convex_hulls(), transformer_derivative_constraints(), transformer_derivative_fix_point(), transformer_list_generic_transitive_closure(), and transformer_projection_with_redundancy_elimination_and_check().