Commit 8d595778 authored by Erwan Jahier's avatar Erwan Jahier

lurette 0.128 Mon, 03 Mar 2003 10:01:09 +0100 by jahier

Parent-Version:      0.127
Version-Log:

source/parse_env.ml:
source/env_state.ml:
source/env_state.mli:
   Add support for transient /recurrent nodes (not plugged yet).

source/parse_env.ml:
source/solver.ml:
source/formula.ml
source/formula.mli:
test/*.luc:
  Add the possibity to define formula and num expr aliases
  (a request from Bertrand).

test/losange.luc: [new file]
test/losange-3d.luc: [new file]
test/test_losange.lus: [new file]
user-rules:
   Add the losange in the non-regression test

source/luc_exe.ml:
source/command_line_luc_exe.ml:
   Add an option that lets one see local vars in lucky output.

Project-Description: Lurette
parent 09d218f2
;; This file is automatically generated, editing may cause PRCS to do
;; REALLY bad things.
(Created-By-Prcs-Version 1 3 3)
(source/automata.ml 15954 1036675177 b/47_automata.m 1.6)
(source/formula.mli 2811 1045834161 44_formula.ml 1.21)
(source/automata.ml 19223 1046682069 b/47_automata.m 1.7)
(source/formula.mli 2862 1046682069 44_formula.ml 1.22)
(test/heater_float.lus 177 1034351455 b/44_heater_flo 1.2)
(test/passerelle.luc 999 1045841411 b/17_passerelle 1.9)
(test/passerelle.luc 995 1046682069 b/17_passerelle 1.10)
(doc/synthese 2556 1007379917 b/2_synthese 1.1)
(source/polyhedron.mli 940 1045489850 d/26_polyhedron 1.1)
(test/temp_float.luc 745 1045841411 b/51_temp_float 1.5)
(test/temp_float.luc 743 1046682069 b/51_temp_float 1.6)
(test/ControleurPorte.rif.exp 4860 1034951022 b/29_Controleur 1.11)
(doc/ocamldoc.sty 1380 1008328137 b/12_ocamldoc.s 1.1)
(mlcuddidl/Makefile 7150 1034006019 d/9_Makefile 1.1)
(test/tram_simple.h 1746 1013519411 b/25_tram_simpl 1.1)
(test/time-ossau.res 6497 1046074449 b/49_time.res 1.35)
(test/time-ossau.res 8312 1046682069 b/49_time.res 1.36)
(mlcuddidl/session.ml 603 1034006019 c/37_session.ml 1.1)
(cuddaux/cuddauxGenCof.c 12011 1034006019 c/29_cuddauxGen 1.1)
(mlcuddidl/rdd.idl 14806 1034006019 c/42_rdd.idl 1.1)
......@@ -21,20 +21,20 @@
(mlcuddidl/sedscript 203 1034006019 c/38_sedscript 1.1)
(source/automata.mli 3396 1033738731 b/46_automata.m 1.3)
(test/heater_int.rif.exp 886 1034951022 b/28_heater_int 1.10)
(source/ne.ml 9275 1045489850 c/21_ne.ml 1.5)
(source/ne.ml 9281 1046682069 c/21_ne.ml 1.6)
(source/store.mli 2891 1046074449 b/26_rnumsolver 1.16)
(source/prevar.ml 981 1037192189 d/18_prevar.ml 1.1)
(test/time-ecrins.exp 6496 1046074449 d/21_time-ecrin 1.9)
(test/time-ecrins.exp 8320 1046682069 d/21_time-ecrin 1.10)
(source/value.mli 1101 1033723811 c/24_value.mli 1.1)
(user-rules.skel 1167 1040226023 c/25_user-rules 1.2)
(source/Makefile.gen_stubs 212 1036048863 b/42_Makefile.g 1.5)
(test/heater_float.rif.exp 1116 1045834161 b/30_heater_flo 1.12)
(test/temp_int.luc 700 1045841411 b/50_temp_int.e 1.4)
(source/luc_exe.ml 12758 1046074449 b/32_ima_exe.ml 1.26)
(test/temp_int.luc 698 1046682069 b/50_temp_int.e 1.5)
(source/luc_exe.ml 13432 1046682069 b/32_ima_exe.ml 1.27)
(source/prevar.mli 623 1037192189 d/19_prevar.mli 1.1)
(source/graph.ml 2339 1037625990 14_graph.ml 1.8)
(ihm/xlurette/makefile 1601 1040226023 c/16_makefile 1.7)
(test/usager.luc 510 1045841411 b/14_usager.env 1.10)
(test/usager.luc 508 1046682069 b/14_usager.env 1.11)
(mlcuddidl/manager.ml 8017 1034006019 c/47_manager.ml 1.1)
(cuddaux/cuddauxInt.h 2058 1034006019 c/28_cuddauxInt 1.1)
(cuddaux/cuddauxTDGenCof.c 15712 1034006019 c/26_cuddauxTDG 1.1)
......@@ -42,33 +42,34 @@
(source/env.ml 8013 1027349504 16_env.ml 1.29)
(demo/chaudiere/buggy_chaudiere_ctrl.lus 219 1031732392 c/10_buggy_chau 1.1)
(source/Makefile.show_luc 1026 1037192189 b/40_Makefile.s 1.8)
(source/env_state.mli 6791 1046074449 50_env_state. 1.27)
(test/losange.luc 444 1046682069 d/27_losange.lu 1.1)
(source/env_state.mli 6937 1046682069 50_env_state. 1.28)
(mlcuddidl/idd.ml 7061 1034006019 d/0_idd.ml 1.1)
(test/time-ossau.exp 6497 1046074449 b/48_time.exp 1.32)
(test/time-ossau.exp 8312 1046682069 b/48_time.exp 1.33)
(source/print.mli 1136 1045558187 46_print.mli 1.13)
(mlcuddidl/rdd.mli 7174 1034006019 c/40_rdd.mli 1.1)
(test/Makefile 32 1035531408 c/0_Makefile 1.8)
(source/parse_env.ml 33544 1045849760 41_parse_env. 1.38)
(source/parse_env.ml 36957 1046682069 41_parse_env. 1.39)
(ihm/xlurette/xlurette_glade_main.ml 23620 1046074449 c/12_xlurette_g 1.16)
(demo/chaudiere/chaudiere_oracle.lus 107 1031732392 c/8_chaudiere_ 1.1)
(source/solver.ml 29799 1046074449 39_solver.ml 1.44)
(source/solver.ml 30947 1046682069 39_solver.ml 1.45)
(source/pnumsolver.ml 9273 1045489850 d/23_pnumsolver 1.2)
(test/ControleurPorte.lus 3219 1032940601 c/17_Controleur 1.1)
(source/gen_fake_lutin.ml 3449 1036048863 d/16_gen_fake_l 1.1)
(source/lurette.ml 14452 1046074449 12_lurette.ml 1.63)
(TODO 5368 1045849760 d/22_TODO 1.6)
(TODO 5509 1046682069 d/22_TODO 1.7)
(source/Makefile 1627 1044958837 c/20_Makefile 1.10)
(source/util.ml 21073 1045849760 35_util.ml 1.40)
(mlcuddidl/manager.mli 7912 1034006019 c/46_manager.ml 1.1)
(doc/Interface_draft 5232 1003928781 19_Interface_ 1.1)
(source/sim2chro.mli 1524 1037625990 b/23_sim2chro.m 1.6)
(source/command_line_luc_exe.mli 1095 1046074449 b/34_command_li 1.8)
(source/command_line_luc_exe.mli 1130 1046682069 b/34_command_li 1.9)
(test/giro/onlyroll.lus 18298 1031732392 c/7_onlyroll.l 1.1)
(source/Makefile.lucky 2562 1045834161 b/41_Makefile.i 1.14)
(TAGS 9825 1007379917 21_TAGS 1.6)
(mlcuddidl/rdd.ml 8746 1034006019 c/41_rdd.ml 1.1)
(source/Makefile.lurette_lib 2023 1045834161 c/2_Makefile.l 1.14)
(source/parse_env.mli 1130 1045841411 40_parse_env. 1.12)
(source/parse_env.mli 1186 1046682069 40_parse_env. 1.13)
(source/gen_stubs.ml 27065 1036048863 24_generate_l 1.41)
(OcamlMakefile 22765 1045558187 17_OcamlMakef 1.47)
(source/polyhedron.ml 7493 1045834161 d/25_polyhedron 1.3)
......@@ -79,7 +80,7 @@
(test/porte.luc 994 1045841411 b/16_porte.env 1.9)
(make_lurette 1306 1034006019 27_make_luret 1.17)
(source/control.ml 4445 1036675177 c/4_control.ml 1.4)
(ihm/xlurette/xlurette_glade_interface.ml 32774 1046074449 c/15_xlurette_g 1.9)
(ihm/xlurette/xlurette_glade_interface.ml 32810 1046682069 c/15_xlurette_g 1.10)
(source/lurettetop.ml 31026 1046074449 c/1_lurettetop 1.26)
(mlcuddidl/README 1574 1034006019 d/8_README 1.1)
(cuddaux/README 1427 1034006019 c/34_README 1.1)
......@@ -87,17 +88,17 @@
(source/ne.mli 2116 1045834161 c/22_ne.mli 1.5)
(README 2266 1037625990 10_README 1.5)
(test/vrai_tram.lus 564 1027066799 b/6_vrai_tram. 1.2)
(source/env_state.ml 21351 1046074449 51_env_state. 1.39)
(source/env_state.ml 22475 1046682069 51_env_state. 1.40)
(mlcuddidl/manager_caml.c 39233 1034006019 c/45_manager_ca 1.1)
(mlcuddidl/mtbdd.mli 4395 1034006019 c/43_mtbdd.mli 1.1)
(source/env.mli 2026 1040290175 15_env.mli 1.17)
(mlcuddidl/rdd_caml.c 41613 1034006019 c/39_rdd_caml.c 1.1)
(Makefile.common.in 528 1034951022 d/12_Makefile.c 1.2)
(user-rules 15733 1045849760 c/14_myrules 1.25)
(user-rules 16167 1046682069 c/14_myrules 1.26)
(doc/archi.fig 3693 1003928781 20_archi.fig 1.1)
(source/lurette.mli 448 1016027474 11_lurette.ml 1.12)
(source/store.ml 30658 1046074449 b/27_rnumsolver 1.23)
(source/gne.mli 1552 1033397911 b/36_gne.mli 1.4)
(source/gne.mli 1557 1046682069 b/36_gne.mli 1.5)
(test/giro/giro.luc 2755 1033738731 c/6_giro.ima 1.4)
(source/show_env.mli 1091 1033738731 42_show_env.m 1.8)
(Makefile.lurette 574 1044958837 b/38_Makefile.l 1.16)
......@@ -117,39 +118,40 @@
(source/pnumsolver.mli 2322 1045489850 d/24_pnumsolver 1.2)
(cuddaux/Changes 42 1034006019 c/36_Changes 1.1)
(test/vrai_tram.h 2468 1027066799 b/7_vrai_tram. 1.3)
(test/tram.luc 1094 1045841411 b/15_tram.env 1.9)
(test/tram.luc 1092 1046682069 b/15_tram.env 1.10)
(source/eval.mli 1395 1027066799 48_eval.mli 1.10)
(mlcuddidl/mtbdd.ml 10185 1034006019 c/44_mtbdd.ml 1.1)
(demo/chaudiere/chaudiere_ctrl.lus 177 1031732392 c/9_chaudiere_ 1.1)
(source/control.mli 3208 1036675177 c/3_control.ml 1.3)
(source/formula.ml 5910 1045849760 45_formula.ml 1.27)
(source/formula.ml 5962 1046682069 45_formula.ml 1.28)
(cuddaux/Makefile 3091 1034006019 c/35_Makefile 1.1)
(test/test_gen_stubs.h 1818 1020068208 b/45_test_gen_s 1.1)
(doc/ocamldoc.hva 313 1008328137 b/13_ocamldoc.h 1.1)
(mlcuddidl/idd.idl 10595 1034006019 d/1_idd.idl 1.1)
(source/gne.ml 2767 1033397911 b/37_gne.ml 1.4)
(source/gne.ml 2774 1046682069 b/37_gne.ml 1.5)
(cuddaux/cuddaux.h 2381 1034006019 c/33_cuddaux.h 1.1)
(mlcuddidl/macros.m4 11290 1034006019 c/49_macros.m4 1.1)
(test/ControleurPorte.c 9407 1012914629 b/19_Controleur 1.1)
(source/Makefile.gen_fake_lutin 248 1036048863 d/17_Makefile.g 1.1)
(mlcuddidl/bdd.mli 8573 1034006019 d/5_bdd.mli 1.1)
(doc/automata_format 0 1007379917 b/3_automata_f 1.1)
(source/solver.mli 1003 1027092697 38_solver.mli 1.13)
(source/solver.mli 1003 1046682069 38_solver.mli 1.14)
(mlcuddidl/cudd_caml.c 22890 1034006019 d/3_cudd_caml. 1.1)
(source/print.ml 5787 1045558187 47_print.ml 1.22)
(test/ControleurPorte.h 2306 1012914629 b/18_Controleur 1.1)
(configure.in 5208 1034351455 d/11_configure. 1.1)
(cuddaux/cuddauxBridge.c 6099 1034006019 c/31_cuddauxBri 1.1)
(source/show_env.ml 3642 1037192189 43_show_env.m 1.16)
(test/losange-3d.luc 561 1046682069 d/28_losange-3d 1.1)
(mlcuddidl/Changes 64 1034006019 d/10_Changes 1.1)
(source/parse_poc.ml 7093 1036048863 d/15_parse_poc. 1.1)
(cuddaux/cuddauxAddIte.c 12812 1034006019 c/32_cuddauxAdd 1.1)
(source/sim2chro.ml 2721 1033397911 b/24_sim2chro.m 1.14)
(source/command_line_luc_exe.ml 3255 1046074449 b/33_command_li 1.11)
(source/sim2chro.ml 2742 1046682069 b/24_sim2chro.m 1.15)
(source/command_line_luc_exe.ml 3360 1046682069 b/33_command_li 1.12)
(mlcuddidl/cudd_caml.h 1210 1034006019 d/2_cudd_caml. 1.1)
(source/value.ml 2361 1045849760 c/23_value.ml 1.3)
(test/giro/allocator.lus 1087 1031732392 c/5_allocator. 1.1)
(test/time-ecrins.res 6496 1046074449 d/20_time-ecrin 1.9)
(test/time-ecrins.res 8320 1046682069 d/20_time-ecrin 1.10)
(lurette.depfull.dot 49 1007651448 b/5_lurette.de 1.2)
(mlcuddidl/idd.mli 5470 1034006019 c/51_idd.mli 1.1)
(ID_EN_VRAC 2184 1002196285 0_ID_EN_VRAC 1.1)
......@@ -5,6 +5,9 @@
*********** A faire maintenant
* Messages d'erreurs par terribles dans le parseur quand :
- il manque une virgule
- il y a une erreur dans l'un des mots clefs de champs
* Traiter les variables stables (signaux purs)
......@@ -43,7 +46,7 @@
peut-etre chercher a remettre en cause les choix qui ont été faits
lors des egalités (ie, le choix de la variable à substituer). Ce calcul
coute peut-etre un peu cher (car, comment faire autrement qu'essayer
toutes les possxibilités), mais au moins, ca donnerais une solution
toutes les possibilités), mais au moins, ca donnerais une solution
dans des cas ou les polyedres peteraient...
......
......@@ -881,7 +881,7 @@ let radiobutton_edges = GButton.radio_button
()
in
let _ = GtkBase.Widget.set_can_focus radiobutton_edges#as_widget true in
let _ = tooltips#set_tip ~text:"Draw among the edges of the polyhedra of solutions" radiobutton_edges#coerce in
let _ = tooltips#set_tip ~text:"Draw inside the convex hull of solutions, but a little bit more often among the edges " radiobutton_edges#coerce in
let radiobutton_vertices = GButton.radio_button
~group:radiobutton_inside#group
~packing:(hbox3#pack ~padding:0
......
;; -*- Prcs -*-
(Created-By-Prcs-Version 1 3 3)
(Project-Description "Lurette")
(Project-Version lurette 0 127)
(Parent-Version lurette 0 126)
(Project-Version lurette 0 128)
(Parent-Version lurette 0 127)
(Version-Log "
source/command_line_luc_exe.ml:
source/command_line_luc_exe.mli:
source/luc_exe.ml:
source/store.ml:
source/lurette.ml:
source/lurettetop.ml:
Put back the verteces draw. It was not such a great idea to remove
after all...
source/parse_env.ml:
source/env_state.ml:
source/env_state.mli:
Add support for transient /recurrent nodes (not plugged yet).
source/parse_env.ml:
source/solver.ml:
source/formula.ml
source/formula.mli:
test/*.luc:
Add the possibity to define formula and num expr aliases
(a request from Bertrand).
test/losange.luc: [new file]
test/losange-3d.luc: [new file]
test/test_losange.lus: [new file]
user-rules:
Add the losange in the non-regression test
Also change verteces into vertices (oops...).
source/luc_exe.ml:
source/command_line_luc_exe.ml:
Add an option that lets one see local vars in lucky output.
")
(New-Version-Log ""
)
(Checkin-Time "Mon, 24 Feb 2003 09:14:09 +0100")
(Checkin-Time "Mon, 03 Mar 2003 10:01:09 +0100")
(Checkin-Login jahier)
(Populate-Ignore ())
(Project-Keywords)
......@@ -30,10 +43,10 @@ source/lurettetop.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.26 644))
(source/luc_exe.ml (lurette/b/32_ima_exe.ml 1.27 644))
(source/command_line_luc_exe.ml (lurette/b/33_command_li 1.11 644))
(source/command_line_luc_exe.mli (lurette/b/34_command_li 1.8 644))
(source/command_line_luc_exe.ml (lurette/b/33_command_li 1.12 644))
(source/command_line_luc_exe.mli (lurette/b/34_command_li 1.9 644))
;; Sources files for lurette only
(source/lurette.mli (lurette/11_lurette.ml 1.12 644))
......@@ -51,8 +64,8 @@ source/lurettetop.ml:
(source/util.ml (lurette/35_util.ml 1.40 444))
(source/solver.mli (lurette/38_solver.mli 1.13 644))
(source/solver.ml (lurette/39_solver.ml 1.44 644))
(source/solver.mli (lurette/38_solver.mli 1.14 644))
(source/solver.ml (lurette/39_solver.ml 1.45 644))
(source/polyhedron.ml (lurette/d/25_polyhedron 1.3 644))
(source/polyhedron.mli (lurette/d/26_polyhedron 1.1 644))
......@@ -63,14 +76,14 @@ source/lurettetop.ml:
(source/pnumsolver.ml (lurette/d/23_pnumsolver 1.2 644))
(source/pnumsolver.mli (lurette/d/24_pnumsolver 1.2 644))
(source/parse_env.mli (lurette/40_parse_env. 1.12 644))
(source/parse_env.ml (lurette/41_parse_env. 1.38 644))
(source/parse_env.mli (lurette/40_parse_env. 1.13 644))
(source/parse_env.ml (lurette/41_parse_env. 1.39 644))
(source/show_env.mli (lurette/42_show_env.m 1.8 644))
(source/show_env.ml (lurette/43_show_env.m 1.16 644))
(source/formula.mli (lurette/44_formula.ml 1.21 644))
(source/formula.ml (lurette/45_formula.ml 1.27 644))
(source/formula.mli (lurette/44_formula.ml 1.22 644))
(source/formula.ml (lurette/45_formula.ml 1.28 644))
(source/print.mli (lurette/46_print.mli 1.13 644))
(source/print.ml (lurette/47_print.ml 1.22 644))
......@@ -78,17 +91,17 @@ source/lurettetop.ml:
(source/eval.mli (lurette/48_eval.mli 1.10 644))
(source/eval.ml (lurette/49_eval.ml 1.13 644))
(source/env_state.mli (lurette/50_env_state. 1.27 644))
(source/env_state.ml (lurette/51_env_state. 1.39 644))
(source/env_state.mli (lurette/50_env_state. 1.28 644))
(source/env_state.ml (lurette/51_env_state. 1.40 644))
(source/automata.mli (lurette/b/46_automata.m 1.3 644))
(source/automata.ml (lurette/b/47_automata.m 1.6 644))
(source/automata.ml (lurette/b/47_automata.m 1.7 644))
(source/sim2chro.mli (lurette/b/23_sim2chro.m 1.6 644))
(source/sim2chro.ml (lurette/b/24_sim2chro.m 1.14 644))
(source/sim2chro.ml (lurette/b/24_sim2chro.m 1.15 644))
(source/gne.mli (lurette/b/36_gne.mli 1.4 644))
(source/gne.ml (lurette/b/37_gne.ml 1.4 644))
(source/gne.mli (lurette/b/36_gne.mli 1.5 644))
(source/gne.ml (lurette/b/37_gne.ml 1.5 644))
(source/lurettetop.ml (lurette/c/1_lurettetop 1.26 644))
(source/gen_stubs.ml (lurette/24_generate_l 1.41 644))
......@@ -99,7 +112,7 @@ source/lurettetop.ml:
(source/constraint.mli (lurette/c/18_constraint 1.5 644))
(source/constraint.ml (lurette/c/19_constraint 1.6 644))
(source/ne.ml (lurette/c/21_ne.ml 1.5 644))
(source/ne.ml (lurette/c/21_ne.ml 1.6 644))
(source/ne.mli (lurette/c/22_ne.mli 1.5 644))
(source/value.ml (lurette/c/23_value.ml 1.3 644))
......@@ -119,7 +132,7 @@ source/lurettetop.ml:
(Makefile.common.in (lurette/d/12_Makefile.c 1.2 644))
(OcamlMakefile (lurette/17_OcamlMakef 1.47 644))
(Makefile.lurette (lurette/b/38_Makefile.l 1.16 644))
(user-rules (lurette/c/14_myrules 1.25 644))
(user-rules (lurette/c/14_myrules 1.26 644))
(user-rules.skel (lurette/c/25_user-rules 1.2 644))
(Makefile (lurette/d/13_Makefile 1.1 644))
......@@ -146,18 +159,18 @@ source/lurettetop.ml:
(lurette.depfull.dot (lurette/b/5_lurette.de 1.2 644))
(TAGS (lurette/21_TAGS 1.6 644))
(test/time-ossau.exp (lurette/b/48_time.exp 1.32 644))
(test/time-ossau.res (lurette/b/49_time.res 1.35 644))
(test/time-ecrins.res (lurette/d/20_time-ecrin 1.9 644))
(test/time-ecrins.exp (lurette/d/21_time-ecrin 1.9 644))
(test/time-ossau.exp (lurette/b/48_time.exp 1.33 644))
(test/time-ossau.res (lurette/b/49_time.res 1.36 644))
(test/time-ecrins.res (lurette/d/20_time-ecrin 1.10 644))
(test/time-ecrins.exp (lurette/d/21_time-ecrin 1.10 644))
;; Various files used for testing purposes
(test/usager.luc (lurette/b/14_usager.env 1.10 644))
(test/tram.luc (lurette/b/15_tram.env 1.9 644))
(test/usager.luc (lurette/b/14_usager.env 1.11 644))
(test/tram.luc (lurette/b/15_tram.env 1.10 644))
(test/porte.luc (lurette/b/16_porte.env 1.9 644))
(test/passerelle.luc (lurette/b/17_passerelle 1.9 644))
(test/temp_int.luc (lurette/b/50_temp_int.e 1.4 644))
(test/temp_float.luc (lurette/b/51_temp_float 1.5 644))
(test/passerelle.luc (lurette/b/17_passerelle 1.10 644))
(test/temp_int.luc (lurette/b/50_temp_int.e 1.5 644))
(test/temp_float.luc (lurette/b/51_temp_float 1.6 644))
(test/ControleurPorte.h (lurette/b/18_Controleur 1.1 644))
(test/ControleurPorte.c (lurette/b/19_Controleur 1.1 644))
......@@ -189,7 +202,7 @@ source/lurettetop.ml:
;; xlurette
(ihm/xlurette/xlurette_glade_main.ml (lurette/c/12_xlurette_g 1.16 644))
(ihm/xlurette/xlurette.glade (lurette/c/13_xlurette.g 1.10 644))
(ihm/xlurette/xlurette_glade_interface.ml (lurette/c/15_xlurette_g 1.9 644))
(ihm/xlurette/xlurette_glade_interface.ml (lurette/c/15_xlurette_g 1.10 644))
(ihm/xlurette/makefile (lurette/c/16_makefile 1.7 644))
......@@ -236,8 +249,18 @@ source/lurettetop.ml:
(mlcuddidl/Changes (lurette/d/10_Changes 1.1 644))
(TODO (lurette/d/22_TODO 1.6 644))
(TODO (lurette/d/22_TODO 1.7 644))
;; Files added by populate at Tue, 25 Feb 2003 11:30:11 +0100,
;; to version 0.127(w), by jahier:
(test/losange.luc (lurette/d/27_losange.lu 1.1 644))
;; Files added by populate at Tue, 25 Feb 2003 11:34:13 +0100,
;; to version 0.127(w), by jahier:
(test/losange-3d.luc (lurette/d/28_losange-3d 1.1 644))
)
(Merge-Parents)
(New-Merge-Parents)
(*-----------------------------------------------------------------------
** Copyright (C) 2001, 2002 - Verimag.
** Copyright (C) 2001 - 2003 - Verimag.
** This file may only be copied under the terms of the GNU Library General
** Public License
**-----------------------------------------------------------------------
......@@ -36,7 +36,7 @@ type arc_info_static = int * formula_eps * Control.state option
let (arc_info_static_to_string : arc_info_static -> string) =
fun (w, formula_eps, pcl) ->
let pc_str =
" XXX "
" XXX arc_info_static_to_string "
(* fold_left (fun acc str -> (acc^":"^str)) "" pcl *)
in
( (string_of_int w) ^ " " ^
......@@ -423,6 +423,18 @@ let (get : node list list -> t list) =
(****************************************************************************)
let (is_node_set_transient: IntSet.t -> bool) =
fun ns ->
(* A set of nodes is transient if one of the nodes in set is transient *)
(IntSet.fold
(fun e acc ->
acc || (Env_state.is_node_transient e)
)
ns
false
)
let rec (choose_a_formula: t -> node list * formula * Control.state) =
fun (node, trans) ->
(** Draws a formula in an automata (according to node weights);
......@@ -448,9 +460,9 @@ let rec (choose_a_formula: t -> node list * formula * Control.state) =
| Eps, Some _ -> assert false
else
let w_sum = List.fold_left (fun acc (_,(w,_,_)) -> acc+w) 0 nt_arc_l in
let j =
try Random.int (w_sum + 1)
with _ ->
let j =
try Random.int (w_sum + 1)
with _ ->
Control.print_state (Env_state.ctrl_state ());
(List.iter
(fun (nt,(w,f,st_opt)) ->
......@@ -479,6 +491,89 @@ let rec (choose_a_formula: t -> node list * formula * Control.state) =
| (nt, (w,Form(ff), Some st)) -> (IntSet.elements nt, ff, st)
| (nt, (w,Form(_), None)) -> assert false
| (nt, (w,Eps, Some _)) -> assert false
(* XXX Version with transient/recurrent nodes *)
(* let rec (choose_a_formula: formula -> t -> node list * formula * Control.state) = *)
(* fun f_acc (node, trans) -> *)
(* (** Draws a formula in an automata (according to node weights); *)
(* also returns the list of their corresponding target nodes, and *)
(* control expression. *) *)
(* let nt_arc_l0 = Graph.get_list_of_target_nodes trans node in *)
(* let (nt_arc_l, null_weigth_trans) = *)
(* List.partition (fun (_, (w,_,_)) -> w <> 0) nt_arc_l0 *)
(* in *)
(* if *)
(* (List.length nt_arc_l) = 0 *)
(* then *)
(* (* If all transitions have a weigth of 0, then we perform a *)
(* fair toss among them. *) *)
(* let s2 = List.length null_weigth_trans in *)
(* if s2 = 0 then raise Not_found *)
(* else *)
(* let (nt, (_,f,ce)) = List.nth null_weigth_trans (Random.int s2) in *)
(* match f,ce with *)
(* Form(ff), Some st -> *)
(* let new_f = And(f_acc, ff) in *)
(* if *)
(* Solver.is_satisfiable (Env_state.input ()) new_f *)
(* then *)
(* if *)
(* is_node_set_transient nt *)
(* then *)
(* choose_a_formula new_f (nt, trans) *)
(* else *)
(* (IntSet.elements nt, new_f, st) *)
(* else *)
(* raise Not_found *)
(* | Eps, None -> choose_a_formula f_acc (nt, trans) *)
(* | Form(_), None -> assert false *)
(* | Eps, Some _ -> assert false *)
(* else *)
(* let w_sum = List.fold_left (fun acc (_,(w,_,_)) -> acc+w) 0 nt_arc_l in *)
(* let j = *)
(* try Random.int (w_sum + 1) *)
(* with _ -> *)
(* Control.print_state (Env_state.ctrl_state ()); *)
(* (List.iter *)
(* (fun (nt,(w,f,st_opt)) -> *)
(* output_string stderr ("\n" ^ (string_of_int w) ); *)
(* match st_opt with *)
(* None -> output_string stderr "None" *)
(* | Some st -> Control.print_state st *)
(* ) *)
(* nt_arc_l ); *)
(* assert false *)
(* in *)
(* let rec get_jth_trans j list = *)
(* match list with *)
(* [] -> assert false *)
(* | (nt, (w,f,ce))::tail -> *)
(* let newj = j - w in *)
(* if *)
(* (newj < 1) *)
(* then *)
(* (nt, (w,f,ce)) *)
(* else *)
(* get_jth_trans newj tail *)
(* in *)
(* match get_jth_trans j nt_arc_l with *)
(* (nt, (w,Eps,None)) -> choose_a_formula f_acc (nt, trans) *)
(* | (nt, (w,Form(ff), Some st)) -> *)
(* let new_f = And(f_acc, ff) in *)
(* if *)
(* Solver.is_satisfiable (Env_state.input ()) new_f *)
(* then *)
(* if *)
(* is_node_set_transient nt *)
(* then *)
(* choose_a_formula new_f (nt, trans) *)
(* else *)
(* (IntSet.elements nt, new_f, st) *)
(* else *)
(* raise Not_found *)
(* | (nt, (w,Form(_), None)) -> assert false *)
(* | (nt, (w,Eps, Some _)) -> assert false *)
type accT = (node list * formula * Control.state) list
......@@ -492,6 +587,7 @@ let rec (choose_n_formula_acc: int -> t -> accT -> accT) =
else
try
let (ntl, f, st) = choose_a_formula a in
(* let (ntl, f, st) = choose_a_formula True a in *)
choose_n_formula_acc (n-1) a ((ntl, f, st)::nt_f_st_l0)
with Not_found ->
let nodes_str = intset_to_string (fst a) in
......
......@@ -12,11 +12,12 @@
type optionsT = {
mutable show_automata : bool ;
mutable boot : bool ;
mutable locals : bool ;
mutable user_seed : int
}
type cmd_line_optionT =
Seed | Inside | Edges | Vertices | Precision | Boot | ShowAut | NoShowAut | Verbose
Seed | Inside | Edges | Vertices | Precision | Boot | ShowAut | NoShowAut | Verbose | Locals
(* Names of the command line options to override the defaults. *)
let (string_to_option: (string * cmd_line_optionT) list) = [
......@@ -38,6 +39,8 @@ let (string_to_option: (string * cmd_line_optionT) list) = [
("--no-show-aut", NoShowAut);
("--locals", Locals);
("--verbose", Verbose);
("-v", Verbose)
]
......@@ -53,6 +56,7 @@ let (option_to_usage: cmd_line_optionT -> string) =
| Edges -> "Draw inside the convex hull of solutions, but a little bit more at edges and vertices.\n "
| Vertices -> "Draw among the vertices of the convex hull of solutions.\n "
| Seed -> "Set the value of the seed the random engine is initialized with (0 lets the system draw a seed).\n"
| Locals -> "Shows local variables.\n"
| Verbose -> "Set on a verbose mode.\n"
let (group_common_options: (string * cmd_line_optionT) list ->
......
......@@ -15,6 +15,7 @@
type optionsT = {
mutable show_automata : bool ;
mutable boot : bool ;
mutable locals : bool ;
mutable user_seed : int
}
......@@ -28,7 +29,7 @@ val cmd_line_string_to_int : string -> string -> int
*)
type cmd_line_optionT =
Seed | Inside | Edges | Vertices | Precision | Boot | ShowAut | NoShowAut | Verbose
Seed | Inside | Edges | Vertices | Precision | Boot | ShowAut | NoShowAut | Verbose | Locals
val string_to_option: (string * cmd_line_optionT) list
......
......@@ -46,6 +46,9 @@ type env_stateT = {
we need to be able to know what variables are still to be drawn.
*)
alias_to_formula_or_expr : (string, formula_or_expr) Hashtbl.t;
(** Associates a formula or a numexpr to a label *)
linear_constraint_to_index: ((Constraint.t, int) Hashtbl.t);
(** This indexing of (output and local) variable names is used
for constructing bdds in the boolean solver (for which variables
......@@ -87,6 +90,9 @@ type env_stateT = {
(** List of the automata current nodes (there are as many nodes as
there are environment run in parallel). *)
mutable transient_nodes : node list;
(** List of transient nodes *)
mutable graph : (node, arc_info) Graph.t ;
(** The automata transitions are stored in a Graph.t *)
......@@ -128,6 +134,7 @@ let (env_state:env_stateT) = {
output = [];
local = [];
current_nodes = [];
transient_nodes = [];
snt = Hashtbl.create 3;
ce_label = Hashtbl.create 0 ;
ctrl_state = Control.new_state ();
......@@ -135,6 +142,7 @@ let (env_state:env_stateT) = {
verbose = false;
bdd_tbl = Hashtbl.create 0;
bdd_tbl_global = Hashtbl.create 0;
alias_to_formula_or_expr= Hashtbl.create 0 ;
linear_constraint_to_index = Hashtbl.create 0;
index_to_linear_constraint = Hashtbl.create 0;
global_linear_constraint_to_index = Hashtbl.create 0;
......@@ -299,6 +307,14 @@ let (set_current_nodes: node list list -> unit) =
fun nll ->
env_state.current_nodes <- nll
(****************************************************************************)
let (is_node_transient : node -> bool) =
fun n ->
List.mem n env_state.transient_nodes
let (set_transient_nodes: node list -> unit) =
fun nl ->
env_state.transient_nodes <- nl
(****************************************************************************)
let (sol_number : Bdd.t -> Util.sol_nb * Util.sol_nb) =
fun bdd ->
......@@ -421,6 +437,14 @@ let (clear_global_linear_constraint_index : unit -> unit) =
env_state.free_index_list <- []
(****************************************************************************)
(* exported *)
let (alias_to_formula_or_expr : string -> formula_or_expr option) =
fun label ->
try
Some (Hashtbl.find env_state.alias_to_formula_or_expr label)
with Not_found -> None
(****************************************************************************)
let (output_var_names: unit -> vnt list) =
......@@ -490,7 +514,8 @@ let (read_env_state_one_file : string -> node) =
let
(* Parses the content of [file]. *)
Parse_env.Automata(init_node, list_in, list_out, list_loc,
list_pre, list_ce, list_form_def, list_arcs) =
list_pre, list_ce, trans_nodes_list,
adl, list_arcs) =
try
let ic = open_in file in
......@@ -500,15 +525,16 @@ let (read_env_state_one_file : string -> node) =
close_in ic;
aut
with e ->
print_string
("\nA parsing error occurred in file " ^ file ^ "\n");
flush stdout;
close_in ic;
exit 2
print_string ((Printexc.to_string e) ^ "\n");
print_string
("\nA parsing error occurred in file " ^ file ^ "\n");
flush stdout;
close_in ic;
exit 2
in
let (list_pre_vn0, _) = List.split list_pre in
let list_pre_vn = add_missing_pre list_pre_vn0 in
(* Sets the [graph] field of [env_state]. *)
let node_nb = (List.length (Graph.get_all_nodes (graph ()))) in
let (add_arc: Parse_env.read_arc -> unit) =
......@@ -521,6 +547,16 @@ let (read_env_state_one_file : string -> node) =
arc_info
(node_to+node_nb));
in
(* Set the transient_nodes field of [env_state]. *)
set_transient_nodes trans_nodes_list;
(* Set the formula and expr alias tables *)
List.iter
(fun (label, f) ->
Hashtbl.add env_state.alias_to_formula_or_expr label f)
adl;
List.iter
(fun (id, ce) ->
if
......
......@@ -199,3 +199,8 @@ val dump_env_state_stat : out_channel -> unit
val set_verbose: bool -> unit
val verbose: unit -> bool
val set_transient_nodes: node list -> unit
val is_node_transient : node -> bool
val alias_to_formula_or_expr : string -> formula_or_expr option
......@@ -43,10 +43,13 @@ and
| Inf of expr * expr (* < *)
| InfEq of expr * expr (* <= *)
type formula_eps =
| Eps
| Form of formula
type formula_or_expr = Fo of formula | Ex of expr
(****************************************************************************)
type node = int
......
......@@ -49,6 +49,8 @@ type formula_eps =
| Eps
| Form of formula
type formula_or_expr = Fo of formula | Ex of expr
(****************************************************************************)
type node = int
......
......@@ -105,7 +105,7 @@ let (to_string : t -> string) =
fun gne ->
(NeMap.fold
(fun ne (bdd, dep) acc ->
((Ne.to_string ne) ^ " -> << a bdd >> ; " ^ acc ))
("\n\t" ^ (Ne.to_string ne) ^ " -> << a bdd >> ;" ^ acc ))
gne
"\n"
)
......
......@@ -10,7 +10,7 @@
(** Garded normal expressions.
It is Ne.t expressions garded by formula (Bdd.t actually). The
They are Ne.t expressions garded by formula (a Bdd.t actually). The
interpretation of [(e1 -> bdd1 ; ... ; en -> bddn)] is that it is
equal to [ei] iff [bddi] is true. By construction, the set [{bddi,
i=1,n}] ougth to be a partition (namely, exactly one bdd among the
......@@ -36,7 +36,7 @@ val empty : unit -> t
by [(bdd, b)]. *)
val make : Ne.t -> Bdd.t -> bool -> t
(** [fold f gne] apllies [f] to every expr in [gne]. *)
(** [fold f gne] applies [f] to every expr in [gne]. *)