Commit a3e8a67b authored by Erwan Jahier's avatar Erwan Jahier
Browse files

lurette 1.8 Wed, 22 Oct 2003 18:30:52 +0200 by jahier

Parent-Version:      1.7
Version-Log:

Implement a new drawing policy in polyhedron.

The idea is to base the base (which is not so expensive), and to draw
in othogonal hypercube that is as small as possible until a point in
the polyhedron is found.  However, it may happens in high dimension (>4)
that the volume of the cube is much bigger. In that case, after a few tries,
i call the old (unfair) method.

polyDram.ml/mli:
   new module containing all the thing related to the drawing inside
   a convex polyhedron.

   Give up the idea of random walk (not clear what should be the default
   step and length in big dimension).

Project-Description: Lurette
parent 79b18f3b
......@@ -3,16 +3,16 @@
(Created-By-Prcs-Version 1 3 3)
(cuddaux/cuddauxGenCof.c 12011 1034006019 c/29_cuddauxGen 1.1)
(source/show_env.mli 1150 1056619073 42_show_env.m 1.10)
(source/util.ml 22356 1065787303 35_util.ml 1.56)
(source/util.ml 23056 1066840252 35_util.ml 1.57)
(test/cygwin-scade/lib_pilot.vsp 1433 1055926783 f/47_lib_pilot. 1.1)
(source/constraint.mli 1606 1063029729 c/18_constraint 1.6)
(source/constraint.mli 1662 1066840252 c/18_constraint 1.7)
(test/ControleurPorte.lus 3219 1032940601 c/17_Controleur 1.1)
(mlcuddidl/Changes 64 1034006019 d/10_Changes 1.1)
(TODO 5481 1065787303 d/22_TODO 1.26)
(TODO 5658 1066840252 d/22_TODO 1.27)
(share/gen_fake_lutin.sh.in 115 1063786164 g/30_gen_fake_l 1.1)
(mlcuddidl/rdd.mli 7174 1034006019 c/40_rdd.mli 1.1)
(source/fair_bddd.ml 19334 1065787303 g/38_fair_bddd. 1.1)
(source/ne.mli 2220 1063029729 c/22_ne.mli 1.7)
(source/fair_bddd.ml 19293 1066840252 g/38_fair_bddd. 1.2)
(source/ne.mli 2272 1066840252 c/22_ne.mli 1.8)
(share/config.guess 39153 1055926783 f/25_config.gue 1.1)
(polka/documentation/polka.texi 109061 1047029868 e/17_polka.texi 1.1)
(source/ocaml2c.idl 1484 1050578564 e/26_ocaml2c.id 1.2)
......@@ -43,7 +43,7 @@
(test/cygwin-scade/Pilot_cst.saofd 788 1055926783 f/38_Pilot_cst. 1.1)
(test/cygwin-scade/lib_pilot.etp 1173 1055926783 f/48_lib_pilot. 1.1)
(source/command_line.mli 1632 1065787303 b/21_command_li 1.13)
(source/Makefile.lucky 3125 1065787303 b/41_Makefile.i 1.25)
(source/Makefile.lucky 3221 1066840252 b/41_Makefile.i 1.26)
(polka/README 1437 1047029868 e/19_README 1.1)
(polka/Makefile.depend 136 1047029868 d/30_Makefile.d 1.1)
(test/test9.rif.exp 2322 1064411282 g/17_test9.rif. 1.2)
......@@ -51,7 +51,7 @@
(source/pnumsolver.ml 9273 1045489850 d/23_pnumsolver 1.2)
(source/gen_stubs_scade.ml 9106 1055926783 f/5_gen_stubs_ 1.1)
(cuddaux/cuddauxMisc.c 13842 1034006019 c/27_cuddauxMis 1.1)
(source/polyhedron.ml 12853 1065787303 d/25_polyhedron 1.9)
(source/polyhedron.ml 12975 1066840252 d/25_polyhedron 1.10)
(source/Makefile.gen_fake_lucky 528 1063786164 g/9_Makefile.g 1.2)
(polka/C/poly.c 48492 1047029868 e/5_poly.c 1.1)
(source/luc_exe.mli 447 1033738731 b/31_ima_exe.ml 1.2)
......@@ -65,7 +65,7 @@
(polka/caml/polka_caml.c 6499 1047029868 d/37_polka_caml 1.1)
(source/gen_stubs_poc.mli 636 1055926783 f/4_gen_stubs_ 1.1)
(test/losange-3d.luc 514 1063786164 d/28_losange-3d 1.4)
(test/time-moucherotte.res 4855 1065787303 e/38_time-mouch 1.9)
(test/time-moucherotte.res 285 1066840252 e/38_time-mouch 1.10)
(polka/caml/poly.idl 8449 1047029868 d/33_poly.idl 1.1)
(polka/documentation/texinfo.tex 200195 1047029868 e/16_texinfo.te 1.1)
(polka/caml/polka_caml.h 1922 1047029868 d/36_polka_caml 1.1)
......@@ -78,7 +78,7 @@
(source/eval.ml 7275 1064415295 49_eval.ml 1.16)
(polka/Changes 1502 1047029868 e/22_Changes 1.1)
(source/env.mli 1937 1064329011 15_env.mli 1.19)
(test/losange-10d.luc 1533 1065787303 g/42_losange-10 1.1)
(test/losange-10d.luc 1550 1066840252 g/42_losange-10 1.2)
(test/sparc-scade/libdigital.saofdm 1256 1055487917 e/47_libdigital 1.1)
(test/temp_int.luc 517 1063786164 b/50_temp_int.e 1.7)
(source/automata.mli 3595 1064329011 b/46_automata.m 1.5)
......@@ -93,8 +93,8 @@
(test/cygwin-scade/Command.saofd 4147 1055926783 g/6_Command.sa 1.1)
(test/cygwin-scade/lib_pilot.err 119 1055926783 f/49_lib_pilot. 1.1)
(test/losange.luc 410 1046768487 d/27_losange.lu 1.2)
(test/gyro.rif.exp 10966 1065787303 e/36_gyro.rif.e 1.5)
(test/time-ecrins.exp 8430 1065787303 d/21_time-ecrin 1.28)
(test/gyro.rif.exp 10953 1066840252 e/36_gyro.rif.e 1.6)
(test/time-ecrins.exp 9304 1066840252 d/21_time-ecrin 1.29)
(source/fair_bdd.mli 2835 1065787303 g/40_fair_bdd.m 1.1)
(source/value.ml 2539 1063786164 c/23_value.ml 1.6)
(source/gne.ml 3467 1063029729 b/37_gne.ml 1.6)
......@@ -107,7 +107,7 @@
(share/pixmaps/plus.xpm 473 1055926783 f/15_plus.xpm 1.1)
(polka/C/Makefile 3528 1047029868 e/15_Makefile 1.1)
(source/Makefile.gen_fake_lutin 528 1063786164 d/17_Makefile.g 1.4)
(Makefile.common.source 1826 1055926783 e/33_Makefile.c 1.5)
(Makefile.common.source 2399 1066840252 e/33_Makefile.c 1.6)
(test/giro/giro.luc 2755 1033738731 c/6_giro.ima 1.4)
(source/control.ml 4586 1065787303 c/4_control.ml 1.5)
(test/cygwin-scade/.lurette_rc~ 505 1055926783 f/30_.lurette_r 1.1)
......@@ -117,7 +117,7 @@
(source/env_state.ml 21516 1064504947 51_env_state. 1.49)
(test/test8.rif.exp 341 1065787303 g/18_test8.rif. 1.2)
(polka/caml/matrix.idl 5301 1047029868 d/34_matrix.idl 1.1)
(source/fair_bddd.mli 2855 1065787303 g/39_fair_bddd. 1.1)
(source/fair_bddd.mli 2856 1066840252 g/39_fair_bddd. 1.2)
(cuddaux/cuddauxAddIte.c 12812 1034006019 c/32_cuddauxAdd 1.1)
(source/gen_stubs_scade.mli 641 1055926783 f/6_gen_stubs_ 1.1)
(share/pixmaps/clean-up.xpm 1565 1055926783 f/22_clean-up.x 1.1)
......@@ -132,7 +132,7 @@
(source/call_lurette_main.c 322 1050421093 e/28_call_luret 1.1)
(polka/C/vector.c 13780 1047029868 e/3_vector.c 1.1)
(test/sparc-scade/Direction_D1.saofd 1335 1055487917 e/51_Direction_ 1.1)
(source/Makefile.lurette_lib 2838 1065787303 c/2_Makefile.l 1.23)
(source/Makefile.lurette_lib 2930 1066840252 c/2_Makefile.l 1.24)
(polka/caml/polka_parser.mly 1729 1047029868 d/40_polka_pars 1.1)
(mlcuddidl/bdd.idl 18233 1034006019 d/7_bdd.idl 1.1)
(test/heater_int.lus 170 1020068208 b/43_heater_int 1.1)
......@@ -155,21 +155,21 @@
(share/pixmaps/save.xpm 867 1055926783 f/12_save.xpm 1.1)
(source/solver.mli 1481 1065787303 38_solver.mli 1.18)
(test/passerelle.luc 963 1063786164 b/17_passerelle 1.12)
(source/store.ml 46244 1065787303 b/27_rnumsolver 1.28)
(source/store.ml 35228 1066840252 b/27_rnumsolver 1.29)
(mlcuddidl/mtbdd.mli 4395 1034006019 c/43_mtbdd.mli 1.1)
(test/sparc-scade/exo1.vsp 2089 1055487917 e/49_exo1.vsp 1.1)
(polka/C/satmat.h 1254 1047029868 d/48_satmat.h 1.1)
(share/pixmaps/stop.xpm 6385 1055926783 f/8_stop.xpm 1.1)
(test/window.luc 4336 1063786164 g/15_window.luc 1.1)
(source/ne.ml 10307 1063029729 c/21_ne.ml 1.9)
(source/ne.ml 10665 1066840252 c/21_ne.ml 1.10)
(source/gen_stubs_poc.ml 8873 1055926783 f/3_gen_stubs_ 1.1)
(mlcuddidl/session.ml 603 1034006019 c/37_session.ml 1.1)
(demo-xlurette/chaudiere/chaudiere_oracle.lus 107 1031732392 c/8_chaudiere_ 1.1)
(share/Makefile.lurette.in 4414 1063029729 b/38_Makefile.l 1.27)
(source/graph.mli 2382 1063029729 13_graph.mli 1.11)
(source/store.mli 3324 1065787303 b/26_rnumsolver 1.20)
(test/time-ossau.res 9311 1065787303 b/49_time.res 1.54)
(source/automata.ml 20686 1065787303 b/47_automata.m 1.14)
(source/store.mli 3329 1066840252 b/26_rnumsolver 1.21)
(test/time-ossau.res 9556 1066840252 b/49_time.res 1.55)
(source/automata.ml 20685 1066840252 b/47_automata.m 1.15)
(test/sparc-scade/libmath.saofdm 1378 1055487917 e/45_libmath.sa 1.1)
(Makefile 68 1051024737 d/13_Makefile 1.4)
(share/Makefile.test.in 2712 1064329011 c/25_user-rules 1.10)
......@@ -180,7 +180,7 @@
(cuddaux/Makefile 3326 1053337243 c/35_Makefile 1.7)
(polka/C/bit.c 3026 1047029868 e/10_bit.c 1.1)
(source/draw.mli 452 1065787303 f/1_draw.mli 1.2)
(test/time-ossau.exp 8420 1064415295 b/48_time.exp 1.50)
(test/time-ossau.exp 9311 1066840252 b/48_time.exp 1.51)
(polka/caml/polkaIO.ml 1652 1047029868 d/44_polkaIO.ml 1.1)
(mlcuddidl/macros.m4 11290 1034006019 c/49_macros.m4 1.1)
(source/print.ml 5732 1063029729 47_print.ml 1.24)
......@@ -196,7 +196,7 @@
(cuddaux/README 1427 1034006019 c/34_README 1.1)
(mlcuddidl/bdd.ml 10889 1034006019 d/6_bdd.ml 1.1)
(source/lurettetop.ml 47330 1065787303 c/1_lurettetop 1.42)
(source/constraint.ml 2784 1063029729 c/19_constraint 1.8)
(source/constraint.ml 3001 1066840252 c/19_constraint 1.9)
(test/structured_type.luc 2224 1063786164 g/32_structured 1.1)
(source/formula_to_bdd.ml 13269 1064415295 g/34_formula_to 1.1)
(test/cygwin-scade/counter.saofd 587 1055926783 g/2_counter.sa 1.1)
......@@ -208,8 +208,8 @@
(test/Makefile 2729 1064411282 c/0_Makefile 1.14)
(INSTALL 101 1056616700 f/26_INSTALL 1.2)
(test/cygwin-scade/MyConsts.saofd 153 1055926783 f/44_MyConsts.s 1.1)
(test/losange-3d2.luc 375 1065787303 e/32_losange-3d 1.4)
(user-rules 30170 1065787303 c/14_myrules 1.45)
(test/losange-3d2.luc 371 1066840252 e/32_losange-3d 1.5)
(user-rules 30170 1066840252 c/14_myrules 1.46)
(test/infinite_weight.luc 889 1063786164 g/13_infinite_w 1.1)
(mlcuddidl/cudd_caml.c 22890 1034006019 d/3_cudd_caml. 1.1)
(polka/C/config.h 77 1047029868 e/13_config.h 1.1)
......@@ -261,20 +261,21 @@
(source/Makefile.gen_stubs 741 1063786164 b/42_Makefile.g 1.8)
(test/temp_float.luc 680 1063786164 b/51_temp_float 1.10)
(polka/C/polka.c 4969 1047029868 e/6_polka.c 1.1)
(source/polyhedron.mli 1383 1065787303 d/26_polyhedron 1.4)
(source/polyhedron.mli 1493 1066840252 d/26_polyhedron 1.5)
(test/test_losange.lus 88 1055926783 f/27_test_losan 1.1)
(mlcuddidl/bdd.mli 8573 1034006019 d/5_bdd.mli 1.1)
(test/cygwin-scade/compute_path.saofd 1662 1055926783 g/5_compute_pa 1.1)
(polka/C/polka.h 1478 1047029868 d/50_polka.h 1.1)
(share/pixmaps/ediff-quit.xpm 494 1055926783 f/20_ediff-quit 1.1)
(test/cygwin-scade/Pilot.saofd 3645 1055926783 f/42_Pilot.saof 1.1)
(test/time-moucherotte.exp 4862 1064415295 e/37_time-mouch 1.8)
(test/time-moucherotte.exp 4855 1066840252 e/37_time-mouch 1.9)
(source/polyDraw.mli 1467 1066840252 g/44_polyDraw.m 1.1)
(source/command_line_luc_exe.ml 3832 1065787303 b/33_command_li 1.19)
(source/lurette_exe.c 220 1050421093 e/27_lurette_ex 1.2)
(source/env.ml 8492 1065787303 16_env.ml 1.33)
(share/pixmaps/close.xpm 803 1055926783 f/21_close.xpm 1.1)
(test/time-CHAILLOL.res 8235 1063029729 g/11_time-CHAIL 1.1)
(test/time-ecrins.res 9304 1065787303 d/20_time-ecrin 1.29)
(test/time-ecrins.res 9551 1066840252 d/20_time-ecrin 1.30)
(source/value.mli 1159 1063786164 c/24_value.mli 1.4)
(polka/Makefile.config 1683 1053337243 e/20_Makefile.c 1.5)
(test/vrai_tram.lus 564 1027066799 b/6_vrai_tram. 1.2)
......@@ -283,11 +284,11 @@
(test/cudd_gc_problem.luc 208372 1063029729 e/29_cudd_gc_pr 1.2)
(test/time-CHAILLOL.exp 8235 1063029729 g/10_time-CHAIL 1.1)
(demo-xlurette/chaudiere/chaudiere_ctrl.lus 178 1063786164 c/9_chaudiere_ 1.2)
(test/losange-3d.rif.exp 2683 1065787303 e/31_losange-3d 1.4)
(test/losange-3d.rif.exp 27445 1066840252 e/31_losange-3d 1.5)
(polka/documentation/Makefile 476 1047029868 e/18_Makefile 1.1)
(source/sim2chro.ml 3260 1063786164 b/24_sim2chro.m 1.20)
(cuddaux/cuddauxTDGenCof.c 15712 1034006019 c/26_cuddauxTDG 1.1)
(source/luc_exe.ml 14438 1065787303 b/32_ima_exe.ml 1.37)
(source/luc_exe.ml 14558 1066840252 b/32_ima_exe.ml 1.38)
(source/gne.mli 1853 1063029729 b/36_gne.mli 1.6)
(test/cygwin-scade/Direction_D1.saofd 1298 1055926783 f/50_Direction_ 1.1)
(source/lurette.ml 19658 1065787303 12_lurette.ml 1.76)
......@@ -305,6 +306,7 @@
(polka/Makefile 1636 1047029868 e/21_Makefile 1.1)
(test/dynamic_weight.luc 563 1063786164 g/14_dynamic_we 1.1)
(test/porte.luc 1014 1063786164 b/16_porte.env 1.12)
(source/polyDraw.ml 22045 1066840252 g/43_polyDraw.m 1.1)
(source/gen_stubs_common.mli 1772 1055487917 e/40_gen_stubs_ 1.1)
(test/cygwin-scade/scade.rif.exp 1380 1063029729 g/7_scade.rif. 1.2)
(share/gnuplot-rif 1427 1064329011 e/34_gnuplot-ri 1.5)
......
......@@ -12,28 +12,39 @@ OCAMLMAKEFILE = $(HOME)/lurette/OcamlMakefile
LURETTE_PATH = $(HOME)/lurette
SOURCES_LURETTE_LIB = \
$(LURETTE_PATH)/source/util.ml \
SOURCES_LURETTE_LIB = $(LURETTE_PATH)/source/util.ml \
$(LURETTE_PATH)/source/genlex.mli $(LURETTE_PATH)/source/genlex.ml \
$(LURETTE_PATH)/source/lexeme.mli $(LURETTE_PATH)/source/lexeme.ml \
$(LURETTE_PATH)/source/prevar.mli $(LURETTE_PATH)/source/prevar.ml \
$(LURETTE_PATH)/source/graph.mli $(LURETTE_PATH)/source/graph.ml \
$(LURETTE_PATH)/source/polyDraw.mli \
$(LURETTE_PATH)/source/polyDraw.ml \
$(LURETTE_PATH)/source/command_line.mli $(LURETTE_PATH)/source/command_line.ml \
$(LURETTE_PATH)/source/value.mli $(LURETTE_PATH)/source/value.ml \
$(LURETTE_PATH)/source/ne.mli $(LURETTE_PATH)/source/ne.ml \
$(LURETTE_PATH)/source/constraint.mli $(LURETTE_PATH)/source/constraint.ml \
$(LURETTE_PATH)/source/formula.mli $(LURETTE_PATH)/source/formula.ml \
$(LURETTE_PATH)/source/lustreExp.mli $(LURETTE_PATH)/source/lustreExp.ml \
$(LURETTE_PATH)/source/parser.mly $(LURETTE_PATH)/source/lexer.mll \
$(LURETTE_PATH)/source/gne.mli $(LURETTE_PATH)/source/gne.ml \
$(LURETTE_PATH)/source/control.mli $(LURETTE_PATH)/source/control.ml \
$(LURETTE_PATH)/source/parse_env.mli $(LURETTE_PATH)/source/parse_env.ml \
$(LURETTE_PATH)/source/parse_luc.mli $(LURETTE_PATH)/source/parse_luc.ml \
$(LURETTE_PATH)/source/polyhedron.mli $(LURETTE_PATH)/source/polyhedron.ml \
$(LURETTE_PATH)/source/draw.mli $(LURETTE_PATH)/source/draw.ml \
$(LURETTE_PATH)/source/store.mli $(LURETTE_PATH)/source/store.ml \
$(LURETTE_PATH)/source/env_state.mli $(LURETTE_PATH)/source/env_state.ml \
$(LURETTE_PATH)/source/formula_to_bdd.mli \
$(LURETTE_PATH)/source/formula_to_bdd.ml \
$(LURETTE_PATH)/source/bddd.mli \
$(LURETTE_PATH)/source/bddd.ml \
$(LURETTE_PATH)/source/fair_bddd.mli \
$(LURETTE_PATH)/source/fair_bddd.ml \
$(LURETTE_PATH)/source/solver.mli $(LURETTE_PATH)/source/solver.ml \
$(LURETTE_PATH)/source/show_env.mli $(LURETTE_PATH)/source/show_env.ml \
$(LURETTE_PATH)/source/automata.mli $(LURETTE_PATH)/source/automata.ml \
$(LURETTE_PATH)/source/print.mli $(LURETTE_PATH)/source/print.ml \
$(LURETTE_PATH)/source/sim2chro.mli $(LURETTE_PATH)/source/sim2chro.ml \
$(LURETTE_PATH)/source/env.mli $(LURETTE_PATH)/source/env.ml
$(LURETTE_PATH)/source/env.mli $(LURETTE_PATH)/source/env.ml \
$(LURETTE_PATH)/source/lurette.ml
ALL_SOURCES = $(SOURCES_LURETTE_LIB) $(SOURCES_OCAML)
......
......@@ -10,6 +10,9 @@
-> if suffit de refaire en un env_try false 1 0 0 ....
* quand une formule s'avere fausse du point de vue des variables
numeriques, il ne faut pas repartir du haut du graphe, mais backtraker
depuis la branche qui s'avere fausse...
* compilé en mode "assert", lurette se fait tuer par un signal 11
au bout d'une dizaine de pas...
......
;; -*- Prcs -*-
(Created-By-Prcs-Version 1 3 3)
(Project-Description "Lurette")
(Project-Version lurette 1 7)
(Parent-Version lurette 1 6)
(Project-Version lurette 1 8)
(Parent-Version lurette 1 7)
(Version-Log "
Implement a new drawing policy in polyhedron.
source/fair_bddd.ml: [new]
source/fair_bddd.mli: [new]
The same as bddd, but taking polyhedron volume into account.
The idea is to base the base (which is not so expensive), and to draw
in othogonal hypercube that is as small as possible until a point in
the polyhedron is found. However, it may happens in high dimension (>4)
that the volume of the cube is much bigger. In that case, after a few tries,
i call the old (unfair) method.
source/bddd.ml:
It is useless to store both bdd and not bdd, because it is just
so easy to recompute the sol nb of not bdd (by switchinf the
pair of sol numbers!).
polyDram.ml/mli:
new module containing all the thing related to the drawing inside
a convex polyhedron.
Give up the idea of random walk (not clear what should be the default
step and length in big dimension).
source/lurettetop.ml:
source/lurette.ml:
source/luc_exe.ml:
add a --compute-poly-volume option that makes lurette use
fair_bddd instead of bddd.
")
(New-Version-Log ""
)
(Checkin-Time "Fri, 10 Oct 2003 14:01:43 +0200")
(Checkin-Time "Wed, 22 Oct 2003 18:30:52 +0200")
(Checkin-Login jahier)
(Populate-Ignore ())
(Project-Keywords)
......@@ -38,7 +36,7 @@ source/luc_exe.ml:
;; Sources files for luc_exe
(source/luc_exe.mli (lurette/b/31_ima_exe.ml 1.2 644))
(source/luc_exe.ml (lurette/b/32_ima_exe.ml 1.37 644))
(source/luc_exe.ml (lurette/b/32_ima_exe.ml 1.38 644))
(source/command_line_luc_exe.ml (lurette/b/33_command_li 1.19 644))
(source/command_line_luc_exe.mli (lurette/b/34_command_li 1.12 644))
......@@ -57,24 +55,24 @@ source/luc_exe.ml:
(source/env.mli (lurette/15_env.mli 1.19 644))
(source/env.ml (lurette/16_env.ml 1.33 644))
(source/util.ml (lurette/35_util.ml 1.56 644))
(source/util.ml (lurette/35_util.ml 1.57 644))
(source/formula_to_bdd.ml (lurette/g/34_formula_to 1.1 644))
(source/formula_to_bdd.mli (lurette/g/35_formula_to 1.2 644))
(source/fair_bddd.ml (lurette/g/38_fair_bddd. 1.1 644))
(source/fair_bddd.mli (lurette/g/39_fair_bddd. 1.1 644))
(source/fair_bddd.ml (lurette/g/38_fair_bddd. 1.2 644))
(source/fair_bddd.mli (lurette/g/39_fair_bddd. 1.2 644))
(source/bddd.ml (lurette/g/36_bddd.ml 1.3 644))
(source/bddd.mli (lurette/g/37_bddd.mli 1.3 644))
(source/solver.mli (lurette/38_solver.mli 1.18 644))
(source/solver.ml (lurette/39_solver.ml 1.56 644))
(source/polyhedron.ml (lurette/d/25_polyhedron 1.9 644))
(source/polyhedron.mli (lurette/d/26_polyhedron 1.4 644))
(source/polyhedron.ml (lurette/d/25_polyhedron 1.10 644))
(source/polyhedron.mli (lurette/d/26_polyhedron 1.5 644))
(source/store.mli (lurette/b/26_rnumsolver 1.20 644))
(source/store.ml (lurette/b/27_rnumsolver 1.28 644))
(source/store.mli (lurette/b/26_rnumsolver 1.21 644))
(source/store.ml (lurette/b/27_rnumsolver 1.29 644))
(source/pnumsolver.ml (lurette/d/23_pnumsolver 1.2 644))
(source/pnumsolver.mli (lurette/d/24_pnumsolver 1.2 644))
......@@ -98,7 +96,7 @@ source/luc_exe.ml:
(source/env_state.ml (lurette/51_env_state. 1.49 644))
(source/automata.mli (lurette/b/46_automata.m 1.5 644))
(source/automata.ml (lurette/b/47_automata.m 1.14 644))
(source/automata.ml (lurette/b/47_automata.m 1.15 644))
(source/sim2chro.mli (lurette/b/23_sim2chro.m 1.7 644))
(source/sim2chro.ml (lurette/b/24_sim2chro.m 1.20 644))
......@@ -124,11 +122,11 @@ source/luc_exe.ml:
(source/control.mli (lurette/c/3_control.ml 1.3 644))
(source/control.ml (lurette/c/4_control.ml 1.5 644))
(source/constraint.mli (lurette/c/18_constraint 1.6 644))
(source/constraint.ml (lurette/c/19_constraint 1.8 644))
(source/constraint.mli (lurette/c/18_constraint 1.7 644))
(source/constraint.ml (lurette/c/19_constraint 1.9 644))
(source/ne.ml (lurette/c/21_ne.ml 1.9 644))
(source/ne.mli (lurette/c/22_ne.mli 1.7 644))
(source/ne.ml (lurette/c/21_ne.ml 1.10 644))
(source/ne.mli (lurette/c/22_ne.mli 1.8 644))
(source/value.ml (lurette/c/23_value.ml 1.6 644))
(source/value.mli (lurette/c/24_value.mli 1.4 644))
......@@ -168,19 +166,19 @@ source/luc_exe.ml:
(share/pixmaps/button-close.xpm (lurette/f/24_button-clo 1.1 644))
(share/config.guess (lurette/f/25_config.gue 1.1 755))
(share/configure.in (lurette/d/11_configure. 1.14 644))
(Makefile.common.source (lurette/e/33_Makefile.c 1.5 644))
(Makefile.common.source (lurette/e/33_Makefile.c 1.6 644))
(OcamlMakefile (lurette/17_OcamlMakef 1.51 644))
(share/Makefile.lurette.in (lurette/b/38_Makefile.l 1.27 644))
(user-rules (lurette/c/14_myrules 1.45 644))
(user-rules (lurette/c/14_myrules 1.46 644))
(share/Makefile.test.in (lurette/c/25_user-rules 1.10 644))
(Makefile (lurette/d/13_Makefile 1.4 644))
(source/Makefile.lurettetop (lurette/d/14_Makefile.l 1.5 644))
(source/Makefile.gen_fake_lutin (lurette/d/17_Makefile.g 1.4 644))
(source/Makefile.show_luc (lurette/b/40_Makefile.s 1.11 644))
(source/Makefile.lucky (lurette/b/41_Makefile.i 1.25 644))
(source/Makefile.lucky (lurette/b/41_Makefile.i 1.26 644))
(source/Makefile.gen_stubs (lurette/b/42_Makefile.g 1.8 644))
(source/Makefile.lurette_lib (lurette/c/2_Makefile.l 1.23 644))
(source/Makefile.lurette_lib (lurette/c/2_Makefile.l 1.24 644))
(source/Makefile (lurette/c/20_Makefile 1.24 644))
;; Documentation
......@@ -196,19 +194,19 @@ source/luc_exe.ml:
(ID_EN_VRAC (lurette/0_ID_EN_VRAC 1.1 644))
(INSTALL (lurette/f/26_INSTALL 1.2 744))
(TAGS (lurette/21_TAGS 1.6 644))
(TODO (lurette/d/22_TODO 1.26 644))
(TODO (lurette/d/22_TODO 1.27 644))
(share/lucky_init.csh.in (lurette/e/23_lucky_init 1.8 644))
(share/lucky_init.sh.in (lurette/e/24_lucky_init 1.11 644))
(share/gnuplot-rif (lurette/e/34_gnuplot-ri 1.5 744))
(share/plot (lurette/e/35_plot 1.4 744))
(test/time-ossau.exp (lurette/b/48_time.exp 1.50 644))
(test/time-ossau.res (lurette/b/49_time.res 1.54 644))
(test/time-ecrins.res (lurette/d/20_time-ecrin 1.29 644))
(test/time-ecrins.exp (lurette/d/21_time-ecrin 1.28 644))
(test/time-moucherotte.exp (lurette/e/37_time-mouch 1.8 644))
(test/time-moucherotte.res (lurette/e/38_time-mouch 1.9 644))
(test/time-ossau.exp (lurette/b/48_time.exp 1.51 644))
(test/time-ossau.res (lurette/b/49_time.res 1.55 644))
(test/time-ecrins.res (lurette/d/20_time-ecrin 1.30 644))
(test/time-ecrins.exp (lurette/d/21_time-ecrin 1.29 644))
(test/time-moucherotte.exp (lurette/e/37_time-mouch 1.9 644))
(test/time-moucherotte.res (lurette/e/38_time-mouch 1.10 644))
;; Various files used for testing purposes
(test/cudd_gc_problem.luc (lurette/e/29_cudd_gc_pr 1.2 644))
......@@ -228,9 +226,9 @@ source/luc_exe.ml:
(test/vrai_tram.lus (lurette/b/6_vrai_tram. 1.2 644))
(test/test_losange.lus (lurette/f/27_test_losan 1.1 644))
(test/losange-3d2.luc (lurette/e/32_losange-3d 1.4 644))
(test/losange-3d2.luc (lurette/e/32_losange-3d 1.5 644))
(test/onlyroll.lus (../demo-xlurette/Gyro/onlyroll.lus) :symlink)
(test/gyro.rif.exp (lurette/e/36_gyro.rif.e 1.5 644))
(test/gyro.rif.exp (lurette/e/36_gyro.rif.e 1.6 644))
(test/giro.luc (../demo-xlurette/Gyro/giro.luc) :symlink)
(test/allocator.lus (../demo-xlurette/Gyro/allocator.lus) :symlink)
......@@ -294,7 +292,7 @@ source/luc_exe.ml:
(test/losange.luc (lurette/d/27_losange.lu 1.2 644))
(test/losange-3d.luc (lurette/d/28_losange-3d 1.4 644))
(test/losange-3d.rif.exp (lurette/e/31_losange-3d 1.4 644))
(test/losange-3d.rif.exp (lurette/e/31_losange-3d 1.5 644))
(test/test7.rif.exp (lurette/g/12_test7.rif. 1.1 644))
(test/infinite_weight.luc (lurette/g/13_infinite_w 1.1 644))
......@@ -454,11 +452,6 @@ source/luc_exe.ml:
(test/heater.lus (lurette/g/33_heater.lus 1.1 644))
;; Files added by populate at Fri, 26 Sep 2003 09:12:12 +0200,
;; to version 1.6(w), by jahier:
;; Files added by populate at Mon, 29 Sep 2003 09:41:23 +0200,
;; to version 1.6(w), by jahier:
......@@ -472,7 +465,17 @@ source/luc_exe.ml:
;; Files added by populate at Wed, 01 Oct 2003 13:55:59 +0200,
;; to version 1.6(w), by jahier:
(test/losange-10d.luc (lurette/g/42_losange-10 1.1 644))
(test/losange-10d.luc (lurette/g/42_losange-10 1.2 644))
;; Files added by populate at Fri, 17 Oct 2003 12:22:17 +0200,
;; to version 1.7(w), by jahier:
(source/polyDraw.ml (lurette/g/43_polyDraw.m 1.1 644))
;; Files added by populate at Fri, 17 Oct 2003 12:22:20 +0200,
;; to version 1.7(w), by jahier:
(source/polyDraw.mli (lurette/g/44_polyDraw.m 1.1 644))
)
(Merge-Parents)
(New-Merge-Parents)
......@@ -34,6 +34,8 @@ SOURCES_OCAML = \
$(LURETTE_PATH)/source/lexeme.mli $(LURETTE_PATH)/source/lexeme.ml \
$(LURETTE_PATH)/source/graph.mli \
$(LURETTE_PATH)/source/graph.ml \
$(LURETTE_PATH)/source/polyDraw.mli \
$(LURETTE_PATH)/source/polyDraw.ml \
$(LURETTE_PATH)/source/prevar.mli \
$(LURETTE_PATH)/source/prevar.ml \
$(LURETTE_PATH)/source/command_line_luc_exe.mli \
......
......@@ -38,6 +38,8 @@ SOURCES = $(SOURCES_C) \
$(LURETTE_PATH)/source/lexeme.mli $(LURETTE_PATH)/source/lexeme.ml \
$(LURETTE_PATH)/source/prevar.mli $(LURETTE_PATH)/source/prevar.ml \
$(LURETTE_PATH)/source/graph.mli $(LURETTE_PATH)/source/graph.ml \
$(LURETTE_PATH)/source/polyDraw.mli \
$(LURETTE_PATH)/source/polyDraw.ml \
$(LURETTE_PATH)/source/command_line.mli $(LURETTE_PATH)/source/command_line.ml \
$(LURETTE_PATH)/source/value.mli $(LURETTE_PATH)/source/value.ml \
$(LURETTE_PATH)/source/ne.mli $(LURETTE_PATH)/source/ne.ml \
......
......@@ -154,7 +154,7 @@ let show_automata str a =
(**
The resulting automaton should not contain any cycle (which would be useless
anyway) otherwise I would loop^during ther draw.
anyway) otherwise I would loop during the draw.
Moreover, the automaton should not be a dag, otherwise, I am into trouble
whenever I want to remove a path that leaded to an unsatisfiable formula.
......
......@@ -98,7 +98,13 @@ let (apply_substl : Ne.subst list -> t -> t) =
| EqZ(ne) -> EqZ(Ne.apply_substl s ne)
(* exported *)
let (eval_ineq : Formula.num_subst list -> ineq -> bool) =
fun s ineq ->
match ineq with
GZ(ne) -> Value.num_sup_zero(Ne.eval ne s)
| GeqZ(ne) -> Value.num_supeq_zero(Ne.eval ne s)
(* exported *)
......@@ -110,8 +116,8 @@ let (get_vars_ineq : ineq -> string list) =
(* exported *)
let (get_vars : t -> string list) =
fun ineq ->
match ineq with
fun cstr ->
match cstr with
Bv vn -> [vn.n]
| EqZ ne -> Ne.get_vars ne
| Ineq ineq -> get_vars_ineq ineq
......
......@@ -49,3 +49,4 @@ val opp_ineq : ineq -> ineq
val to_string : t -> string
val ineq_to_string : ineq -> string
val eval_ineq : Formula.num_subst list -> ineq -> bool
......@@ -90,7 +90,6 @@ let (init_snt : unit -> unit) =
let (clear_snt: unit -> unit) =
fun _ ->
Hashtbl.clear !snt_ref;
Hashtbl.clear !(Store.store_volume);
init_snt ()
let (sol_number_exists : Bdd.t -> Store.t -> snt -> bool) =
......
......@@ -66,7 +66,7 @@ val clear_snt : unit -> unit
val draw_in_bdd : Formula.var list -> Bdd.t -> Bdd.t ->
Formula.subst list * Store.t' * Store.p
Formula.subst list * Store.t' * Store.p
(**
[draw_in_bdd varl bdd comb] returns a draw of the Boolean variables
as well as a range base and a polyhedron based representation of
......
......@@ -527,8 +527,9 @@ try main () with e ->
print_string "\n";;
(* output_string stderr ("\n cpt = " ^ (string_of_int !(Store.cpt)) ^ "/" ^ (string_of_int !(Store.cpt2)) ^ "\n") ;; *)
print_string "\n";;
(* let _ = Callback.register "lurette_main" main;; *)
......
......@@ -367,6 +367,24 @@ let (get_vars : t -> string list) =
[]
)
(* exported *)
let (eval : t -> Formula.num_subst list -> num) =
fun ne s ->
let acc0 = match (snd (List.hd s)) with I _ -> I 0 | F _ -> F 0.0 in
(StringMap.fold
(fun vn v acc ->
if
vn = ""
then
Value.add_num acc v
else
Value.add_num acc (Value.mult_num v (List.assoc vn s))
)
ne
acc0
)
(****************************************************************************)
......
......@@ -74,3 +74,4 @@ val substl_to_string : subst list -> string
val to_string_gen : (Value.num -> string) -> string -> t -> string
val to_string : t -> string
val print : t -> unit
val eval : t -> Formula.num_subst list -> Value.num
This diff is collapsed.
(*-----------------------------------------------------------------------
** Copyright (C) 2003 - Verimag.
** This file may only be copied under the terms of the GNU Library General
** Public License
**-----------------------------------------------------------------------
**
** File: polyDraw.mli
** Main author: jahier@imag.fr
*)
(** implement an algorithm to draw uniformally in a convex polyhedron *)
type point = float list
type vector = float list
val print_points : point list -> unit
val scal_prod : vector -> vector -> float
val vect_norm : vector -> float
(** returns the cooedinate of the smallest hypercube containing a
convex Polyhedron defined by a set of generators *)
val hypercube : point list -> (float * float) list
type parallelogram
(** parallelogram envelopping a convex Polyhedron defined by
a set of generators.
*)
val compute_parellelogram : point list -> parallelogram
(** Draw one point in a parallelogram. *)
val one_point_parellelogram : parallelogram -> point
(** Draw n points in a parallelogram. *)
val n_points_parellelogram : parallelogram -> int -> point list
(** This one is cheaper, but a little bit unfair (i.e., not uniform) *)
val draw_point_cheap : point list -> point
(** draw n points among pl (any point may be drawn several times) *)
val draw_n_distinc_points : int -> point list -> point list
val draw_n_points : int -> point list -> point list
val parallelogram_volume : parallelogram -> float
......@@ -12,6 +12,7 @@ open Formula
open Constraint
open Value
open Util
open PolyDraw
module StringSet = struct
include Set.Make(struct type t = string let compare = compare end)
...