vecteur-local.h File Reference

#include "arithmetique.h"
Include dependency graph for vecteur-local.h:

Go to the source code of this file.

Data Structures

struct  Svecteur
 le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique More...

Defines

#define VARIABLE_UNDEFINED   ((Variable) 0)
#define VARIABLE_UNDEFINED_P(v)   ((v)==VARIABLE_UNDEFINED)
#define VARIABLE_DEFINED_P(v)   ((v)!=VARIABLE_UNDEFINED)
#define VECTEUR_NUL   ((Pvecteur) 0)
 DEFINITION DU VECTEUR NUL.
#define VECTEUR_NUL_P(v)   ((v)==VECTEUR_NUL)
#define VECTEUR_UNDEFINED   ((Pvecteur) 0)
#define VECTEUR_UNDEFINED_P(v)   ((v)==VECTEUR_UNDEFINED)
#define PlinX   Pvecteur
 definition de la valeur de type PlinX==Pvecteur qui correspond a un vecteur indefini parce que l'expression correspondante n'est pas lineaire (Malik Imadache, Jean Goubault ?)
#define NONEXPLIN   ((PlinX)-1)
#define print_vect(s)   vect_fprint(stdout,(s))
 MACROS SUR LES VECTEURS.
#define var_of(varval)   ((varval)->var)
#define val_of(varval)   ((varval)->val)
#define vecteur_var(v)   ((v)->var)
#define vecteur_val(v)   ((v)->val)
#define vecteur_succ(v)   ((v)->succ)
#define TCST   ((Variable) 0)
 VARIABLE REPRESENTANT LE TERME CONSTANT.
#define term_cst(varval)   ((varval)->var == TCST)
#define BASE_NULLE   VECTEUR_NUL
 MACROS SUR LES BASES.
#define BASE_NULLE_P(b)   ((b)==VECTEUR_NUL)
#define BASE_UNDEFINED   ((Pbase) 0)
#define BASE_UNDEFINED_P(b)   ((b)==BASE_UNDEFINED)
#define base_dimension(b)   vect_size((Pvecteur)(b))
#define base_add_dimension(b, v)   vect_chg_coeff((Pvecteur *)(b),(v),VALUE_ONE)
#define base_rm(b)   (vect_rm((Pvecteur)(b)), (b)=BASE_NULLE)
#define OFL_CTRL   2
 I do thing that overflows are managed in a very poor manner.
#define FWD_OFL_CTRL   1
#define NO_OFL_CTRL   0

Typedefs

typedef void * Variable
 package sur les vecteurs creux et les bases
typedef char *(* get_variable_name_t )(Variable)
typedef struct Svecteur Svecteur
 le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
typedef struct SvecteurPvecteur
typedef struct Svecteur Sbase
 STRUCTURE D'UNE BASE.
typedef struct SvecteurPbase
typedef struct
linear_hashtable_st
linear_hashtable_pt

Define Documentation

#define base_add_dimension ( b,
v   )     vect_chg_coeff((Pvecteur *)(b),(v),VALUE_ONE)
#define base_dimension ( b   )     vect_size((Pvecteur)(b))
#define BASE_NULLE   VECTEUR_NUL

MACROS SUR LES BASES.

Definition at line 135 of file vecteur-local.h.

Referenced by algorithm_tiling(), array_translation_sc(), arrays_last_dims_linearization_sc(), arrays_same_first_dimensions_sc(), base_copy(), base_difference(), base_dup(), base_union(), build_and_test_dependence_context(), build_transfer_equations(), clean_shared_io_system(), compare_region_constraints(), compute_iteration_domain(), constraint_without_vars(), create_tile_basis(), descriptor_inequality_add(), dual_pivot(), empty_transformer(), entity_list_to_base(), extract_lattice(), find_motif(), find_pattern(), gener_DOSEQ(), generic_minmax_to_transformer(), ineq_redund_with_sc_p(), is_good_direction_p(), loop_nest_to_wp65_code(), loop_scalarization(), make_base_phi_variables(), make_load_blocks(), make_phi_base(), make_scanning_over_one_tile(), make_scanning_over_tiles(), make_store_blocks(), MakeDibaseinorder(), mapping_on_broadcast(), matrices_to_loop_sc(), module_to_wp65_modules(), movement_computation(), plint(), plreal(), polynome_used_var(), primal(), primal_positive(), private_regions_of_loop(), prv(), put_variables_in_ordered_lists(), region_translate_global_value(), region_translation(), remove_variables_if_possible(), reset_bases_for_compare(), reset_info_for_compare(), sc_add_offset_variables(), sc_find_equalities(), sc_functional_graph_p(), sc_image_computation(), sc_minmax_of_pvector(), sc_new(), sc_restricted_to_variables_transitive_closure(), sc_simplexe_feasibility_ofl_ctrl(), sc_to_minimal_basis(), sc_weak_consistent_p(), scalarization(), scanners_then_others(), set_info_for_compare(), sg_fprint_as_ddv(), simplify_deducable_variables(), sort_tile_indices(), step_drop_complex_constraints(), step_interlaced_iteration_regions_p(), syst_smith(), system_new_var_subst(), transformer_combine(), transformer_convex_hulls(), transformer_derivative_fix_point(), transformer_empty(), transformer_equality_fix_point(), transformer_normalize(), transformer_projection_with_redundancy_elimination_and_check(), transformer_temporary_value_projection(), variables_in_declaration_list(), vect_change_base(), and vector_to_convex_descriptor().

#define BASE_NULLE_P ( b   )     ((b)==VECTEUR_NUL)
#define base_rm ( b   )     (vect_rm((Pvecteur)(b)), (b)=BASE_NULLE)

Definition at line 141 of file vecteur-local.h.

Referenced by actual_convex_union(), algorithm_row_echelon_generic(), algorithm_tiling(), all_regions_variable_rename(), build_sc_nredund_2pass_ofl_ctrl(), build_transfer_equations(), clean_shared_io_system(), clean_the_system(), elementary_convex_union(), extract_lattice(), generate_distributed_io_system(), generate_remapping_code(), generate_shared_io_system(), generate_system_for_distributed_variable(), hpfc_algorithm_row_echelon(), hpfc_algorithm_tiling(), ineq_redund_with_sc_p(), loop_scalarization(), make_scanning_over_one_tile(), make_scanning_over_tiles(), parametric_transformer_empty_p(), partial_eval_reference(), put_variables_in_ordered_lists(), region_sc_normalize(), region_sc_projection_along_variables_ofl_ctrl(), region_sc_projection_ofl_along_parameter(), region_translate_global_value(), region_translate_global_values(), remove_variables_if_possible(), reset_info_for_compare(), sc_add_offset_variables(), sc_constraint_add(), sc_cute_convex_hull(), sc_entities_cfc_variables(), sc_find_equalities(), sc_fix(), sc_fm_project_variables(), sc_fourier_motzkin_feasibility_ofl_ctrl(), sc_functional_graph_p(), sc_minmax_of_pvector(), sc_minmax_of_variable2(), sc_projection_along_variable_ofl_ctrl(), sc_projection_along_variable_ofl_ctrl_timeout_ctrl(), sc_projection_along_variables_ofl_ctrl(), sc_projection_along_variables_with_test_ofl_ctrl(), 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_redund(), sc_safe_normalize(), sc_simplexe_feasibility_ofl_ctrl(), sc_strong_normalize2(), sc_strong_normalize_and_check_feasibility2(), sc_variable_substitution_with_eq_ofl_ctrl(), sc_weak_consistent_p(), set_interprocedural_translation_context_sc(), sg_rm(), sg_union(), simplify_deducable_variables(), TestDependence(), text_region(), text_region_no_action(), this_expression_constant_p(), transformer_add_loop_index_initialization(), transformer_convex_hulls(), transformer_derivative_fix_point(), transformer_normalize(), transformer_projection_with_redundancy_elimination_and_check(), translate_global_values(), and vect_change_base().

#define BASE_UNDEFINED   ((Pbase) 0)
#define BASE_UNDEFINED_P ( b   )     ((b)==BASE_UNDEFINED)
#define FWD_OFL_CTRL   1
#define NO_OFL_CTRL   0
#define NONEXPLIN   ((PlinX)-1)

Definition at line 120 of file vecteur-local.h.

#define OFL_CTRL   2

I do thing that overflows are managed in a very poor manner.

FC. It should be all or not, as provided by any os that would raise integer overflows. Thus we should have thought of a sofware mecanism compatible with such a hardware and os approach. maybe by defining a mult_Value macro to check explicitely for overflows if needed, and defined to a simple product if not. functions would have an additional argument for returning a conservative answer in case of overflow. Maybe some global variable could count the number of overflow that occured so that some caller could check whether sg got wrong and thus could warn about the result and this fact. then we would have either the library compiled for these soft checks or for none, but without any difference or explicite requirements from the user of these functions.

instead of that, we have the two versions at the same time with explicite control required from the user. I heard that for some functions this is not used... thus allowing good performance (each time some result is false someone tracks down the not checked function and checks overflow explicitely, thus it is not a very good approach). moreover the most costly functions (simplexe, chernikova) are also those in which the exceptions occurs thus they are all checked. the the impact on performances is definitely low. as far as software engineering is concerned, the current solution adds low level switch for calling different versions (controled or not) of pieces of code... this will have to be removed if some good os is to host this software...OVERFLOW CONTROLsome OVERFLOW CONTROL is allowed

Definition at line 179 of file vecteur-local.h.

Referenced by build_integer_sc_nredund(), build_sc_nredund_1pass(), build_sc_nredund_1pass_ofl_ctrl(), build_sc_nredund_2pass(), efficient_sc_check_inequality_feasibility(), ineq_redund_with_sc_p(), pa_convex_hull_equals_union_p_ofl_ctrl(), partial_redundancy_elimination_expression(), sc_elim_redund(), sc_enveloppe_chernikova(), sc_enveloppe_chernikova_ofl_ctrl(), sc_feasibility_ofl_ctrl(), sc_functional_graph_p(), sc_inequations_elim_redund(), sc_integer_fourier_motzkin_variable_elimination(), sc_integer_inequalities_combination_ofl_ctrl(), sc_minmax_of_pvector(), sc_normalize2(), sc_rational_feasibility(), sc_totally_functional_graph_p(), sc_triang_elim_redund(), sc_triang_elim_redund_n_first(), test_system(), tiling(), and top_down_abc_dimension().

#define PlinX   Pvecteur

definition de la valeur de type PlinX==Pvecteur qui correspond a un vecteur indefini parce que l'expression correspondante n'est pas lineaire (Malik Imadache, Jean Goubault ?)

Definition at line 119 of file vecteur-local.h.

#define print_vect ( s   )     vect_fprint(stdout,(s))

MACROS SUR LES VECTEURS.

Definition at line 123 of file vecteur-local.h.

#define TCST   ((Variable) 0)

VARIABLE REPRESENTANT LE TERME CONSTANT.

Definition at line 131 of file vecteur-local.h.

Referenced by add_declaration_information(), add_loop_index_exit_value(), add_loop_skip_condition(), add_reference_information(), add_var_sup(), adg_contrainte_fprint(), adg_dataflowgraph(), adg_list_to_vect(), adg_max_of_leaves(), affine_expression_of_loop_index_p(), align_check(), alignment_p(), all_variables_in_precondition(), array_access_to_array_ranges(), array_indices_communication(), array_overflow(), array_partial_subscript_value(), arrays_last_dims_linearization_sc(), arrays_same_first_dimensions_sc(), arrays_same_ith_dimension_p(), base_append(), base_included_p(), base_union(), binary_to_normalized(), bounds_equal_p(), buffer_acces(), build_and_test_dependence_context(), build_sc_machine(), build_sc_nredund_1pass_ofl_ctrl(), build_sc_with_several_uniform_ref(), build_transfer_matrix(), calculate_delay(), call_rwt(), check_range_wrt_precondition(), chose_variable_to_project_for_feasability(), claire_tiling(), clean_distributed_io_system(), clean_shared_io_system(), compare_region_constraints(), compare_the_constraints(), complex_bound_computation(), complexity_float_add(), compute_entity_to_declaration_constraints(), const_negative(), constant_constraint_check(), constant_vecteur_p(), constraints_eliminate_constant_terms(), constraints_to_loop_bound(), constraints_with_sym_cst_to_matrices(), contrainte_normalize(), contrainte_reverse(), contrainte_to_matrix_ligne(), contrainte_to_text_1(), contrainte_to_text_2(), contraintes_with_sym_cst_to_matrices(), cost_of_constant_operations(), create_farkas_poly(), cutting_conditions(), data_to_prec_for_variables(), decision_data(), default_variable_name(), dependence_cone_positive(), dj_system_complement(), ecrit_coeff1(), ecrit_ligne(), ecrit_une_var(), ecrit_une_var_neg(), egalites_to_matrice(), eq_diff_const(), eq_smg(), eq_sum_const(), equations_to_bases(), estimate_range_count(), eval(), eval_linear_expression(), eval_var(), EvalNormalized(), evaluate_divide_if_possible(), expression_and_precondition_to_integer_interval(), expression_equal_in_context_p(), expression_integer_constant_p(), expression_less_than_in_context(), extract_constraint_from_inequalities(), extract_constraint_on_var(), find_eg(), find_implicit_equation(), find_motif(), find_pattern(), find_simple_for_like_variable(), find_vbase(), fortran_user_function_call_to_transformer(), fprint_contrainte_vecteur(), free_guards(), full_linearization(), fusion(), fusion_buffer(), generate_one_message(), generate_system_for_equal_variables(), generate_work_sharing_system(), generic_value_name(), get_const_diff(), get_const_off(), get_m_coef(), global_to_last_dims_offset(), gomory_eq(), gomory_trait_eq(), heuristique_1(), heuristique_3(), Hierarchical_tiling(), hpfc_compute_align_constraints(), hpfc_compute_distribute_constraints(), hpfc_compute_entity_to_new_declaration(), hpfc_compute_lid(), hpfc_compute_unicity_constraints(), hpfc_integer_constant_expression_p(), HpfcExpressionToInt(), in_effects_of_loop(), inequalities_opposite_p(), initialize_offsets(), integer_divide_to_transformer(), integer_multiply_to_transformer(), integer_power_to_transformer(), intersection(), invariant_vector_p(), is_inferior_var(), is_vect_constant_p(), lexicographic_order_p(), ligne_pivot(), lignes_entrant(), local_name_to_variable(), locally_constant_vector_p(), logical_binary_operation_to_transformer(), logical_constant_to_transformer(), logical_unary_operation_to_transformer(), look_for_the_best_counter(), loop_bounds_to_tile_bounds(), loop_executed_once_p(), loop_flt(), loop_regions_normalize(), loop_sc_to_matrices(), lower_bound_generation(), make_base_from_vect(), make_constant_complexity(), make_constraint_expression(), make_datum_movement(), make_dual(), make_loop_indice_equation(), make_monome(), make_movements_loop_body_wp65(), make_tile_constraints(), mat_sys_conv(), matrices_to_constraints(), matrices_to_constraints_with_sym_cst(), matrices_to_contraintes_with_sym_cst(), matrices_to_loop_sc(), matrices_to_sc(), matrix_ligne_to_contrainte(), message_larger_p(), modulo_to_transformer(), monome_del_var(), monome_monome_div(), monome_monome_mult(), monome_sprint(), my_constraints_with_sym_cst_to_matrices(), my_contrainte_normalize(), my_matrices_to_constraints_with_sym_cst(), my_matrices_to_constraints_with_sym_cst_2(), name_to_variable(), new_ecrit_ligne(), new_value_in_transfer_equation(), noms_var(), normalizable_and_linear_loop_p(), normalize_constant(), NormalizeConstant(), normalized_constant_p(), number_replaces_var(), numerical_loop_iteration_count(), old_prototype_factorize(), one_message_guards_and_neighbour(), one_receive_message(), out_effects_from_loop_to_body(), pa_path_to_few_disjunct_ofl_ctrl(), partial_broadcast_coefficients(), partial_linearization(), partial_redundancy_elimination_expression(), pip_solve(), pip_solve_min_with_big(), pips_user_value_name(), pivoter_pas(), plint(), plint_degen(), plint_pas(), polynome_constant_p(), polynome_decr(), polynome_incr(), polynome_power_n(), polynome_scalar_add(), polynome_scalar_addition(), polynome_sum_of_power(), polynome_TCST(), private_regions_of_loop(), processor_loop(), prototype_factorize(), pu_contrainte_fprint(), pu_matrices_to_contraintes(), pu_variable_name(), pu_vect_fprint(), put_variables_in_ordered_lists(), pvecteur_to_polynome(), rank_of_variable(), reduce_loop_bound(), reference_last_indices_offset(), region_projection_along_index_safe_p(), relation_to_transformer(), remapping_variables(), sc_add_phi_equation(), sc_consistent_p(), sc_convex_hull(), sc_elim_double_constraints(), sc_eliminate_constant_terms(), sc_empty(), sc_empty_p(), sc_entities_cfc_variables(), sc_find_equalities(), sc_image_computation(), sc_integer_inequalities_combination_ofl_ctrl(), sc_min_max_of_variable(), sc_minmax_of_pvector(), sc_minmax_of_variable(), sc_minmax_of_variable2(), sc_minmax_of_variable_optim(), sc_minmax_of_variables(), sc_normalize2(), sc_restricted_to_variables_transitive_closure(), sc_strong_normalize2(), sc_strong_normalize_and_check_feasibility(), sc_strong_normalize_and_check_feasibility2(), sc_to_minimal_basis(), sc_to_vvs(), sc_value_of_variable(), sc_weak_consistent_p(), search_var_of_higher_rank(), set_dimensions_of_local_variable_family(), sg_to_sc_chernikova(), shift_expression_of_loop_index_p(), signed_integer_constant_expression_value(), simple_indices_p(), simplify_big_coeff(), simplify_sc_to_complexity(), size_of_array(), slx_parse(), sol_entiere(), sol_finale(), sol_positive(), sol_positive_simpl(), st_one_message(), step_interlaced_iteration_regions_p(), subtitute_induction_statement_in(), sys_int_redond(), sys_mat_conv(), syst_parse(), test_borne(), test_bound_generation(), the_index_of_vect(), tile_change_of_basis(), tile_membership(), tile_membership_constraints(), Tiling2_buffer(), Tiling_buffer_allocation(), transfer_equation_p(), transformer_add_condition_information_updown(), transformer_add_integer_relation_information(), transformer_add_sign_information(), transformer_convex_hulls(), transformer_derivative_fix_point(), transformer_general_consistency_p(), transformer_intra_to_inter(), transformer_logical_inequalities_add(), transformer_pattern_fix_point(), translate_array_effect(), translate_call_to_callee_frame(), translate_reference_to_callee_frame(), translate_to_module_frame(), uniform_dependence_p(), unsigned_operation_to_textline(), value_mappings_compatible_vector_p(), valuer(), var_pivotd(), var_pivots(), var_posit(), variable_local_name(), variable_name(), variable_of_rank(), variables_to_int_variables(), variables_to_new_values(), variables_to_old_variables(), vect_coeff_sum(), vect_const_p(), vect_constant_p(), vect_debug_entity_name(), vect_fprint(), vect_one_p(), vect_parallel(), vect_partial_eval(), vect_printout_order(), vect_printout_order_decided_p(), vect_product(), vect_same_variables_p(), vect_simple_definition_p(), vect_zero_p(), vecteur_lower_bound(), vecteur_mult(), vecteur_nul_p(), vecteur_to_list(), xml_Pattern_Paving(), and xml_tiling().

#define term_cst ( varval   )     ((varval)->var == TCST)
#define val_of ( varval   )     ((varval)->val)

Definition at line 125 of file vecteur-local.h.

Referenced by _build_compute_region(), abscmp(), affine_expression_of_loop_index_p(), array_access_to_array_ranges(), arrays_same_ith_dimension_p(), base_copy(), base_dup(), bounds_equal_p(), chose_variable_to_project_for_feasability(), constraints_sort_info(), constraints_to_loop_bound(), contrainte_to_text_1(), contrainte_verifiee(), decision_data(), dims_array_init(), EvalNormalized(), evaluate_divide_if_possible(), evaluate_var_to_complexity(), expression_equal_in_context_p(), expression_less_than_in_context(), find_simple_for_like_variable(), fprint_contrainte_vecteur(), generate_one_message(), heuristique_1(), monome_monome_mult(), my_vect_substract(), normalized_constant_p(), partial_redundancy_elimination_expression(), Pvecteur_separate_on_sign(), sc_elim_db_constraints(), sc_elim_double_constraints(), sc_find_equalities(), sc_minmax_of_variable2(), sc_value_of_variable(), shift_expression_of_loop_index_p(), simplify_common_variables(), text_equivalence_class(), trivial_expression_p(), var_pivotd(), vect_add(), vect_add_elem(), vect_check(), vect_chg_sgn(), vect_cl_ofl_ctrl(), vect_coeff(), vect_coeff_sum(), vect_copy(), vect_div(), vect_dup(), vect_equal(), vect_equal_except(), vect_gen_write(), vect_lexicographic_unsafe_compare_generic(), vect_max(), vect_max0(), vect_min(), vect_min0(), vect_multiply(), vect_new(), vect_oppos(), vect_opposite_except(), vect_parallel(), vect_partial_eval(), vect_pgcd_all(), vect_pgcd_except(), vect_prod_scal(), vect_proport(), vect_sign(), vect_simple_definition_p(), vect_substract(), vect_sum(), vecteur_lower_bound(), and vecteur_nul_p().

#define var_of ( varval   )     ((varval)->var)

Definition at line 124 of file vecteur-local.h.

Referenced by affine_expression_of_loop_index_p(), algorithm_tiling(), alignment_p(), array_access_to_array_ranges(), base_append(), base_copy(), base_dup(), base_included_p(), base_nb_phi(), base_nb_psi(), base_nb_rho(), base_union(), bounds_equal_p(), chose_variable_to_project_for_feasability(), claire_tiling(), compare_Pvecteur(), compare_region_constraints(), compare_region_vectors(), compare_the_constraints(), compare_variables_in_base(), constraint_without_vars(), constraints_to_loop_bound(), contrainte_to_text_1(), contrainte_to_text_2(), cost_of_constant_operations(), decision_data(), eval_linear_expression(), EvalNormalized(), evaluate_divide_if_possible(), evaluate_var_to_complexity(), find_motif(), find_pattern(), find_simple_for_like_variable(), fprint_contrainte_vecteur(), generate_one_message(), heuristique_1(), heuristique_3(), highest_rank_pvector(), locally_constant_vector_p(), monome_monome_mult(), my_vect_substract(), normalized_constant_p(), Pvecteur_separate_on_sign(), sc_min_max_of_variable(), sc_to_minimal_basis(), scanners_then_others(), set_bases_for_compare(), shift_expression_of_loop_index_p(), simplify_common_variables(), translate_reference_to_callee_frame(), translate_to_module_frame(), update_indices_for_local_computation(), var_pivotd(), vect_add(), vect_add_elem(), vect_check(), vect_cl_ofl_ctrl(), vect_coeff(), vect_colin_base(), vect_compare(), vect_contains_phi_p(), vect_copy(), vect_dup(), vect_elem(), vect_equal(), vect_equal_except(), vect_extract(), vect_new(), vect_oppos(), vect_opposite_except(), vect_parallel(), vect_pgcd_except(), vect_prod_scal(), vect_proport(), vect_rename_variables(), vect_simple_definition_p(), vect_substract(), vecteur_lower_bound(), vecteur_nul_p(), xml_Pattern_Paving(), and xml_tiling().

#define VARIABLE_DEFINED_P ( v   )     ((v)!=VARIABLE_UNDEFINED)
#define VARIABLE_UNDEFINED   ((Variable) 0)
#define VARIABLE_UNDEFINED_P ( v   )     ((v)==VARIABLE_UNDEFINED)
#define VECTEUR_NUL   ((Pvecteur) 0)

DEFINITION DU VECTEUR NUL.

Definition at line 110 of file vecteur-local.h.

Referenced by add_lambda_list(), adg_contrainte_fprint(), adg_list_to_vect(), affine_to_transformer(), align_check(), args_to_transformer(), array_indices_communication(), arrays_last_dims_linearization_sc(), arrays_same_first_dimensions_sc(), base_reversal(), block_to_complexity(), buffer_acces(), build_sc_with_several_uniform_ref(), call_rwt(), claire_tiling(), compute_entity_to_declaration_constraints(), config_vecteur(), constraints_keep_invariants_only(), constraints_to_loop_bound(), contrainte_fprint(), contrainte_reversal(), contrainte_sprint_format(), contrainte_text_format(), count_eq_occ(), cout_nul(), data_to_prec_for_variables(), effects_to_transformer(), eq_set_vect_nul(), eval_linear_expression(), extract_constraint_from_equalitites(), extract_constraint_from_inequalities(), extract_constraint_on_var(), extract_stat_lunk(), filter_transformer(), find_eg(), find_motif(), find_pattern(), fonct_max_all(), fortran_user_function_call_to_transformer(), free_guards(), full_linearization(), fusion(), fusion_buffer(), generate_one_message(), generate_system_for_equal_variables(), generate_work_sharing_system(), global_to_last_dims_offset(), Hierarchical_tiling(), hpfc_compute_align_constraints(), hpfc_compute_distribute_constraints(), hpfc_compute_entity_to_new_declaration(), hpfc_compute_unicity_constraints(), in_effects_of_loop(), integer_nullary_operation_to_transformer(), invariant_vector_p(), last_dims_offset(), logical_binary_operation_to_transformer(), loop_index_domaine_to_contrainte(), loop_nest_to_offset(), loop_nest_to_tile(), loop_nest_to_wp65_code(), lower_bound_generation(), make_datum_movement(), make_dual(), make_lin_op_exp(), make_scanning_over_one_tile(), matrix_to_system(), mk_rn(), monome_monome_div(), movement_computation(), normalize_intrinsic(), old_prototype_factorize(), out_effects_from_loop_to_body(), partial_linearization(), Pcontrainte_to_expression_list(), phi_first_sort_base(), plint_degen(), polynome_to_vecteur(), primal_pivot(), private_regions_of_loop(), processor_loop(), prototype_factorize(), pu_contrainte_fprint(), put_variables_in_ordered_lists(), Pvecteur_separate_on_sign(), reduce_loop_bound(), reference_conversion_computation(), relation_to_transformer(), sc_constraint_add(), sc_entities_cfc_variables(), sc_find_equalities(), sc_image_computation(), sc_min_max_of_variable(), sc_minmax_of_variables(), sc_proj_optim_on_di_ofl(), sc_to_minimal_basis(), separate_variables(), separate_variables_2(), simple_affine_to_transformer(), simplify_big_coeff(), step_interlaced_iteration_regions_p(), tile_change_of_basis(), tile_membership_constraints(), tiling(), Tiling2_buffer(), Tiling_buffer_allocation(), transformer_derivative_fix_point(), transformer_equality_fix_point(), translate_call_to_callee_frame(), translate_complexity_from_local_to_current_name(), translate_reference_to_callee_frame(), translate_to_module_frame(), upper_bound_generation(), var_pivotd(), var_posit(), vect_add_variable(), vect_copy(), vect_multiply(), vect_partial_eval(), vect_printout_order(), vect_read(), vect_reversal(), xml_Call(), xml_Pattern_Paving(), xml_Task(), xml_TaskParameters(), and xml_tiling().

#define VECTEUR_NUL_P ( v   )     ((v)==VECTEUR_NUL)

Definition at line 111 of file vecteur-local.h.

Referenced by _build_compute_region(), adg_contrainte_fprint(), algorithm_row_echelon_generic(), array_indices_communication(), base_add_variable(), base_contains_variable_p(), base_find_variable(), base_find_variable_name(), base_find_variable_rank(), base_fprint(), base_nb_phi(), base_nb_psi(), base_nb_rho(), base_reversal(), block_to_complexity(), bounds_equal_p(), build_and_test_dependence_context(), build_first_comb(), build_image_base(), build_sc_with_several_uniform_ref(), claire_tiling(), comp_exec_domain(), compare_region_constraints(), compute_region_variables(), config_vecteur(), contrainte_normalize(), contrainte_to_matrix_ligne(), contrainte_to_text_1(), contrainte_to_text_2(), cout_nul(), create_tile_basis(), cst_vector_p(), dims_array_init(), evaluate_var_to_complexity(), expression_and_precondition_to_integer_interval(), expression_equal_in_context_p(), expression_less_than_in_context(), expression_with_constant_signed_integer_value_p(), extract_constraint_from_inequalities(), extract_constraint_on_var(), final_statement_to_complexity_evaluation(), find_motif(), find_pattern(), find_simple_for_like_variable(), fonct_max_all(), fonct_min_all(), fonct_read(), fprint_contrainte_vecteur(), get_m_coef(), heuristique_1(), heuristique_3(), invariant_vector_p(), is_vect_constant_p(), keep_non_empty_messages_with_destination(), logical_binary_operation_to_transformer(), loop_bounds_to_tile_bounds(), loop_nest_to_tile(), make_base_from_vect(), make_constraint_expression(), make_datum_movement(), make_movements_loop_body_wp65(), make_rational_exp(), make_scanning_over_one_tile(), make_scanning_over_tiles(), make_vecteur_expression(), mat_sys_conv(), matrices_to_loop_sc(), matrices_to_sc(), mk_rn(), monome_check(), monome_del_var(), my_substitute_var_with_vec(), my_system_remove_variables(), my_vecteur_to_polynome(), nlc_linear_expression_p(), nullify_factors(), partial_broadcast_coefficients(), partial_redundancy_elimination_expression(), partition_unknowns(), phi_first_sort_base(), plint_degen(), polynome_to_sc(), polynome_to_vecteur(), pu_contrainte_fprint(), pu_vect_fprint(), Pvecteur_to_expression(), pvecteur_to_polynome(), rank_of_variable(), ray_to_matrix_ligne(), region_consistent_p(), region_dynamic_var_elim(), region_projection_along_index_safe_p(), region_sc_projection_along_variables_ofl_ctrl(), region_sc_projection_ofl_along_parameters(), relation_to_transformer(), remove_temporal_variables_from_system(), sc_add_phi_equation(), sc_base_add_variable(), sc_elim_double_constraints(), sc_entities_cfc_variables(), sc_find_equalities(), sc_fprint(), sc_image_computation(), sc_integer_projection_along_variables(), sc_invers(), sc_lexicographic_sort(), sc_min_max_of_variable(), sc_minmax_of_pvector(), sc_minmax_of_variable(), sc_minmax_of_variable2(), sc_minmax_of_variable_optim(), sc_minmax_of_variables(), sc_proj_on_di(), sc_proj_optim_on_di_ofl(), sc_projection_along_variables_ofl_ctrl(), sc_projection_along_variables_with_test_ofl_ctrl(), sc_projection_on_variables(), sc_projection_optim_along_vecteur_ofl(), sc_restricted_to_variables_transitive_closure(), sc_rm(), sc_safe_append(), sc_strong_normalize2(), sc_strong_normalize_and_check_feasibility(), sc_strong_normalize_and_check_feasibility2(), sc_to_matrix(), sc_to_vvs(), sc_transform_ineg_in_eg(), sc_value_of_variable(), search_higher_rank(), search_var_of_higher_rank(), simple_dead_loop_p(), simplify_sc_to_complexity(), sl_fprint_tab(), sp_linear_expression_p(), splc_linear_expression_p(), subtitute_induction_statement_in(), sys_mat_conv(), TestDependence(), transformer_constraint_add(), translate_call_to_callee_frame(), translate_reference_to_callee_frame(), translate_to_module_frame(), trivial_expression_p(), update_basis(), value_mappings_compatible_vector_p(), variable_of_rank(), variables_to_new_values(), vars_in_vect_p(), vect_add_variable(), vect_common_variables_p(), vect_constant_p(), vect_contains_phi_p(), vect_contains_variable_p(), vect_fprint_as_dense(), vect_in_basis_p(), vect_one_p(), vect_partial_eval(), vect_printout_order(), vect_printout_order_decided_p(), vect_rename(), vect_reversal(), vect_same_variables_p(), vect_sprint_as_monome(), vect_translate(), vect_variable_rename(), vect_zero_p(), vecteur_mult(), vecteur_nul_p(), vecteur_to_polynome(), xml_LoopOffset(), xml_Pattern_Paving(), and xml_tiling().

#define vecteur_succ ( v   )     ((v)->succ)
#define VECTEUR_UNDEFINED   ((Pvecteur) 0)
#define VECTEUR_UNDEFINED_P ( v   )     ((v)==VECTEUR_UNDEFINED)
#define vecteur_val ( v   )     ((v)->val)
#define vecteur_var ( v   )     ((v)->var)

Definition at line 126 of file vecteur-local.h.

Referenced by __attribute__(), array_indices_communication(), base_add_variable(), base_contains_variable_p(), base_difference(), base_find_variable(), base_find_variable_name(), base_find_variable_rank(), base_reversal(), build_and_test_dependence_context(), build_image_base(), build_sc_machine(), build_transfer_equations(), build_transfer_matrix(), compare_region_constraints(), constant_constraint_check(), constraints_to_matrices(), constraints_with_sym_cst_to_matrices(), contrainte_to_matrix_ligne(), contrainte_to_text_2(), contraintes_with_sym_cst_to_matrices(), cout_nul(), create_local_index(), create_local_index2(), create_tile_basis(), default_is_inferior_pvarval(), default_is_inferior_varval(), egalites_to_matrice(), equations_to_bases(), expression_and_precondition_to_integer_interval(), expression_less_than_in_context(), extract_constraint_on_var(), find_entity(), fonct_max(), fonct_max_all(), fonct_max_d(), fonct_min(), fonct_min_all(), fonct_min_d(), fonct_read(), heuristique_3(), Hierarchical_tiling(), integer_assign_to_transformer(), invariant_vector_p(), is_good_direction_p(), is_inferior_pvarval(), is_inferior_varval(), look_for_the_best_counter(), loop_bounds_to_tile_bounds(), loop_nest_to_tile(), loop_sc_to_matrices(), make_constraint_expression(), make_datum_movement(), make_load_blocks(), make_loop_indice_equation(), make_movements_loop_body_wp65(), make_scanning_over_one_tile(), make_store_blocks(), make_vecteur_expression(), mat_sys_conv(), matrices_to_constraints(), matrices_to_constraints_with_sym_cst(), matrices_to_contraintes_with_sym_cst(), matrices_to_loop_sc(), matrices_to_sc(), matrix_ligne_to_vecteur(), mk_rn(), movement_computation(), my_constraints_with_sym_cst_to_matrices(), my_matrices_to_constraints_with_sym_cst(), my_matrices_to_constraints_with_sym_cst_2(), my_system_remove_variables(), my_vecteur_to_polynome(), new_value_in_transfer_equation(), parametric_transformer_empty_p(), plint_degen(), polyhedron_ligne_to_vecteur(), precondition_filter_old_values(), precondition_intra_to_inter(), pu_contraintes_to_matrices(), pu_matrices_to_contraintes(), rank_of_variable(), ray_to_matrix_ligne(), region_consistent_p(), region_sc_projection_along_variables_ofl_ctrl(), region_sc_projection_ofl_along_parameters(), region_translate_global_values(), remove_temporal_variables_from_system(), sc_add_offset_variables(), sc_base_add_variable(), sc_empty_p(), sc_entities_cfc_variables(), sc_fprint(), sc_functional_graph_p(), sc_image_computation(), sc_integer_projection_along_variables(), sc_invers(), sc_minmax_of_variable(), sc_minmax_of_variable2(), sc_minmax_of_variable_optim(), sc_minmax_of_variables(), sc_normalize2(), sc_proj_on_di(), sc_proj_optim_on_di_ofl(), sc_projection_along_variables_ofl_ctrl(), sc_projection_on_variables(), sc_restricted_to_variables_transitive_closure(), sc_safe_append(), sc_strong_normalize2(), sc_strong_normalize_and_check_feasibility(), sc_strong_normalize_and_check_feasibility2(), sc_to_matrices(), sc_variables_rename(), search_higher_rank(), search_var_of_higher_rank(), sg_fprint_as_ddv(), sl_fprint_tab(), sub_basis_p(), subtitute_induction_statement_in(), sys_mat_conv(), TestDependence(), tile_membership_constraints(), tiling(), Tiling2_buffer(), Tiling_buffer_allocation(), transfer_equation_p(), transformer_derivative_fix_point(), transformer_formal_parameter_projection(), transformer_general_consistency_p(), transformer_internal_consistency_p(), transformer_intra_to_inter(), transformer_projectable_values(), transformer_temporary_value_projection(), translate_call_to_callee_frame(), translate_global_values(), translate_reference_to_callee_frame(), translate_to_module_frame(), uniform_dependence_p(), update_basis(), value_mappings_compatible_vector_p(), var_posit(), variable_of_rank(), variables_to_new_values(), varval_value_name_is_inferior_p(), vect_add_variable(), vect_common_variables_p(), vect_contains_variable_p(), vect_fprint_as_dense(), vect_in_basis_p(), vect_in_p(), vect_printout_order(), vect_printout_order_decided_p(), vect_rename(), vect_reversal(), vect_same_variables_p(), vect_translate(), vect_variable_rename(), and vecteur_to_polynome().


Typedef Documentation

typedef char*(* get_variable_name_t)(Variable)

Definition at line 62 of file vecteur-local.h.

Definition at line 186 of file vecteur-local.h.

typedef struct Svecteur * Pbase

Definition at line 107 of file vecteur-local.h.

typedef struct Svecteur * Pvecteur
typedef struct Svecteur Sbase

STRUCTURE D'UNE BASE.

Une base est definie par son vecteur diagonal

Les tests d'appartenance sont effectues par comparaison des pointeurs et non par des strcmp.

Rien ne contraint les coefficients a valoir 1 et le package plint mais meme certains coefficients a 0, ce qui devrait revenir a faire disparaitre la variable (i.e. la coordonnee) correspondante de la base.

Definition at line 107 of file vecteur-local.h.

typedef struct Svecteur Svecteur

le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique

STRUCTURE D'UN VECTEUR Un vecteur est defini par une suite de couples Variable (i.e. element de la base) et Valeur (valeur du coefficient correspondant). Les coordonnees nulles ne sont pas representees et n'existe qu'implicitement par rapport a une base (hypothetique) definie via la package "variable".

En consequence, le vecteur nul est (malencontreusement) represente par NULL. Cela gene toutes les procedures succeptibles de retourner une valeur vecteur nul par effet de bord. Il faut alors passer en argument un POINTEUR vers un Pvecteur. En general, nous avons prefere retourner explicitement le vecteur calcule, a la maniere de ce qui est fait dans string.h

Il n'existe pas non plus de VECTEUR_UNDEFINED, puisque sa valeur devrait logiquement etre NULL.

typedef void* Variable

package sur les vecteurs creux et les bases

Malik Imadache, Corinne Ancourt, Neil Butler, Francois Irigoin, Remi Triolet

Modifications:

  • les fonctions d'interface avec GenPgm dont les noms commencent par "_gC_" ont ete deplacees dans _gC_lib
  • passage a "char *" pour le type Variable au lieu de "int" (Linear-C3) et de "entity *" (PIPS); le package n'est pas independant de la definition du type "Variable"; il faudrait ameliorer ca avec un package "Variable"
  • ajout des fonctions d'interface avec Newgen: (RT, 27/11/89)
  • ajout de la notion de base, comme cas particulier de vecteur (FI, 27/11/89) ou le champ "Value" n'a pas de signification
  • suppression de l'include de vecteur-basic-types.h; la fusion entre les versions C3 et PIPS ne necessite plus cette distinction; il y a tellement peu de code a ecrire pour les variables et les valeurs qu'il est inutile d'avoir une directory differente pour lui
  • rapatriement de la definition du terme constant TCST et de la macro term_cst (du package contrainte) (PB, 06/06/90)
  • trop creux a mon avis. il faudrait une liste de petits tableaux ? FC.arithmetique is a requirement for vecteur, but I do not want to inforce it in all pips files... thus here it isle type des variables (ou coordonnees) dans les vecteurs

Definition at line 60 of file vecteur-local.h.

Generated by  doxygen 1.6.2-20100208