Commit 6803cd52 authored by Pascal Raymond's avatar Pascal Raymond
Browse files

Partial eval of formula in Lutin (new module Guard)

FGen module is made abstract, old one renamed in LucFGen
Bug fixed in Lutin.Expand
parent 4b3e5d78
......@@ -316,6 +316,35 @@ CHECK_NOT_NULL(res);
CAMLreturn(res);
}
value gbdd_cml_constrain (value b1, value b2){
CAMLparam2(b1,b2);
CAMLlocal1(res);
CHECK_NOT_NULL(b1);
CHECK_NOT_NULL(b2);
res = alloc_gdbb_block();
#ifdef GBDD_CML_DBG
printf("creating %lx = constrain %lx %lx\n", res, b1, b2);
#endif
set_gbdd_value(res, constrain(*GBdd_value(b1), *GBdd_value(b2)));
CHECK_NOT_NULL(res);
CAMLreturn(res);
}
value gbdd_cml_restrict (value b1, value b2){
CAMLparam2(b1,b2);
CAMLlocal1(res);
CHECK_NOT_NULL(b1);
CHECK_NOT_NULL(b2);
res = alloc_gdbb_block();
#ifdef GBDD_CML_DBG
printf("creating %lx = restrict %lx %lx\n", res, b1, b2);
#endif
set_gbdd_value(res, restrict(*GBdd_value(b1), *GBdd_value(b2)));
CHECK_NOT_NULL(res);
CAMLreturn(res);
}
value gbdd_cml_xor (value b1, value b2){
CAMLparam2(b1,b2);
CAMLlocal1(res);
......
......@@ -220,8 +220,12 @@ LUTIN_FILES = \
$(OBJDIR)/coTraceExp.mli \
$(OBJDIR)/expand.ml \
$(OBJDIR)/expand.mli \
$(OBJDIR)/guard.ml \
$(OBJDIR)/guard.mli \
$(OBJDIR)/autoExplore.ml \
$(OBJDIR)/autoExplore.mli \
$(OBJDIR)/autoGen.ml \
$(OBJDIR)/autoGen.mli \
$(OBJDIR)/auto2Lucky.ml \
$(OBJDIR)/auto2Lucky.mli \
$(OBJDIR)/lutProg.mli \
......
......@@ -36,12 +36,15 @@ endif
test-lutin:
cd lutin/up_and_down && make test;
cd lutin/xlurette && make test;
cd lutin/test_ok && make test;
cd lutin/C && make test;
cd lutin/xlurette && make test;
cd lutin/ocaml && make test;
cd lutin/external_code && make test;
echo "All lutin tests ran correctly."
# problem ~
test: test-lucky test-lutin
......@@ -4,20 +4,20 @@
# step 0
10 0 20.000000 #outs 6 0 16.278233
# step 1
10 0 20.000000 #outs 6 1 21.603283
10 0 20.000000 #outs 11 1 16.610070
# step 2
10 0 20.000000 #outs 9 1 17.399245
# step 3
10 0 20.000000 #outs 13 1 19.172617
10 0 20.000000 #outs 9 1 24.170976
# step 4
10 0 20.000000 #outs 11 0 19.251183
10 0 20.000000 #outs 8 0 24.249699
# step 5
10 0 20.000000 #outs 8 1 15.253516
# step 6
10 0 20.000000 #outs 7 0 21.425417
10 0 20.000000 #outs 14 0 16.432561
# step 7
10 0 20.000000 #outs 9 1 17.336461
# step 8
10 0 20.000000 #outs 7 0 19.618259
# step 9
10 0 20.000000 #outs 14 0 16.016641
10 0 20.000000 #outs 7 0 21.008662
......@@ -3,200 +3,200 @@
#step 1
0 T 0.00 #outs 0 T 1.27
#step 2
0 F 1.27 #outs -4 T 2.87
0 F 1.27 #outs 1 T -2.12
#step 3
-4 F 2.87 #outs -5 T 0.27
1 F -2.12 #outs 0 T -4.72
#step 4
-5 F 0.27 #outs -2 T -0.55
0 F -4.72 #outs -1 T -0.55
#step 5
-2 F -0.55 #outs -1 F -1.30
-1 F -0.55 #outs -3 F 3.70
#step 6
-1 T -1.30 #outs -3 T -6.05
-3 T 3.70 #outs -5 T -1.05
#step 7
-3 F -6.05 #outs -6 F -4.62
-5 F -1.05 #outs -1 F -4.61
#step 8
-6 T -4.62 #outs -2 T -7.29
-1 T -4.61 #outs -2 T -2.28
#step 9
-2 F -7.29 #outs -5 F -7.67
-2 F -2.28 #outs -5 F -2.66
#step 10
-5 T -7.67 #outs -1 T -11.65
-5 T -2.66 #outs -8 T -1.66
#step 11
-1 F -11.65 #outs -1 F -7.22
-8 F -1.66 #outs -8 F 2.78
#step 12
-1 T -7.22 #outs -2 T -5.87
-8 T 2.78 #outs -5 T -0.86
#step 13
-2 F -5.87 #outs -6 F -2.90
-5 F -0.86 #outs -1 F -2.89
#step 14
-6 T -2.90 #outs -8 T -7.09
-1 T -2.89 #outs -3 T -7.08
#step 15
-8 F -7.09 #outs -12 T -3.44
-3 F -7.08 #outs 0 T -8.42
#step 16
-12 F -3.44 #outs -11 F 0.14
0 F -8.42 #outs 1 F -4.85
#step 17
-11 T 0.14 #outs -11 T 4.01
1 T -4.85 #outs 1 T -0.98
#step 18
-11 F 4.01 #outs -15 T 6.24
1 F -0.98 #outs 5 T -3.74
#step 19
-15 F 6.24 #outs -19 F 10.55
5 F -3.74 #outs 9 F -4.43
#step 20
-19 T 10.55 #outs -15 T 11.19
9 T -4.43 #outs 13 T -3.79
#step 21
-15 F 11.19 #outs -16 F 9.95
13 F -3.79 #outs 12 F -5.03
#step 22
-16 T 9.95 #outs -18 T 7.19
12 T -5.03 #outs 10 T -7.79
#step 23
-18 F 7.19 #outs -19 T 4.33
10 F -7.79 #outs 9 T -10.65
#step 24
-19 F 4.33 #outs -20 T 6.30
9 F -10.65 #outs 12 T -13.68
#step 25
-20 F 6.30 #outs -16 T 2.88
12 F -13.68 #outs 9 T -12.10
#step 26
-16 F 2.88 #outs -15 F 5.04
9 F -12.10 #outs 10 F -9.94
#step 27
-15 T 5.04 #outs -15 T 7.31
10 T -9.94 #outs 10 T -7.67
#step 28
-15 F 7.31 #outs -16 F 3.14
10 F -7.67 #outs 9 F -11.84
#step 29
-16 T 3.14 #outs -20 T 0.48
9 T -11.84 #outs 5 T -14.50
#step 30
-20 F 0.48 #outs -19 F -0.09
5 F -14.50 #outs 4 F -10.07
#step 31
-19 T -0.09 #outs -21 T 4.59
4 T -10.07 #outs 6 T -10.40
#step 32
-21 F 4.59 #outs -20 T 5.88
6 F -10.40 #outs 7 T -9.11
#step 33
-20 F 5.88 #outs -20 F 8.11
7 F -9.11 #outs 7 F -6.87
#step 34
-20 T 8.11 #outs -19 T 11.00
7 T -6.87 #outs 8 T -3.98
#step 35
-19 F 11.00 #outs -18 T 7.29
8 F -3.98 #outs 4 T -2.70
#step 36
-18 F 7.29 #outs -22 F 3.31
4 F -2.70 #outs 0 F -6.68
#step 37
-22 T 3.31 #outs -23 T 8.27
0 T -6.68 #outs 0 T -6.72
#step 38
-23 F 8.27 #outs -27 F 7.32
0 F -6.72 #outs -4 F -7.67
#step 39
-27 T 7.32 #outs -31 T 9.99
-4 T -7.67 #outs -4 T -9.99
#step 40
-31 F 9.99 #outs -28 T 14.79
-4 F -9.99 #outs -1 T -5.19
#step 41
-28 F 14.79 #outs -29 T 18.49
-1 F -5.19 #outs -1 T -6.49
#step 42
-29 F 18.49 #outs -32 F 13.89
-1 F -6.49 #outs -4 F -11.10
#step 43
-32 T 13.89 #outs -33 T 18.40
-4 T -11.10 #outs -3 T -11.58
#step 44
-33 F 18.40 #outs -33 F 19.28
-3 F -11.58 #outs -3 F -10.70
#step 45
-33 T 19.28 #outs -33 T 22.28
-3 T -10.70 #outs -3 T -7.70
#step 46
-33 F 22.28 #outs -30 T 25.10
-3 F -7.70 #outs 0 T -4.88
#step 47
-30 F 25.10 #outs -28 F 26.73
0 F -4.88 #outs 2 F -3.26
#step 48
-28 T 26.73 #outs -29 T 26.75
2 T -3.26 #outs 2 T -8.22
#step 49
-29 F 26.75 #outs -30 T 22.08
2 F -8.22 #outs 1 T -12.89
#step 50
-30 F 22.08 #outs -29 F 24.34
1 F -12.89 #outs 2 F -10.64
#step 51
-29 T 24.34 #outs -26 T 22.27
2 T -10.64 #outs 1 T -7.71
#step 52
-26 F 22.27 #outs -30 F 23.27
1 F -7.71 #outs 1 F -11.70
#step 53
-30 T 23.27 #outs -34 T 25.21
1 T -11.70 #outs 2 T -14.75
#step 54
-34 F 25.21 #outs -30 F 27.14
2 F -14.75 #outs 6 F -12.82
#step 55
-30 T 27.14 #outs -33 T 29.39
6 T -12.82 #outs 7 T -15.57
#step 56
-33 F 29.39 #outs -30 T 24.58
7 F -15.57 #outs 3 T -15.38
#step 57
-30 F 24.58 #outs -29 F 26.22
3 F -15.38 #outs 4 F -13.74
#step 58
-29 T 26.22 #outs -29 T 26.73
4 T -13.74 #outs 4 T -13.24
#step 59
-29 F 26.73 #outs -31 T 22.00
4 F -13.24 #outs 2 T -17.97
#step 60
-31 F 22.00 #outs -35 T 22.73
2 F -17.97 #outs 5 T -22.23
#step 61
-35 F 22.73 #outs -32 F 27.24
5 F -22.23 #outs 8 F -17.72
#step 62
-32 T 27.24 #outs -29 T 31.10
8 T -17.72 #outs 11 T -13.86
#step 63
-29 F 31.10 #outs -30 F 28.86
11 F -13.86 #outs 10 F -16.10
#step 64
-30 T 28.86 #outs -31 T 23.98
10 T -16.10 #outs 9 T -20.98
#step 65
-31 F 23.98 #outs -32 T 27.40
9 F -20.98 #outs 9 T -22.55
#step 66
-32 F 27.40 #outs -36 F 27.87
9 F -22.55 #outs 9 F -27.08
#step 67
-36 T 27.87 #outs -36 T 31.65
9 T -27.08 #outs 9 T -23.30
#step 68
-36 F 31.65 #outs -40 F 34.81
9 F -23.30 #outs 13 F -25.13
#step 69
-40 T 34.81 #outs -43 T 31.99
13 T -25.13 #outs 10 T -27.95
#step 70
-43 F 31.99 #outs -40 F 29.09
10 F -27.95 #outs 8 F -25.86
#step 71
-40 T 29.09 #outs -42 T 30.44
8 T -25.86 #outs 12 T -29.50
#step 72
-42 F 30.44 #outs -46 F 25.59
12 F -29.50 #outs 8 F -34.35
#step 73
-46 T 25.59 #outs -50 T 28.74
8 T -34.35 #outs 9 T -36.19
#step 74
-50 F 28.74 #outs -49 F 30.13
9 F -36.19 #outs 10 F -34.81
#step 75
-49 T 30.13 #outs -51 T 25.89
10 T -34.81 #outs 8 T -39.05
#step 76
-51 F 25.89 #outs -49 F 26.71
8 F -39.05 #outs 10 F -38.23
#step 77
-49 T 26.71 #outs -49 T 24.85
10 T -38.23 #outs 7 T -35.09
#step 78
-49 F 24.85 #outs -52 F 21.42
7 F -35.09 #outs 4 F -38.52
#step 79
-52 T 21.42 #outs -56 T 22.05
4 T -38.52 #outs 5 T -42.89
#step 80
-56 F 22.05 #outs -59 F 26.56
5 F -42.89 #outs 9 F -43.37
#step 81
-59 T 26.56 #outs -56 T 26.94
9 T -43.37 #outs 12 T -42.99
#step 82
-56 F 26.94 #outs -54 T 31.18
12 F -42.99 #outs 14 T -38.75
#step 83
-54 F 31.18 #outs -54 T 35.55
14 F -38.75 #outs 14 T -34.38
#step 84
-54 F 35.55 #outs -55 F 34.23
14 F -34.38 #outs 13 F -35.70
#step 85
-55 T 34.23 #outs -58 T 33.14
13 T -35.70 #outs 10 T -36.79
#step 86
-58 F 33.14 #outs -58 F 29.72
10 F -36.79 #outs 6 F -35.22
#step 87
-58 T 29.72 #outs -60 T 30.48
6 T -35.22 #outs 10 T -39.45
#step 88
-60 F 30.48 #outs -58 T 26.51
10 F -39.45 #outs 6 T -38.42
#step 89
-58 F 26.51 #outs -57 T 25.39
6 F -38.42 #outs 2 T -34.55
#step 90
-57 F 25.39 #outs -57 F 26.90
2 F -34.55 #outs 2 F -33.04
#step 91
-57 T 26.90 #outs -55 T 22.86
2 T -33.04 #outs 0 T -32.09
#step 92
-55 F 22.86 #outs -59 F 21.60
0 F -32.09 #outs -4 F -33.35
#step 93
-59 T 21.60 #outs -61 T 26.38
-4 T -33.35 #outs -4 T -33.56
#step 94
-61 F 26.38 #outs -57 F 28.28
-4 F -33.56 #outs 0 F -31.67
#step 95
-57 T 28.28 #outs -60 T 26.62
0 T -31.67 #outs -3 T -33.33
#step 96
-60 F 26.62 #outs -62 T 29.70
-3 F -33.33 #outs -3 T -35.25
#step 97
-62 F 29.70 #outs -63 T 31.80
-3 F -35.25 #outs 0 T -38.14
#step 98
-63 F 31.80 #outs -60 T 31.89
0 F -38.14 #outs 3 T -38.05
#step 99
-60 F 31.89 #outs -64 T 32.38
3 F -38.05 #outs 3 T -42.54
#step 100
-64 F 32.38 #outs -68 T 30.22
3 F -42.54 #outs -1 T -44.71
......@@ -15,6 +15,7 @@ let up_and_down(speed, pspeed : real ref; min, max, delta : real) =
(*let rabbit_speed(speed : real ref) : trace = *)
system rs (
dummy:bool
) returns (
speed : real = 0.0;
min, max, delta : real = 0.0;
......
......@@ -13,404 +13,404 @@
@#
#oracle_outputs T
#step 1
8.98 8.48 8.99 8.49 #outs T
6.02 6.52 5.54 6.02 #outs T
#locs 6845.23 1
#oracle_outputs T
#step 2
6.04 6.20 6.53 6.54 #outs T
6.02 5.85 6.51 6.02 #outs T
#locs 2727.98 2
#oracle_outputs T
#step 3
5.86 5.53 5.94 6.31 #outs T
#locs 6.04 0
5.99 6.31 5.85 6.00 #outs T
#locs 6.02 0
#oracle_outputs T
#step 4
5.87 6.13 5.50 6.20 #outs T
#locs 5.86 0
6.00 6.26 5.63 6.33 #outs T
#locs 5.99 0
#oracle_outputs T
#step 5
6.05 5.82 6.08 6.54 #outs T
#locs 5.87 0
6.18 5.95 6.21 6.67 #outs T
#locs 6.00 0
#oracle_outputs T
#step 6
6.17 6.56 6.37 6.05 #outs T
#locs 6.05 0
6.30 6.69 6.50 6.18 #outs T
#locs 6.18 0
#oracle_outputs T
#step 7
6.35 6.28 5.86 5.96 #outs T
#locs 6.17 0
6.48 6.41 5.99 6.09 #outs T
#locs 6.30 0
#oracle_outputs T
#step 8
6.54 6.05 6.08 7.03 #outs T
#locs 6.35 0
6.67 6.18 6.21 7.16 #outs T
#locs 6.48 0
#oracle_outputs T
#step 9
6.61 6.23 6.74 6.73 #outs T
#locs 6.54 0
6.74 6.36 6.87 6.86 #outs T
#locs 6.67 0
#oracle_outputs T
#step 10
6.67 6.64 6.30 6.35 #outs T
#locs 6.61 0
6.80 6.77 6.43 6.48 #outs T
#locs 6.74 0
#oracle_outputs T
#step 11
6.69 7.19 6.67 6.67 #outs T
#locs 6.67 0
6.82 7.32 6.80 6.80 #outs T
#locs 6.80 0
#oracle_outputs T
#step 12
6.88 6.78 7.35 7.18 #outs T
#locs 6.69 0
7.01 6.91 7.48 7.31 #outs T
#locs 6.82 0
#oracle_outputs T
#step 13
6.90 7.01 7.05 6.85 #outs T
#locs 6.88 0
7.03 7.14 7.18 6.98 #outs T
#locs 7.01 0
#oracle_outputs T
#step 14
6.91 6.92 6.67 6.65 #outs T
#locs 6.90 0
7.04 7.05 6.80 6.78 #outs T
#locs 7.03 0
#oracle_outputs T
#step 15
6.92 6.75 6.43 6.59 #outs T
#locs 6.91 0
7.05 6.88 6.56 6.72 #outs T
#locs 7.04 0
#oracle_outputs T
#step 16
7.05 7.31 7.28 7.09 #outs T
#locs 6.92 0
7.18 7.44 7.41 7.22 #outs T
#locs 7.05 0
#oracle_outputs T
#step 17
7.19 7.04 7.55 6.82 #outs T
#locs 7.05 0
7.32 7.17 7.68 6.95 #outs T
#locs 7.18 0
#oracle_outputs T
#step 18
7.23 7.31 7.17 7.37 #outs T
#locs 7.19 0
7.36 7.44 7.30 7.50 #outs T
#locs 7.32 0
#oracle_outputs T
#step 19
7.39 6.93 7.86 7.48 #outs T
#locs 7.23 0
7.52 7.06 7.99 7.61 #outs T
#locs 7.36 0
#oracle_outputs T
#step 20
7.58 7.94 8.08 7.61 #outs T
#locs 7.39 0
7.71 8.07 8.21 7.74 #outs T
#locs 7.52 0
#oracle_outputs T
#step 21
7.64 7.72 7.44 7.33 #outs T
#locs 7.58 0
7.77 7.85 7.57 7.46 #outs T
#locs 7.71 0
#oracle_outputs T
#step 22
7.70 7.79 8.03 7.24 #outs T
#locs 7.64 0
7.83 7.92 8.16 7.37 #outs T
#locs 7.77 0
#oracle_outputs T
#step 23
7.84 8.31 7.54 7.80 #outs T
#locs 7.70 0
7.97 8.44 7.67 7.93 #outs T
#locs 7.83 0
#oracle_outputs T
#step 24
8.01 8.13 8.14 8.08 #outs T
#locs 7.84 0
8.14 8.26 8.27 8.21 #outs T
#locs 7.97 0
#oracle_outputs T
#step 25
8.12 8.12 7.90 8.46 #outs T
#locs 8.01 0
8.25 8.25 8.03 8.59 #outs T
#locs 8.14 0
#oracle_outputs T
#step 26
8.13 8.21 7.66 8.55 #outs T
#locs 8.12 0
8.26 8.34 7.79 8.68 #outs T
#locs 8.25 0
#oracle_outputs T
#step 27
8.19 7.98 8.41 8.25 #outs T
#locs 8.13 0
8.32 8.11 8.54 8.38 #outs T
#locs 8.26 0
#oracle_outputs T
#step 28
8.31 8.70 7.89 8.06 #outs T
#locs 8.19 0
8.44 8.83 8.02 8.19 #outs T
#locs 8.32 0
#oracle_outputs T
#step 29
8.50 8.55 8.18 8.79 #outs T
#locs 8.31 0
8.63 8.68 8.31 8.92 #outs T
#locs 8.44 0
#oracle_outputs T
#step 30
8.51 8.56 8.52 8.90 #outs T
#locs 8.50 0
8.64 8.69 8.65 9.03 #outs T
#locs 8.63 0
#oracle_outputs T
#step 31
8.54 8.73 8.24 8.40 #outs T
#locs 8.51 0
8.67 8.86 8.37 8.53 #outs T
#locs 8.64 0
#oracle_outputs T
#step 32
8.67 8.91 8.79 8.79 #outs T
#locs 8.54 0
8.80 9.04 8.92 8.92 #outs T
#locs 8.67 0
#oracle_outputs T
#step 33
8.77 8.57 8.60 8.48 #outs T
#locs 8.67 0
8.90 8.70 8.73 8.61 #outs T
#locs 8.80 0
#oracle_outputs T
#step 34
8.84 8.48 9.15 8.65 #outs T
#locs 8.77 0
8.97 8.61 9.28 8.78 #outs T
#locs 8.90 0
#oracle_outputs T
#step 35
9.02 9.49 8.77 9.10 #outs F
#locs 8.84 0
9.15 9.62 8.90 9.23 #outs F
#locs 8.97 0
#oracle_outputs T
#step 36
8.93 9.43 9.40 9.40 #outs F
#locs 9.02 0
9.06 9.56 9.53 9.53 #outs F
#locs 9.15 0
#oracle_outputs T
#step 37
8.75 8.72 9.17 8.34 #outs F
#locs 8.93 0