diff --git a/src/test/should_work/lionel/mapiter.lus b/src/test/should_work/lionel/mapiter.lus index 12a52de9eda81a0b470514f14b1d26dbcdf64f71..c691d7e729a599b79d6f6f1ba9026a5e8da627c6 100644 --- a/src/test/should_work/lionel/mapiter.lus +++ b/src/test/should_work/lionel/mapiter.lus @@ -41,7 +41,7 @@ tel -- calcule la matrice (L, H) des "xor" des entrées: --------------------------------------------------- -node map_egal = map<< Lustre::egal , L>>; +node map_egal = map<< Lustre::eq , L>>; node composemat ( i1, i2 : T_Reg_H ) returns ( s1 : T_Reg_H ); let -- s1 = map<< map<< = , L>> , H>>( i1, i2 ); diff --git a/src/test/test.res.exp b/src/test/test.res.exp index 96452691bf28da7f5ed27c98672577b0b9149ed8..785a165030e77ab195bc4ecae59184ef55f88bdc 100644 --- a/src/test/test.res.exp +++ b/src/test/test.res.exp @@ -10382,11 +10382,56 @@ let res = if ((b = true)) then ((init + 1)) else (init); tel -- end of node mapiter__incr -*** Could not find package Lustre in the package table -*** Raised in file "should_work/lionel/mapiter.lus", line 44, col 23 to 34, token 'Lustre::egal' - -*** oops: an internal error occurred in file syntaxTab.ml, line 114, column 6 -*** when compiling lustre program should_work/lionel/mapiter.lus +function mapiter__map_egal(i1:a^2; i2:a^2) returns (o:bool^2); +let + o = Lustre__map<<node Lustre__=, const 2>>(i1, i2); +tel +-- end of node mapiter__map_egal +node mapiter__bitalt(in:bool) returns (sacc:bool; out:bool); +let + sacc = not(in); + out = in; +tel +-- end of node mapiter__bitalt +function mapiter__fill_bitalt(in:bool) returns (sacc:bool; out:bool^2); +let + (sacc, out) = Lustre__fill<<node mapiter__bitalt, const 2>>(in); +tel +-- end of node mapiter__fill_bitalt +node mapiter__initmat(iacc:bool) returns (sacc:bool; R:bool^2^3); +let + (sacc, R) = fill<<node mapiter__fill_bitalt, const 3>>(iacc); +tel +-- end of node mapiter__initmat +function mapiter__red_incr(init:int; b:bool^2) returns (res:int); +let + res = Lustre__red<<node mapiter__incr, const 2>>(init, b); +tel +-- end of node mapiter__red_incr +node mapiter__reducemat(iacc:int; I:bool^2^3) returns (res:int); +let + res = red<<node mapiter__red_incr, const 3>>(iacc, I); +tel +-- end of node mapiter__reducemat +node mapiter__composemat(i1:bool^2^3; i2:bool^2^3) returns (s1:bool^2^3); +let + s1 = map<<node mapiter__map_egal, const 3>>(i1, i2); +tel +-- end of node mapiter__composemat +node mapiter__mapiter(a:bool) returns (nbTrue:int); +var + bid1:bool; + bid2:bool; + init1:bool^2^3; + init2:bool^2^3; + XORMAT:bool^2^3; +let + (bid1, init1) = mapiter__initmat(a); + (bid2, init2) = mapiter__initmat(not(a)); + XORMAT = mapiter__composemat(init1, init2); + nbTrue = mapiter__reducemat(0, XORMAT); +tel +-- end of node mapiter__mapiter ---------------------------------------------------------------------- ====> ../lus2lic -vl 3 --compile-all-items should_work/lionel/matrice.lus