00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 package parma_polyhedra_library;
00025
00026
00027 public class Fake_Class_For_Doxygen {}
00028
00030
00038 public class Polyhedron extends PPL_Object {
00039
00041
00042
00044 public native long space_dimension();
00045
00051 public native long affine_dimension();
00052
00054 public native Constraint_System constraints();
00055
00057 public native Congruence_System congruences();
00058
00060 public native Constraint_System minimized_constraints();
00061
00067 public native Congruence_System minimized_congruences();
00068
00070 public native boolean is_empty();
00071
00073 public native boolean is_universe();
00074
00079 public native boolean is_bounded();
00080
00082 public native boolean is_discrete();
00083
00088 public native boolean is_topologically_closed();
00089
00094 public native boolean contains_integer_point();
00095
00103 public native boolean constrains(Variable var);
00104
00112 public native boolean bounds_from_above(Linear_Expression expr);
00113
00121 public native boolean bounds_from_below(Linear_Expression expr);
00122
00147 public native boolean maximize(Linear_Expression expr,
00148 Coefficient sup_n, Coefficient sup_d,
00149 By_Reference<Boolean> maximum);
00150
00175 public native boolean minimize(Linear_Expression expr,
00176 Coefficient inf_n, Coefficient inf_d,
00177 By_Reference<Boolean> minimum);
00178
00207 public native boolean maximize(Linear_Expression expr,
00208 Coefficient sup_n, Coefficient sup_d,
00209 By_Reference<Boolean> maximum,
00210 Generator g);
00211
00240 public native boolean minimize(Linear_Expression expr,
00241 Coefficient inf_n, Coefficient inf_d,
00242 By_Reference<Boolean> minimum,
00243 Generator g);
00244
00252 public native Poly_Con_Relation relation_with(Constraint c);
00253
00261 public native Poly_Gen_Relation relation_with(Generator c);
00262
00270 public native Poly_Con_Relation relation_with(Congruence c);
00271
00273
00278 public native boolean contains(Polyhedron y);
00279
00281
00286 public native boolean strictly_contains(Polyhedron y);
00287
00289
00294 public native boolean is_disjoint_from(Polyhedron y);
00295
00297 public native boolean equals(Polyhedron y);
00298
00300 public boolean equals(Object y);
00301
00303
00307 public native int hashCode();
00308
00310 public native long external_memory_in_bytes();
00311
00313 public native long total_memory_in_bytes();
00314
00316 public native String toString();
00317
00323 public native String ascii_dump();
00324
00326 public native boolean OK();
00327
00329
00331
00332
00345 public native void add_constraint(Constraint c);
00346
00356 public native void add_congruence(Congruence cg);
00357
00370 public native void add_constraints(Constraint_System cs);
00371
00384 public native void add_congruences(Congruence_System cgs);
00385
00392 public native void refine_with_constraint(Constraint c);
00393
00400 public native void refine_with_congruence(Congruence cg);
00401
00412 public native void refine_with_constraints(Constraint_System cs);
00413
00424 public native void refine_with_congruences(Congruence_System cgs);
00425
00434 public native void intersection_assign(Polyhedron y);
00435
00443 public native void upper_bound_assign(Polyhedron y);
00444
00454 public native void difference_assign(Polyhedron y);
00455
00464 public native void time_elapse_assign(Polyhedron y);
00465
00467 public native void topological_closure_assign();
00468
00478 public native boolean simplify_using_context_assign(Polyhedron y);
00479
00501 public native void affine_image(Variable var, Linear_Expression expr,
00502 Coefficient denominator);
00503
00524 public native void affine_preimage(Variable var, Linear_Expression expr,
00525 Coefficient denominator);
00526
00553 public native void bounded_affine_image(Variable var,
00554 Linear_Expression lb_expr,
00555 Linear_Expression ub_expr,
00556 Coefficient denominator);
00557
00583 public native void bounded_affine_preimage(Variable var,
00584 Linear_Expression lb_expr,
00585 Linear_Expression ub_expr,
00586 Coefficient denominator);
00587
00614 public native void generalized_affine_image(Variable var,
00615 Relation_Symbol relsym,
00616 Linear_Expression expr,
00617 Coefficient denominator);
00618
00645 public native void generalized_affine_preimage(Variable var,
00646 Relation_Symbol relsym,
00647 Linear_Expression expr,
00648 Coefficient denominator);
00649
00670 public native void generalized_affine_image(Linear_Expression lhs,
00671 Relation_Symbol relsym,
00672 Linear_Expression rhs);
00673
00694 public native void generalized_affine_preimage(Linear_Expression lhs,
00695 Relation_Symbol relsym,
00696 Linear_Expression rhs);
00697
00708 public native void unconstrain_space_dimension(Variable var);
00709
00722 public native void unconstrain_space_dimensions(Variables_Set vars);
00723
00740 public native void widening_assign(Polyhedron y,
00741 By_Reference<Integer> tp);
00742
00744
00746
00747
00755 public native void swap(Polyhedron y);
00756
00768 public native void add_space_dimensions_and_embed(long m);
00769
00781 public native void add_space_dimensions_and_project(long m);
00782
00794 public native void concatenate_assign(Polyhedron y);
00795
00797
00806 public native void remove_space_dimensions(Variables_Set vars);
00807
00816 public native void remove_higher_space_dimensions(long
00817 new_dimension);
00818
00820
00834 public native void expand_space_dimension(Variable var, long m);
00835
00837
00851 public native void fold_space_dimensions(Variables_Set vars,
00852 Variable dest);
00853
00861 public native void map_space_dimensions(Partial_Function pfunc);
00862
00864
00871
00873 public native Generator_System generators();
00874
00876 public native Generator_System minimized_generators();
00877
00887 public native void add_generator(Generator g);
00888
00902 public native void add_generators(Generator_System gs);
00903
00905 public native void poly_hull_assign(Polyhedron y);
00906
00908 public native void poly_difference_assign(Polyhedron y);
00909
00926 public native void BHRZ03_widening_assign(Polyhedron y,
00927 By_Reference<Integer> tp);
00928
00945 public native void H79_widening_assign(Polyhedron y,
00946 By_Reference<Integer> tp);
00947
00968 public native
00969 void limited_BHRZ03_extrapolation_assign(Polyhedron y,
00970 Constraint_System cs,
00971 By_Reference<Integer> tp);
00972
00993 public native
00994 void limited_H79_extrapolation_assign(Polyhedron y,
00995 Constraint_System cs,
00996 By_Reference<Integer> tp);
00997
01020 public native
01021 void bounded_BHRZ03_extrapolation_assign(Polyhedron y,
01022 Constraint_System cs,
01023 By_Reference<Integer> tp);
01024
01047 public native
01048 void bounded_H79_extrapolation_assign(Polyhedron y,
01049 Constraint_System cs,
01050 By_Reference<Integer> tp);
01051
01053
01054 }
01055
01056
01058
01059 public class C_Polyhedron extends Polyhedron {
01060
01062
01063
01065
01069 public C_Polyhedron(long d, Degenerate_Element kind);
01070
01072 public C_Polyhedron(C_Polyhedron y);
01073
01075
01078 public C_Polyhedron(C_Polyhedron y, Complexity_Class complexity);
01079
01081
01084 public C_Polyhedron(Constraint_System cs);
01085
01087
01090 public C_Polyhedron(Congruence_System cgs);
01091
01096 public native void free();
01097
01099
01113
01118 public C_Polyhedron(NNC_Polyhedron y);
01119
01127 public C_Polyhedron(NNC_Polyhedron y, Complexity_Class complexity);
01128
01130
01133 public C_Polyhedron(Generator_System gs);
01134
01136
01138
01139
01147 public native boolean upper_bound_assign_if_exact(C_Polyhedron y);
01148
01150
01152
01162 public static native
01163 Pair<C_Polyhedron, Pointset_Powerset_NNC_Polyhedron>
01164 linear_partition(C_Polyhedron p, C_Polyhedron q);
01165
01167 protected native void finalize();
01168
01169 }
01170
01171
01173
01186 public class Pointset_Powerset_C_Polyhedron extends PPL_Object {
01187
01189
01195 public native void omega_reduce();
01196
01198
01201 public native long size();
01202
01204 public native boolean
01205 geometrically_covers(Pointset_Powerset_C_Polyhedron y);
01206
01208 public native boolean
01209 geometrically_equals(Pointset_Powerset_C_Polyhedron y);
01210
01215 public native Pointset_Powerset_C_Polyhedron_Iterator begin_iterator();
01216
01221 public native Pointset_Powerset_C_Polyhedron_Iterator end_iterator();
01222
01224 public native void add_disjunct(C_Polyhedron d);
01225
01226
01231 public native void
01232 drop_disjunct(Pointset_Powerset_C_Polyhedron_Iterator iter);
01233
01234
01239 public native void
01240 drop_disjuncts(Pointset_Powerset_C_Polyhedron_Iterator first,
01241 Pointset_Powerset_C_Polyhedron_Iterator last);
01242
01243
01248 public native void pairwise_reduce();
01249
01251
01252 }
01253
01254
01256
01257 public class Pointset_Powerset_C_Polyhedron_Iterator extends PPL_Object {
01258
01260 public Pointset_Powerset_C_Polyhedron_Iterator
01261 (Pointset_Powerset_C_Polyhedron_Iterator y);
01262
01264 public native boolean equals(Pointset_Powerset_C_Polyhedron_Iterator itr);
01265
01267 public native void next();
01268
01270 public native void prev();
01271
01273
01283 public native C_Polyhedron get_disjunct();
01284
01286 public native void free();
01287
01289 protected native void finalize();
01290
01291 }