diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-05-10 09:29:04 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-05-10 09:29:04 +0200 |
commit | 2aa46f298e77d39de2f4304e70dac189ebcb89af (patch) | |
tree | f91b65ca068c03c76affc9e50bd7d7bdd28a3d6b | |
parent | 3a3cb189ac05ab9b0ac69c90eaaeb231403faee8 (diff) | |
parent | 212b467687f0e3c0e3897b501cdc9e09a0d99233 (diff) | |
download | compcert-kvx-2aa46f298e77d39de2f4304e70dac189ebcb89af.tar.gz compcert-kvx-2aa46f298e77d39de2f4304e70dac189ebcb89af.zip |
Merge branch 'mppa-work' of gricad-gitlab.univ-grenoble-alpes.fr:sixcy/CompCert into mppa-work
17 files changed, 5267 insertions, 81 deletions
diff --git a/mppa_k1c/Asmblockgen.v b/mppa_k1c/Asmblockgen.v index dc55715a..f2292f9a 100644 --- a/mppa_k1c/Asmblockgen.v +++ b/mppa_k1c/Asmblockgen.v @@ -135,10 +135,18 @@ Definition transl_comp (c: comparison) (s: signedness) (r1 r2: ireg) (lbl: label) (k: code) : list instruction := Pcompw (itest_for_cmp c s) RTMP r1 r2 ::g Pcb BTwnez RTMP lbl ::g k. +Definition transl_compi + (c: comparison) (s: signedness) (r: ireg) (imm: int) (lbl: label) (k: code) : list instruction := + Pcompiw (itest_for_cmp c s) RTMP r imm ::g Pcb BTwnez RTMP lbl ::g k. + Definition transl_compl (c: comparison) (s: signedness) (r1 r2: ireg) (lbl: label) (k: code) : list instruction := Pcompl (itest_for_cmp c s) RTMP r1 r2 ::g Pcb BTwnez RTMP lbl ::g k. +Definition transl_compil + (c: comparison) (s: signedness) (r: ireg) (imm: int64) (lbl: label) (k: code) : list instruction := + Pcompil (itest_for_cmp c s) RTMP r imm ::g Pcb BTwnez RTMP lbl ::g k. + Definition select_comp (n: int) (c: comparison) : option comparison := if Int.eq n Int.zero then match c with @@ -156,10 +164,10 @@ Definition transl_opt_compuimm match c with | Ceq => Pcbu BTweqz r1 lbl ::g k | Cne => Pcbu BTwnez r1 lbl ::g k - | _ => loadimm32 RTMP n ::g (transl_comp c Unsigned r1 RTMP lbl k) + | _ => transl_compi c Unsigned r1 n lbl k end else - loadimm32 RTMP n ::g (transl_comp c Unsigned r1 RTMP lbl k) + transl_compi c Unsigned r1 n lbl k . (* Definition transl_opt_compuimm @@ -192,10 +200,10 @@ Definition transl_opt_compluimm match c with | Ceq => Pcbu BTdeqz r1 lbl ::g k | Cne => Pcbu BTdnez r1 lbl ::g k - | _ => loadimm64 RTMP n ::g (transl_compl c Unsigned r1 RTMP lbl k) + | _ => transl_compil c Unsigned r1 n lbl k end else - loadimm64 RTMP n ::g (transl_compl c Unsigned r1 RTMP lbl k) + transl_compil c Unsigned r1 n lbl k . Definition transl_comp_float32 (cmp: comparison) (r1 r2: ireg) (lbl: label) (k: code) := @@ -239,7 +247,7 @@ Definition transl_cbranch OK (if Int.eq n Int.zero then Pcb (btest_for_cmpswz c) r1 lbl ::g k else - loadimm32 RTMP n ::g (transl_comp c Signed r1 RTMP lbl k) + transl_compi c Signed r1 n lbl k ) | Ccompluimm c n, a1 :: nil => do r1 <- ireg_of a1; @@ -255,7 +263,7 @@ Definition transl_cbranch OK (if Int64.eq n Int64.zero then Pcb (btest_for_cmpsdz c) r1 lbl ::g k else - loadimm64 RTMP n ::g (transl_compl c Signed r1 RTMP lbl k) + transl_compil c Signed r1 n lbl k ) | Ccompf c, a1 :: a2 :: nil => do r1 <- ireg_of a1; do r2 <- ireg_of a2; diff --git a/mppa_k1c/Asmblockgenproof1.v b/mppa_k1c/Asmblockgenproof1.v index 19b1b1f1..86a0ff88 100644 --- a/mppa_k1c/Asmblockgenproof1.v +++ b/mppa_k1c/Asmblockgenproof1.v @@ -340,6 +340,35 @@ Proof. rewrite H0. simpl; auto. Qed. +Lemma transl_compi_correct: + forall cmp r1 n lbl k rs m tbb b, + exists rs', + exec_straight ge (transl_compi cmp Signed r1 n lbl k) rs m (Pcb BTwnez RTMP lbl ::g k) rs' m + /\ (forall r : preg, r <> PC -> r <> RTMP -> rs' r = rs r) + /\ ( Val.cmp_bool cmp rs#r1 (Vint n) = Some b -> + exec_control ge fn (Some (PCtlFlow (Pcb BTwnez RTMP lbl))) (nextblock tbb rs') m + = eval_branch fn lbl (nextblock tbb rs') m (Some b)) + . +Proof. + intros. esplit. split. +- unfold transl_compi. apply exec_straight_one; simpl; eauto. +- split. + + intros; Simpl. + + intros. + remember (rs # RTMP <- (compare_int (itest_for_cmp cmp Signed) rs # r1 (Vint n))) as rs'. + simpl. assert (Val.cmp_bool Cne (nextblock tbb rs') # RTMP (Vint (Int.repr 0)) = Some b). + { + assert ((nextblock tbb rs') # RTMP = (compare_int (itest_for_cmp cmp Signed) rs # r1 (Vint n))). + { rewrite Heqrs'. auto. } + rewrite H0. rewrite <- H. + remember (Val.cmp_bool cmp rs#r1 (Vint n)) as cmpbool. + destruct cmp; simpl; + unfold Val.cmp; rewrite <- Heqcmpbool; destruct cmpbool; simpl; auto; + destruct b0; simpl; auto. + } + rewrite H0. simpl; auto. +Qed. + Lemma transl_compu_correct: forall cmp r1 r2 lbl k rs m tbb b, exists rs', @@ -369,6 +398,35 @@ Proof. rewrite H0. simpl; auto. Qed. +Lemma transl_compui_correct: + forall cmp r1 n lbl k rs m tbb b, + exists rs', + exec_straight ge (transl_compi cmp Unsigned r1 n lbl k) rs m (Pcb BTwnez RTMP lbl ::g k) rs' m + /\ (forall r : preg, r <> PC -> r <> RTMP -> rs' r = rs r) + /\ (Val_cmpu_bool cmp rs#r1 (Vint n) = Some b -> + exec_control ge fn (Some (PCtlFlow ((Pcb BTwnez RTMP lbl)))) (nextblock tbb rs') m + = eval_branch fn lbl (nextblock tbb rs') m (Some b)) + . +Proof. + intros. esplit. split. +- unfold transl_compi. apply exec_straight_one; simpl; eauto. +- split. + + intros; Simpl. + + intros. + remember (rs # RTMP <- (compare_int (itest_for_cmp cmp Unsigned) rs # r1 (Vint n))) as rs'. + simpl. assert (Val.cmp_bool Cne (nextblock tbb rs') # RTMP (Vint (Int.repr 0)) = Some b). + { + assert ((nextblock tbb rs') # RTMP = (compare_int (itest_for_cmp cmp Unsigned) rs # r1 (Vint n))). + { rewrite Heqrs'. auto. } + rewrite H0. rewrite <- H. + remember (Val_cmpu_bool cmp rs#r1 (Vint n)) as cmpubool. + destruct cmp; simpl; unfold Val_cmpu; + rewrite <- Heqcmpubool; destruct cmpubool; simpl; auto; + destruct b0; simpl; auto. + } + rewrite H0. simpl; auto. +Qed. + Lemma transl_compl_correct: forall cmp r1 r2 lbl k rs m tbb b, exists rs', @@ -399,6 +457,36 @@ Proof. rewrite H0. simpl; auto. Qed. +Lemma transl_compil_correct: + forall cmp r1 n lbl k rs m tbb b, + exists rs', + exec_straight ge (transl_compil cmp Signed r1 n lbl k) rs m (Pcb BTwnez RTMP lbl ::g k) rs' m + /\ (forall r : preg, r <> PC -> r <> RTMP -> rs' r = rs r) + /\ ( Val.cmpl_bool cmp rs#r1 (Vlong n) = Some b -> + exec_control ge fn (Some (PCtlFlow (Pcb BTwnez RTMP lbl))) (nextblock tbb rs') m + = eval_branch fn lbl (nextblock tbb rs') m (Some b)) + . +Proof. + intros. esplit. split. +- unfold transl_compil. apply exec_straight_one; simpl; eauto. +- split. + + intros; Simpl. + + intros. + remember (rs # RTMP <- (compare_long (itest_for_cmp cmp Signed) rs # r1 (Vlong n))) as rs'. + simpl. assert (Val.cmp_bool Cne (nextblock tbb rs') # RTMP (Vint (Int.repr 0)) = Some b). + { + assert ((nextblock tbb rs') # RTMP = (compare_long (itest_for_cmp cmp Signed) rs # r1 (Vlong n))). + { rewrite Heqrs'. auto. } + rewrite H0. rewrite <- H. + remember (Val.cmpl_bool cmp rs#r1 (Vlong n)) as cmpbool. + destruct cmp; simpl; + unfold compare_long, Val.cmpl; + rewrite <- Heqcmpbool; destruct cmpbool; simpl; auto; + destruct b0; simpl; auto. + } + rewrite H0. simpl; auto. +Qed. + Lemma swap_comparison_cmpf_eq: forall v1 v2 cmp, (Val.cmpf cmp v1 v2) = (Val.cmpf (swap_comparison cmp) v2 v1). @@ -710,6 +798,35 @@ Proof. rewrite H0. simpl; auto. Qed. +Lemma transl_compilu_correct: + forall cmp r1 n lbl k rs m tbb b, + exists rs', + exec_straight ge (transl_compil cmp Unsigned r1 n lbl k) rs m (Pcb BTwnez RTMP lbl ::g k) rs' m + /\ (forall r : preg, r <> PC -> r <> RTMP -> rs' r = rs r) + /\ ( Val_cmplu_bool cmp rs#r1 (Vlong n) = Some b -> + exec_control ge fn (Some (PCtlFlow (Pcb BTwnez RTMP lbl))) (nextblock tbb rs') m + = eval_branch fn lbl (nextblock tbb rs') m (Some b)) + . +Proof. + intros. esplit. split. +- unfold transl_compil. apply exec_straight_one; simpl; eauto. +- split. + + intros; Simpl. + + intros. + remember (rs # RTMP <- (compare_long (itest_for_cmp cmp Unsigned) rs # r1 (Vlong n))) as rs'. + simpl. assert (Val.cmp_bool Cne (nextblock tbb rs') # RTMP (Vint (Int.repr 0)) = Some b). + { + assert ((nextblock tbb rs') # RTMP = (compare_long (itest_for_cmp cmp Unsigned) rs # r1 (Vlong n))). + { rewrite Heqrs'. auto. } + rewrite H0. rewrite <- H. + remember (Val_cmplu_bool cmp rs#r1 (Vlong n)) as cmpbool. + destruct cmp; simpl; + unfold compare_long, Val_cmplu; rewrite <- Heqcmpbool; destruct cmpbool; simpl; auto; + destruct b0; simpl; auto. + } + rewrite H0. simpl; auto. +Qed. + Lemma transl_opt_compuimm_correct: forall n cmp r1 lbl k rs m b tbb c, select_comp n cmp = Some c -> @@ -907,16 +1024,12 @@ Proof. unfold nextblock, incrPC. Simpl. rewrite H0 in EVAL'. clear H0. destruct c0; simpl; auto; unfold eval_branch; rewrite <- H; rewrite EVAL'; auto. - + exploit (loadimm32_correct RTMP n); eauto. intros (rs' & A & B & C). - exploit (transl_comp_correct c0 x RTMP lbl); eauto. intros (rs'2 & A' & B' & C'). + + exploit (transl_compi_correct c0 x n lbl); eauto. intros (rs'2 & A' & B' & C'). exists rs'2, (Pcb BTwnez RTMP lbl). split. - * constructor. apply exec_straight_trans - with (c2 := (transl_comp c0 Signed x RTMP lbl k)) (rs2 := rs') (m2 := m'). - eexact A. eexact A'. + * constructor. eexact A'. * split; auto. - { apply C'; auto. rewrite B, C; eauto with asmgen. } - { intros. rewrite B'; eauto with asmgen. } + { apply C'; auto. } (* Ccompuimm *) - remember (select_comp n c0) as selcomp. destruct selcomp. @@ -926,22 +1039,18 @@ Proof. split. * apply A. * split; auto. apply C. apply EVAL'. - + assert (transl_opt_compuimm n c0 x lbl k = loadimm32 RTMP n ::g transl_comp c0 Unsigned x RTMP lbl k). + + assert (transl_opt_compuimm n c0 x lbl k = transl_compi c0 Unsigned x n lbl k). { unfold transl_opt_compuimm. destruct (Int.eq n Int.zero) eqn:EQN. all: unfold select_comp in Heqselcomp; rewrite EQN in Heqselcomp; destruct c0; simpl in *; auto. all: discriminate. } rewrite H. clear H. - exploit (loadimm32_correct RTMP n); eauto. intros (rs' & A & B & C). - exploit (transl_compu_correct c0 x RTMP lbl); eauto. intros (rs'2 & A' & B' & C'). + exploit (transl_compui_correct c0 x n lbl); eauto. intros (rs'2 & A' & B' & C'). exists rs'2, (Pcb BTwnez RTMP lbl). split. - * constructor. apply exec_straight_trans - with (c2 := (transl_comp c0 Unsigned x RTMP lbl k)) (rs2 := rs') (m2 := m'). - eexact A. eexact A'. + * constructor. eexact A'. * split; auto. - { apply C'; auto. rewrite B, C; eauto with asmgen. } - { intros. rewrite B'; eauto with asmgen. } + { apply C'; auto. } (* Ccompl *) - exploit (transl_compl_correct c0 x x0 lbl); eauto. intros (rs' & A & B & C). exists rs', (Pcb BTwnez RTMP lbl). @@ -970,16 +1079,12 @@ Proof. unfold nextblock, incrPC. Simpl. rewrite H0 in EVAL'. clear H0. destruct c0; simpl; auto; unfold eval_branch; rewrite <- H; rewrite EVAL'; auto. - + exploit (loadimm64_correct RTMP n); eauto. intros (rs' & A & B & C). - exploit (transl_compl_correct c0 x RTMP lbl); eauto. intros (rs'2 & A' & B' & C'). + + exploit (transl_compil_correct c0 x n lbl); eauto. intros (rs'2 & A' & B' & C'). exists rs'2, (Pcb BTwnez RTMP lbl). split. - * constructor. apply exec_straight_trans - with (c2 := (transl_compl c0 Signed x RTMP lbl k)) (rs2 := rs') (m2 := m'). - eexact A. eexact A'. + * constructor. eexact A'. * split; auto. - { apply C'; auto. rewrite B, C; eauto with asmgen. } - { intros. rewrite B'; eauto with asmgen. } + { apply C'; auto. } (* Ccompluimm *) - remember (select_compl n c0) as selcomp. @@ -990,22 +1095,18 @@ Proof. split. * apply A. * split; eauto. (* apply C. apply EVAL'. *) - + assert (transl_opt_compluimm n c0 x lbl k = loadimm64 RTMP n ::g transl_compl c0 Unsigned x RTMP lbl k). + + assert (transl_opt_compluimm n c0 x lbl k = transl_compil c0 Unsigned x n lbl k). { unfold transl_opt_compluimm. destruct (Int64.eq n Int64.zero) eqn:EQN. all: unfold select_compl in Heqselcomp; rewrite EQN in Heqselcomp; destruct c0; simpl in *; auto. all: discriminate. } rewrite H. clear H. - exploit (loadimm64_correct RTMP n); eauto. intros (rs' & A & B & C). - exploit (transl_complu_correct c0 x RTMP lbl); eauto. intros (rs'2 & A' & B' & C'). + exploit (transl_compilu_correct c0 x n lbl); eauto. intros (rs'2 & A' & B' & C'). exists rs'2, (Pcb BTwnez RTMP lbl). split. - * constructor. apply exec_straight_trans - with (c2 := (transl_compl c0 Unsigned x RTMP lbl k)) (rs2 := rs') (m2 := m'). - eexact A. eexact A'. + * constructor. eexact A'. * split; auto. - { apply C'; auto. rewrite B, C; eauto with asmgen. } - { intros. rewrite B'; eauto with asmgen. } + { apply C'; auto. eapply Val_cmplu_bool_correct; eauto. } (* Ccompf *) - exploit (transl_compf_correct c0 x x0 lbl); eauto. intros (rs' & A & B & C). diff --git a/mppa_k1c/Asmexpand.ml b/mppa_k1c/Asmexpand.ml index db0ddd29..65dee6c7 100644 --- a/mppa_k1c/Asmexpand.ml +++ b/mppa_k1c/Asmexpand.ml @@ -23,7 +23,6 @@ open Asm open Asmexpandaux open AST open Camlcoq -open !Integers exception Error of string @@ -141,26 +140,77 @@ let get_builtin_arg dst arg = | BA_splitlong _ -> failwith "get_builtin_arg: BA_splitlong" | BA_addptr _ -> failwith "get_builtin_arg: BA_addptr";; +let smart_memcpy = true + (* FIXME DMonniaux this is really suboptimal (byte per byte) *) let expand_builtin_memcpy_big sz al src dst = assert (sz > Z.zero); let dstptr = Asmvliw.GPR62 and srcptr = Asmvliw.GPR63 - and tmpbuf = Asmvliw.GPR61 in + and tmpbuf = Asmvliw.GPR61 + and tmpbuf2 = Asmvliw.R60R61 + and caml_sz = camlint64_of_coqint sz in get_builtin_arg dstptr dst; get_builtin_arg srcptr src; - emit (Pmake (tmpbuf, sz)); - emit Psemi; - let lbl = new_label() in - emit (Ploopdo (tmpbuf, lbl)); - emit Psemi; - emit (Plb (tmpbuf, srcptr, AOff Z.zero)); - emit (Paddil (srcptr, srcptr, Z.one)); - emit Psemi; - emit (Psb (tmpbuf, dstptr, AOff Z.zero)); - emit (Paddil (dstptr, dstptr, Z.one)); - emit Psemi; - emit (Plabel lbl);; + let caml_sz_div16 = Int64.shift_right caml_sz 4 + and sixteen = coqint_of_camlint64 16L in + if smart_memcpy + then + let remaining = ref caml_sz + and offset = ref 0L in + let cpy buf size load store = + (if !remaining >= size + then + let zofs = coqint_of_camlint64 !offset in + begin + emit Psemi; + emit (load buf srcptr (AOff zofs)); + emit Psemi; + emit (store buf dstptr (AOff zofs)); + remaining := Int64.sub !remaining size; + offset := Int64.add !offset size + end) in + begin + (if caml_sz_div16 >= 2L + then + begin + emit (Pmake (tmpbuf, (coqint_of_camlint64 caml_sz_div16))); + emit Psemi; + let lbl = new_label() in + emit (Ploopdo (tmpbuf, lbl)); + emit Psemi; + emit (Plq (tmpbuf2, srcptr, AOff Z.zero)); + emit (Paddil (srcptr, srcptr, sixteen)); + emit Psemi; + emit (Psq (tmpbuf2, dstptr, AOff Z.zero)); + emit (Paddil (dstptr, dstptr, sixteen)); + emit Psemi; + emit (Plabel lbl); + remaining := Int64.sub !remaining (Int64.shift_left caml_sz_div16 4) + end); + + cpy tmpbuf2 16L (fun x y z -> Plq(x, y, z)) (fun x y z -> Psq(x, y, z)); + cpy tmpbuf 8L (fun x y z -> Pld(x, y, z)) (fun x y z -> Psd(x, y, z)); + cpy tmpbuf 4L (fun x y z -> Plw(x, y, z)) (fun x y z -> Psw(x, y, z)); + cpy tmpbuf 2L (fun x y z -> Plh(x, y, z)) (fun x y z -> Psh(x, y, z)); + cpy tmpbuf 1L (fun x y z -> Plb(x, y, z)) (fun x y z -> Psb(x, y, z)); + assert (!remaining = 0L) + end + else + begin + emit (Pmake (tmpbuf, sz)); + emit Psemi; + let lbl = new_label() in + emit (Ploopdo (tmpbuf, lbl)); + emit Psemi; + emit (Plb (tmpbuf, srcptr, AOff Z.zero)); + emit (Paddil (srcptr, srcptr, Z.one)); + emit Psemi; + emit (Psb (tmpbuf, dstptr, AOff Z.zero)); + emit (Paddil (dstptr, dstptr, Z.one)); + emit Psemi; + emit (Plabel lbl); + end;; let expand_builtin_memcpy sz al args = match args with @@ -185,7 +235,7 @@ let expand_builtin_vload_common chunk base ofs res = | Mint64, BR(Asmvliw.IR res) -> emit (Pld (res, base, AOff ofs)) | Mint64, BR_splitlong(BR(Asmvliw.IR res1), BR(Asmvliw.IR res2)) -> - let ofs' = Ptrofs.add ofs _4 in + let ofs' = Integers.Ptrofs.add ofs _4 in if base <> res2 then begin emit (Plw (res2, base, AOff ofs)); emit (Plw (res1, base, AOff ofs')) @@ -223,7 +273,7 @@ let expand_builtin_vstore_common chunk base ofs src = | Mint64, BA(Asmvliw.IR src) -> emit (Psd (src, base, AOff ofs)) | Mint64, BA_splitlong(BA(Asmvliw.IR src1), BA(Asmvliw.IR src2)) -> - let ofs' = Ptrofs.add ofs _4 in + let ofs' = Integers.Ptrofs.add ofs _4 in emit (Psw (src2, base, AOff ofs)); emit (Psw (src1, base, AOff ofs')) | Mfloat32, BA(Asmvliw.IR src) -> @@ -267,7 +317,7 @@ let save_arguments first_reg base_ofs = let open Asmvliw in expand_storeind_ptr int_param_regs.(i) GPR12 - (Ptrofs.repr (Z.add base_ofs (Z.of_uint ((i - first_reg) * wordsize)))); + (Integers.Ptrofs.repr (Z.add base_ofs (Z.of_uint ((i - first_reg) * wordsize)))); emit Psemi end done @@ -278,9 +328,9 @@ match !vararg_start_ofs with | None -> invalid_arg "Fatal error: va_start used in non-vararg function" | Some ofs -> - expand_addptrofs Asmvliw.GPR32 stack_pointer (Ptrofs.repr ofs); + expand_addptrofs Asmvliw.GPR32 stack_pointer (Integers.Ptrofs.repr ofs); emit Psemi; - expand_storeind_ptr Asmvliw.GPR32 r Ptrofs.zero + expand_storeind_ptr Asmvliw.GPR32 r Integers.Ptrofs.zero (* Auxiliary for 64-bit integer arithmetic built-ins. They expand to two instructions, one computing the low 32 bits of the result, @@ -449,7 +499,7 @@ let expand_instruction instr = let n = arguments_size sg in let extra_sz = if n >= _nbregargs_ then 0 else (* align _alignment_ *) ((_nbregargs_ - n) * wordsize) in let full_sz = Z.add sz (Z.of_uint extra_sz) in - expand_addptrofs stack_pointer stack_pointer (Ptrofs.repr (Z.neg full_sz)); + expand_addptrofs stack_pointer stack_pointer (Integers.Ptrofs.repr (Z.neg full_sz)); emit Psemi; expand_storeind_ptr Asmvliw.GPR17 stack_pointer ofs; emit Psemi; @@ -459,9 +509,9 @@ let expand_instruction instr = vararg_start_ofs := Some va_ofs; save_arguments n va_ofs end else begin - let below = Ptrofs.repr (Z.neg sz) in + let below = Integers.Ptrofs.repr (Z.neg sz) in expand_addptrofs stack_pointer stack_pointer below; - expand_storeind_ptr stack_pointer stack_pointer (Ptrofs.add ofs below); + expand_storeind_ptr stack_pointer stack_pointer (Integers.Ptrofs.add ofs below); (* DM we don't need it emit Psemi; *) vararg_start_ofs := None end @@ -472,7 +522,7 @@ let expand_instruction instr = let n = arguments_size sg in if n >= _nbregargs_ then 0 else (* align _alignment_ *) ((_nbregargs_ - n) * wordsize) end else 0 in - expand_addptrofs stack_pointer stack_pointer (Ptrofs.repr (Z.add sz (Z.of_uint extra_sz))) + expand_addptrofs stack_pointer stack_pointer (Integers.Ptrofs.repr (Z.add sz (Z.of_uint extra_sz))) (*| Pseqw(rd, rs1, rs2) -> (* emulate based on the fact that x == 0 iff x <u 1 (unsigned cmp) *) @@ -504,7 +554,7 @@ let expand_instruction instr = end *)| Pcvtl2w (rd, rs) -> assert Archi.ptr64; - emit (Paddiw (rd, rs, Int.zero)) (* 32-bit sign extension *) + emit (Paddiw (rd, rs, Integers.Int.zero)) (* 32-bit sign extension *) (*| Pjal_r(r, sg) -> fixup_call sg; emit instr diff --git a/mppa_k1c/Machregs.v b/mppa_k1c/Machregs.v index ee85fb1c..cd8c6606 100644 --- a/mppa_k1c/Machregs.v +++ b/mppa_k1c/Machregs.v @@ -167,7 +167,10 @@ Fixpoint destroyed_by_clobber (cl: list string): list mreg := Definition destroyed_by_builtin (ef: external_function): list mreg := match ef with | EF_inline_asm txt sg clob => destroyed_by_clobber clob - | EF_memcpy sz al => R62 :: R63 :: R61 :: nil + | EF_memcpy sz al => + if Z.leb sz 15 + then R62 :: R63 :: R61 :: nil + else R62 :: R63 :: R61 :: R60 :: nil | _ => nil end. diff --git a/mppa_k1c/TargetPrinter.ml b/mppa_k1c/TargetPrinter.ml index d92e55ac..114297c9 100644 --- a/mppa_k1c/TargetPrinter.ml +++ b/mppa_k1c/TargetPrinter.ml @@ -347,45 +347,45 @@ module Target (*: TARGET*) = | Pwfxm(n, dst) -> fprintf oc " wfxm $s%ld = %a\n" (camlint_of_coqint n) ireg dst | Pldu(dst, addr) -> - fprintf oc " ld.u %a = 0[%a]\n" ireg dst ireg addr + fprintf oc " ld.u %a = 0[%a]\n" ireg dst ireg addr | Plbzu(dst, addr) -> - fprintf oc " lbz.u %a = 0[%a]\n" ireg dst ireg addr + fprintf oc " lbz.u %a = 0[%a]\n" ireg dst ireg addr | Plhzu(dst, addr) -> - fprintf oc " lhz.u %a = 0[%a]\n" ireg dst ireg addr + fprintf oc " lhz.u %a = 0[%a]\n" ireg dst ireg addr | Plwzu(dst, addr) -> - fprintf oc " lwz.u %a = 0[%a]\n" ireg dst ireg addr + fprintf oc " lwz.u %a = 0[%a]\n" ireg dst ireg addr | Pawait -> - fprintf oc " await\n" + fprintf oc " await\n" | Psleep -> - fprintf oc " sleep\n" + fprintf oc " sleep\n" | Pstop -> - fprintf oc " stop\n" + fprintf oc " stop\n" | Pbarrier -> - fprintf oc " barrier\n" + fprintf oc " barrier\n" | Pfence -> - fprintf oc " fence\n" + fprintf oc " fence\n" | Pdinval -> - fprintf oc " dinval\n" + fprintf oc " dinval\n" | Pdinvall addr -> - fprintf oc " dinvall 0[%a]\n" ireg addr + fprintf oc " dinvall 0[%a]\n" ireg addr | Pdtouchl addr -> - fprintf oc " dtouchl 0[%a]\n" ireg addr + fprintf oc " dtouchl 0[%a]\n" ireg addr | Piinval -> - fprintf oc " iinval\n" + fprintf oc " iinval\n" | Piinvals addr -> - fprintf oc " iinvals 0[%a]\n" ireg addr + fprintf oc " iinvals 0[%a]\n" ireg addr | Pitouchl addr -> - fprintf oc " itouchl 0[%a]\n" ireg addr + fprintf oc " itouchl 0[%a]\n" ireg addr | Pdzerol addr -> - fprintf oc " dzerol 0[%a]\n" ireg addr + fprintf oc " dzerol 0[%a]\n" ireg addr | Pafaddd(addr, incr_res) -> - fprintf oc " afaddd 0[%a] = %a\n" ireg addr ireg incr_res + fprintf oc " afaddd 0[%a] = %a\n" ireg addr ireg incr_res | Pafaddw(addr, incr_res) -> - fprintf oc " afaddw 0[%a] = %a\n" ireg addr ireg incr_res + fprintf oc " afaddw 0[%a] = %a\n" ireg addr ireg incr_res | Palclrd(res, addr) -> - fprintf oc " alclrd %a = 0[%a]\n" ireg res ireg addr + fprintf oc " alclrd %a = 0[%a]\n" ireg res ireg addr | Palclrw(res, addr) -> - fprintf oc " alclrw %a = 0[%a]\n" ireg res ireg addr + fprintf oc " alclrw %a = 0[%a]\n" ireg res ireg addr | Pjumptable (idx_reg, tbl) -> let lbl = new_label() in (* jumptables := (lbl, tbl) :: !jumptables; *) diff --git a/test/monniaux/lustre-convertible-2cgc/convertible_main.c b/test/monniaux/lustre-convertible-2cgc/convertible_main.c new file mode 100644 index 00000000..285f8941 --- /dev/null +++ b/test/monniaux/lustre-convertible-2cgc/convertible_main.c @@ -0,0 +1,1085 @@ +/* This file was generated by lv6 version master.737 (2727a7744111c84f7984634d2bd3ad6f7c6c7ff9). */ +/* lv6 -2cgc -node main convertible.lus */ +/* on vanoise the 08/05/2019 at 23:54:11 */ +#include "convertible_main.h" +//// Defining step functions +// Memory initialisation for Lustre_arrow_ctx +void Lustre_arrow_ctx_reset(Lustre_arrow_ctx_type* ctx){ + int _i; + ctx->_memory = _true; +} + +// Initialisation of the internal structure of Lustre_arrow_ctx +void Lustre_arrow_ctx_init(Lustre_arrow_ctx_type* ctx){ + // ctx->client_data = cdata; + Lustre_arrow_ctx_reset(ctx); + } +// Step function(s) for Lustre_arrow_ctx +void Lustre_arrow_step(_integer i1,_integer i2,_integer *out,Lustre_arrow_ctx_type* ctx){ *out = ((ctx->_memory)? i1 : i2); + ctx->_memory = _false; + +} // End of Lustre_arrow_step + +// Memory initialisation for Lustre_arrow_2_ctx +void Lustre_arrow_2_ctx_reset(Lustre_arrow_2_ctx_type* ctx){ + int _i; + ctx->_memory = _true; +} + +// Initialisation of the internal structure of Lustre_arrow_2_ctx +void Lustre_arrow_2_ctx_init(Lustre_arrow_2_ctx_type* ctx){ + // ctx->client_data = cdata; + Lustre_arrow_2_ctx_reset(ctx); + } +// Step function(s) for Lustre_arrow_2_ctx +void Lustre_arrow_2_step(_real i1,_real i2,_real *out,Lustre_arrow_2_ctx_type* ctx){ *out = ((ctx->_memory)? i1 : i2); + ctx->_memory = _false; + +} // End of Lustre_arrow_2_step + +// Memory initialisation for Lustre_arrow_3_ctx +void Lustre_arrow_3_ctx_reset(Lustre_arrow_3_ctx_type* ctx){ + int _i; + ctx->_memory = _true; +} + +// Initialisation of the internal structure of Lustre_arrow_3_ctx +void Lustre_arrow_3_ctx_init(Lustre_arrow_3_ctx_type* ctx){ + // ctx->client_data = cdata; + Lustre_arrow_3_ctx_reset(ctx); + } +// Step function(s) for Lustre_arrow_3_ctx +void Lustre_arrow_3_step(_real i1[50],_real i2[50],_real out[50]/*out*/,Lustre_arrow_3_ctx_type* ctx){ _assign_rp50(out, ((ctx->_memory)? i1 : i2), sizeof(_real [50])); + ctx->_memory = _false; + +} // End of Lustre_arrow_3_step + +// Step function(s) for Lustre_hat_ctx +void Lustre_hat_step(_real i1,_real out[50]/*out*/){ + out[0] = i1; + out[1] = i1; + out[2] = i1; + out[3] = i1; + out[4] = i1; + out[5] = i1; + out[6] = i1; + out[7] = i1; + out[8] = i1; + out[9] = i1; + out[10] = i1; + out[11] = i1; + out[12] = i1; + out[13] = i1; + out[14] = i1; + out[15] = i1; + out[16] = i1; + out[17] = i1; + out[18] = i1; + out[19] = i1; + out[20] = i1; + out[21] = i1; + out[22] = i1; + out[23] = i1; + out[24] = i1; + out[25] = i1; + out[26] = i1; + out[27] = i1; + out[28] = i1; + out[29] = i1; + out[30] = i1; + out[31] = i1; + out[32] = i1; + out[33] = i1; + out[34] = i1; + out[35] = i1; + out[36] = i1; + out[37] = i1; + out[38] = i1; + out[39] = i1; + out[40] = i1; + out[41] = i1; + out[42] = i1; + out[43] = i1; + out[44] = i1; + out[45] = i1; + out[46] = i1; + out[47] = i1; + out[48] = i1; + out[49] = i1; + +} // End of Lustre_hat_step + +// Memory initialisation for Lustre_pre_ctx +void Lustre_pre_ctx_reset(Lustre_pre_ctx_type* ctx){ + int _i; + +} + +// Initialisation of the internal structure of Lustre_pre_ctx +void Lustre_pre_ctx_init(Lustre_pre_ctx_type* ctx){ + // ctx->client_data = cdata; + Lustre_pre_ctx_reset(ctx); + } +// Step function(s) for Lustre_pre_ctx +void Lustre_pre_get(_integer *out,Lustre_pre_ctx_type* ctx){ + *out = ctx->_memory; + +} // End of Lustre_pre_get + +void Lustre_pre_set(_integer i1,Lustre_pre_ctx_type* ctx){ + ctx->_memory = i1; + +} // End of Lustre_pre_set + +// Memory initialisation for Lustre_pre_2_ctx +void Lustre_pre_2_ctx_reset(Lustre_pre_2_ctx_type* ctx){ + int _i; + +} + +// Initialisation of the internal structure of Lustre_pre_2_ctx +void Lustre_pre_2_ctx_init(Lustre_pre_2_ctx_type* ctx){ + // ctx->client_data = cdata; + Lustre_pre_2_ctx_reset(ctx); + } +// Step function(s) for Lustre_pre_2_ctx +void Lustre_pre_2_get(_real *out,Lustre_pre_2_ctx_type* ctx){ + *out = ctx->_memory; + +} // End of Lustre_pre_2_get + +void Lustre_pre_2_set(_real i1,Lustre_pre_2_ctx_type* ctx){ + ctx->_memory = i1; + +} // End of Lustre_pre_2_set + +// Memory initialisation for Lustre_pre_3_ctx +void Lustre_pre_3_ctx_reset(Lustre_pre_3_ctx_type* ctx){ + int _i; + +} + +// Initialisation of the internal structure of Lustre_pre_3_ctx +void Lustre_pre_3_ctx_init(Lustre_pre_3_ctx_type* ctx){ + // ctx->client_data = cdata; + Lustre_pre_3_ctx_reset(ctx); + } +// Step function(s) for Lustre_pre_3_ctx +void Lustre_pre_3_get(_real out[50]/*out*/,Lustre_pre_3_ctx_type* ctx){ + _assign_rp50(out, ctx->_memory, sizeof(_real [50])); + +} // End of Lustre_pre_3_get + +void Lustre_pre_3_set(_real i1[50],Lustre_pre_3_ctx_type* ctx){ + _assign_rp50(ctx->_memory, i1, sizeof(_real [50])); + +} // End of Lustre_pre_3_set + +// Step function(s) for Lustre_slash_ctx +void Lustre_slash_step(_real i1,_real i2,_real *out){ + *out = (i1 / i2); + +} // End of Lustre_slash_step + +// Step function(s) for assign_50_ctx +void assign_50_step(_real v,_integer jv,_real t[50],_real nt[50]/*out*/){ + convertible_update_acc _split_3; + convertible_update_acc dummy; + + _split_3.i = 0; + _split_3.j = jv; + _split_3.v = v; + fillred_update_cell_do_50_step(_split_3,t,&dummy,nt); + +} // End of assign_50_step + +// Step function(s) for convertible_abs_ctx +void convertible_abs_step(_real x,_real *y){ + _real _split_2; + _boolean _split_1; + + _split_2 = - x; + _split_1 = x >= 0.0; + if (_split_1 == _true) { + *y = x; + } else { + *y = _split_2; + } + +} // End of convertible_abs_step + +// Step function(s) for convertible_braking_time_ctx +void convertible_braking_time_step(_real Speed,_real *res){ + _real _split_4; + + _split_4 = Speed * Speed; + Lustre_slash_step(_split_4,5500.0,res); + +} // End of convertible_braking_time_step + +// Memory initialisation for convertible_main_ctx +void convertible_main_ctx_reset(convertible_main_ctx_type* ctx){ + int _i; + + convertible_vehicle_ctx_reset(&ctx->convertible_vehicle_ctx_tab[0]); + convertible_speed_kmh_ctx_reset(&ctx->convertible_speed_kmh_ctx_tab[0]); + convertible_roof_ctx_reset(&ctx->convertible_roof_ctx_tab[0]); + convertible_may_collide_ctx_reset(&ctx->convertible_may_collide_ctx_tab[0]); +} + +// Initialisation of the internal structure of convertible_main_ctx +void convertible_main_ctx_init(convertible_main_ctx_type* ctx){ + // ctx->client_data = cdata; + convertible_main_ctx_reset(ctx); + } +// Step function(s) for convertible_main_ctx +void convertible_main_step(_boolean Start,_boolean Parked,_boolean Rot,_boolean Tick,_boolean OnOff,_boolean Done,_real Dist,_boolean *Danger,_boolean *Locked,_real *Speed,_real *Roof_Speed,convertible_main_ctx_type* ctx){ _boolean _split_7; + _real _split_6; + _real _split_5; + _integer St; + _boolean _split_8; + _boolean _split_9; + + _split_8 = OnOff & Start; + _split_9 = ! _split_8; + convertible_roof_step(Tick,Parked,OnOff,Done,Locked,Roof_Speed,&ctx->convertible_roof_ctx_tab[0]); + convertible_speed_kmh_step(Rot,Tick,Speed,&ctx->convertible_speed_kmh_ctx_tab[0]); + convertible_vehicle_step(Start,*Locked,*Speed,Dist,&St,&ctx->convertible_vehicle_ctx_tab[0]); + switch (St){ + case convertible_anti_col: + _split_6 = Dist; + _split_5 = *Speed; + convertible_may_collide_step(_split_5,_split_6,&_split_7,&ctx->convertible_may_collide_ctx_tab[0]); + *Danger = _split_7; + break; + case convertible_run: + *Danger = _false; + break; + case convertible_stationnary: + *Danger = _false; + break; +} + +} // End of convertible_main_step + +// Step function(s) for convertible_maxr_ctx +void convertible_maxr_step(_real x,_real y,_real *res){ + _boolean _split_10; + + _split_10 = x < y; + if (_split_10 == _true) { + *res = y; + } else { + *res = x; + } + +} // End of convertible_maxr_step + +// Memory initialisation for convertible_may_collide_ctx +void convertible_may_collide_ctx_reset(convertible_may_collide_ctx_type* ctx){ + int _i; + + Lustre_pre_2_ctx_reset(&ctx->Lustre_pre_2_ctx_tab[0]); + Lustre_arrow_2_ctx_reset(&ctx->Lustre_arrow_2_ctx_tab[0]); +} + +// Initialisation of the internal structure of convertible_may_collide_ctx +void convertible_may_collide_ctx_init(convertible_may_collide_ctx_type* ctx){ + // ctx->client_data = cdata; + convertible_may_collide_ctx_reset(ctx); + } +// Step function(s) for convertible_may_collide_ctx +void convertible_may_collide_step(_real Speed,_real Dist,_boolean *Res,convertible_may_collide_ctx_type* ctx){ _real _split_17; + _real _split_16; + _real _split_15; + _real _split_14; + _real _split_13; + _real _split_12; + _real _split_11; + _real Accel; + _real tChoc; + _real tBrake; + + Lustre_pre_2_get(&_split_11,&ctx->Lustre_pre_2_ctx_tab[0]); + _split_12 = Speed - _split_11; + Lustre_slash_step(_split_12,0.1,&_split_13); + Lustre_pre_2_set(Speed,&ctx->Lustre_pre_2_ctx_tab[0]); + Lustre_arrow_2_step(0.0,_split_13,&Accel,&ctx->Lustre_arrow_2_ctx_tab[0]); + convertible_braking_time_step(Speed,&tBrake); + _split_15 = - 2.0; + _split_16 = _split_15 * Dist; + _split_14 = 2.0 * Speed; + convertible_solve_eq_d2_step(Accel,_split_14,_split_16,&tChoc); + _split_17 = 2.0 + tBrake; + *Res = tChoc < _split_17; + +} // End of convertible_may_collide_step + +// Step function(s) for convertible_ms_to_kmh_ctx +void convertible_ms_to_kmh_step(_real x,_real *res){ + + *res = x * 3.6; + +} // End of convertible_ms_to_kmh_step + +// Memory initialisation for convertible_roof_ctx +void convertible_roof_ctx_reset(convertible_roof_ctx_type* ctx){ + int _i; + + convertible_roof_speed_ctx_reset(&ctx->convertible_roof_speed_ctx_tab[0]); + Lustre_pre_ctx_reset(&ctx->Lustre_pre_ctx_tab[0]); + Lustre_arrow_ctx_reset(&ctx->Lustre_arrow_ctx_tab[0]); +} + +// Initialisation of the internal structure of convertible_roof_ctx +void convertible_roof_ctx_init(convertible_roof_ctx_type* ctx){ + // ctx->client_data = cdata; + convertible_roof_ctx_reset(ctx); + } +// Step function(s) for convertible_roof_ctx +void convertible_roof_step(_boolean Tick,_boolean Parked,_boolean OnOff,_boolean Done,_boolean *Locked,_real *Roof_Speed,convertible_roof_ctx_type* ctx){ _real _split_25; + _real _split_24; + _integer _split_23; + _boolean _split_22; + _integer _split_21; + _boolean _split_20; + _boolean _split_19; + _integer _split_18; + _integer pst; + _integer st; + _boolean Tick_on_in_motion; + + Lustre_pre_get(&_split_18,&ctx->Lustre_pre_ctx_tab[0]); + switch (pst){ + case convertible_in_motion: + _split_22 = Done; + if (_split_22 == _true) { + _split_23 = convertible_locked; + } else { + _split_23 = convertible_in_motion; + } + st = _split_23; + break; +} + _split_19 = OnOff & Parked; + switch (pst){ + case convertible_locked: + _split_20 = _split_19; + if (_split_20 == _true) { + _split_21 = convertible_in_motion; + } else { + _split_21 = convertible_locked; + } + st = _split_21; + break; +} + Lustre_pre_set(st,&ctx->Lustre_pre_ctx_tab[0]); + Lustre_arrow_step(convertible_locked,_split_18,&pst,&ctx->Lustre_arrow_ctx_tab[0]); + *Locked = st == convertible_locked; + switch (st){ + case convertible_in_motion: + Tick_on_in_motion = Tick; + convertible_roof_speed_step(Tick_on_in_motion,&_split_25,&ctx->convertible_roof_speed_ctx_tab[0]); + *Roof_Speed = _split_25; + break; + case convertible_locked: + _split_24 = 0.0; + *Roof_Speed = _split_24; + break; +} + +} // End of convertible_roof_step + +// Memory initialisation for convertible_roof_speed_ctx +void convertible_roof_speed_ctx_reset(convertible_roof_speed_ctx_type* ctx){ + int _i; + + Lustre_pre_2_ctx_reset(&ctx->Lustre_pre_2_ctx_tab[0]); + Lustre_pre_2_ctx_reset(&ctx->Lustre_pre_2_ctx_tab[1]); + Lustre_pre_ctx_reset(&ctx->Lustre_pre_ctx_tab[0]); + Lustre_arrow_2_ctx_reset(&ctx->Lustre_arrow_2_ctx_tab[0]); + Lustre_arrow_2_ctx_reset(&ctx->Lustre_arrow_2_ctx_tab[1]); + Lustre_arrow_ctx_reset(&ctx->Lustre_arrow_ctx_tab[0]); +} + +// Initialisation of the internal structure of convertible_roof_speed_ctx +void convertible_roof_speed_ctx_init(convertible_roof_speed_ctx_type* ctx){ + // ctx->client_data = cdata; + convertible_roof_speed_ctx_reset(ctx); + } +// Step function(s) for convertible_roof_speed_ctx +void convertible_roof_speed_step(_boolean Tick,_real *Roof_Speed,convertible_roof_speed_ctx_type* ctx){ _real _split_48; + _real _split_47; + _real _split_46; + _real _split_45; + _real _split_44; + _real _split_43; + _real _split_42; + _real _split_41; + _real _split_40; + _real _split_39; + _real _split_38; + _real _split_37; + _real _split_36; + _real _split_35; + _real _split_34; + _real _split_33; + _integer _split_32; + _boolean _split_31; + _real _split_30; + _integer _split_29; + _boolean _split_28; + _real _split_27; + _integer _split_26; + _integer pst; + _integer st; + _real kh; + _real Roof_Percent; + _real pRoof_Percent; + _real slow_it_down; + _real pRoof_Speed; + + switch (Tick){ + case _true: + Lustre_pre_get(&_split_26,&ctx->Lustre_pre_ctx_tab[0]); + Lustre_pre_2_get(&_split_33,&ctx->Lustre_pre_2_ctx_tab[0]); + Lustre_arrow_2_step(0.0,_split_33,&pRoof_Percent,&ctx->Lustre_arrow_2_ctx_tab[0]); + switch (pst){ + case convertible_fast: + _split_27 = pRoof_Percent; + _split_28 = _split_27 < 85.0; + if (_split_28 == _true) { + _split_29 = convertible_fast; + } else { + _split_29 = convertible_slow; + } + st = _split_29; + break; + case convertible_slow: + _split_30 = pRoof_Percent; + _split_31 = _split_30 < 100.0; + if (_split_31 == _true) { + _split_32 = convertible_slow; + } else { + _split_32 = convertible_wait; + } + st = _split_32; + break; + case convertible_wait: + st = convertible_fast; + break; +} + Lustre_pre_set(st,&ctx->Lustre_pre_ctx_tab[0]); + Lustre_arrow_step(convertible_wait,_split_26,&pst,&ctx->Lustre_arrow_ctx_tab[0]); + Lustre_slash_step(5.,0.1,&_split_38); + Lustre_slash_step(100.,_split_38,&kh); + _split_43 = kh + pRoof_Percent; + switch (st){ + case convertible_fast: + _split_44 = _split_43; + Roof_Percent = _split_44; + break; + case convertible_slow: + _split_47 = pRoof_Percent; + _split_34 = pRoof_Percent; + _split_35 = 100.0 - _split_34; + Lustre_slash_step(_split_35,5.0,&_split_36); + convertible_sqrt_step(_split_36,&_split_37); + convertible_sqrt_step(_split_37,&slow_it_down); + _split_45 = kh; + _split_46 = slow_it_down * _split_45; + _split_48 = _split_46 + _split_47; + Roof_Percent = _split_48; + break; + case convertible_wait: + Roof_Percent = 0.0; + break; +} + Lustre_pre_2_set(Roof_Percent,&ctx->Lustre_pre_2_ctx_tab[0]); + break; +} + Lustre_pre_2_get(&_split_39,&ctx->Lustre_pre_2_ctx_tab[1]); + Lustre_arrow_2_step(0.0,_split_39,&pRoof_Speed,&ctx->Lustre_arrow_2_ctx_tab[1]); + switch (Tick){ + case _false: + _split_40 = pRoof_Speed; + *Roof_Speed = _split_40; + break; + case _true: + switch (st){ + case convertible_fast: + _split_42 = 10.0; + break; + case convertible_slow: + _split_41 = 10.0 * slow_it_down; + _split_42 = _split_41; + break; + case convertible_wait: + _split_42 = 0.0; + break; +} + *Roof_Speed = _split_42; + break; +} + Lustre_pre_2_set(*Roof_Speed,&ctx->Lustre_pre_2_ctx_tab[1]); + +} // End of convertible_roof_speed_step + +// Step function(s) for convertible_solve_eq_d2_ctx +void convertible_solve_eq_d2_step(_real a,_real b,_real c,_real *res){ + _real _split_77; + _real _split_76; + _real _split_75; + _real _split_74; + _real _split_73; + _real _split_72; + _real _split_71; + _real _split_70; + _real _split_69; + _real _split_68; + _real _split_67; + _real _split_66; + _real _split_65; + _real _split_64; + _real _split_63; + _real _split_62; + _real _split_61; + _real _split_60; + _real _split_59; + _integer _split_58; + _integer _split_57; + _boolean _split_56; + _boolean _split_55; + _integer _split_54; + _boolean _split_53; + _boolean _split_52; + _real _split_51; + _real _split_50; + _real _split_49; + _real delta; + _integer sol_nb; + _real a2; + _real b2; + _real delta_pos; + + _split_50 = 4.0 * a; + _split_51 = _split_50 * c; + _split_49 = b * b; + delta = _split_49 - _split_51; + _split_56 = delta == 0.0; + if (_split_56 == _true) { + _split_57 = convertible_one_sol; + } else { + _split_57 = convertible_two_sol; + } + _split_55 = delta < 0.0; + if (_split_55 == _true) { + _split_58 = convertible_no_sol; + } else { + _split_58 = _split_57; + } + _split_53 = b == 0.0; + if (_split_53 == _true) { + _split_54 = convertible_no_sol; + } else { + _split_54 = convertible_deg1; + } + _split_52 = a == 0.0; + if (_split_52 == _true) { + sol_nb = _split_54; + } else { + sol_nb = _split_58; + } + switch (sol_nb){ + case convertible_two_sol: + delta_pos = delta; + a2 = a; + b2 = b; + convertible_sqrt_step(delta_pos,&_split_68); + _split_69 = 2.0 * a2; + Lustre_slash_step(_split_68,_split_69,&_split_70); + _split_67 = - b2; + _split_71 = _split_67 + _split_70; + convertible_sqrt_step(delta_pos,&_split_73); + _split_74 = 2.0 * a2; + Lustre_slash_step(_split_73,_split_74,&_split_75); + _split_72 = - b2; + _split_76 = _split_72 - _split_75; + convertible_maxr_step(_split_71,_split_76,&_split_77); + break; +} + _split_63 = - b; + _split_64 = 2.0 * a; + Lustre_slash_step(_split_63,_split_64,&_split_65); + switch (sol_nb){ + case convertible_one_sol: + _split_66 = _split_65; + break; +} + _split_60 = - c; + Lustre_slash_step(_split_60,b,&_split_61); + switch (sol_nb){ + case convertible_deg1: + _split_62 = _split_61; + *res = _split_62; + break; + case convertible_no_sol: + _split_59 = - 1.0; + *res = _split_59; + break; + case convertible_two_sol: + *res = _split_77; + break; + case convertible_one_sol: + *res = _split_66; + break; +} + +} // End of convertible_solve_eq_d2_step + +// Memory initialisation for convertible_speed_kmh_ctx +void convertible_speed_kmh_ctx_reset(convertible_speed_kmh_ctx_type* ctx){ + int _i; + + sum_50_0d1_ctx_reset(&ctx->sum_50_0d1_ctx_tab[0]); + sum_50_0d0_ctx_reset(&ctx->sum_50_0d0_ctx_tab[0]); + Lustre_pre_2_ctx_reset(&ctx->Lustre_pre_2_ctx_tab[0]); + Lustre_pre_2_ctx_reset(&ctx->Lustre_pre_2_ctx_tab[1]); + Lustre_pre_2_ctx_reset(&ctx->Lustre_pre_2_ctx_tab[2]); + Lustre_arrow_2_ctx_reset(&ctx->Lustre_arrow_2_ctx_tab[0]); + Lustre_arrow_2_ctx_reset(&ctx->Lustre_arrow_2_ctx_tab[1]); + Lustre_arrow_2_ctx_reset(&ctx->Lustre_arrow_2_ctx_tab[2]); +} + +// Initialisation of the internal structure of convertible_speed_kmh_ctx +void convertible_speed_kmh_ctx_init(convertible_speed_kmh_ctx_type* ctx){ + // ctx->client_data = cdata; + convertible_speed_kmh_ctx_reset(ctx); + } +// Step function(s) for convertible_speed_kmh_ctx +void convertible_speed_kmh_step(_boolean Rot,_boolean Tick,_real *Speed,convertible_speed_kmh_ctx_type* ctx){ _real _split_89; + _real _split_88; + _real _split_87; + _real _split_86; + _real _split_85; + _real _split_84; + _real _split_83; + _real _split_82; + _real _split_81; + _real _split_80; + _real _split_79; + _real _split_78; + _real d; + _real t; + _real pd; + _real pt; + _real dx; + _real tx; + _boolean TickOrRot; + + if (Rot == _true) { + dx = 1.4; + } else { + dx = 0.0; + } + if (Tick == _true) { + tx = 0.1; + } else { + tx = 0.0; + } + TickOrRot = Tick | Rot; + Lustre_pre_2_get(&_split_78,&ctx->Lustre_pre_2_ctx_tab[0]); + Lustre_arrow_2_step(0.0,_split_78,&pd,&ctx->Lustre_arrow_2_ctx_tab[0]); + switch (TickOrRot){ + case _false: + _split_80 = pd; + d = _split_80; + break; + case _true: + _split_81 = dx; + sum_50_0d0_step(_split_81,&_split_82,&ctx->sum_50_0d0_ctx_tab[0]); + d = _split_82; + break; +} + Lustre_pre_2_set(d,&ctx->Lustre_pre_2_ctx_tab[0]); + Lustre_pre_2_get(&_split_79,&ctx->Lustre_pre_2_ctx_tab[1]); + Lustre_arrow_2_step(0.0,_split_79,&pt,&ctx->Lustre_arrow_2_ctx_tab[1]); + switch (TickOrRot){ + case _false: + _split_85 = pt; + _split_86 = _split_85; + break; + case _true: + _split_83 = tx; + sum_50_0d1_step(_split_83,&_split_84,&ctx->sum_50_0d1_ctx_tab[0]); + _split_86 = _split_84; + break; +} + convertible_maxr_step(0.1,_split_86,&t); + Lustre_pre_2_set(t,&ctx->Lustre_pre_2_ctx_tab[1]); + Lustre_pre_2_get(&_split_89,&ctx->Lustre_pre_2_ctx_tab[2]); + Lustre_slash_step(d,t,&_split_87); + convertible_ms_to_kmh_step(_split_87,&_split_88); + Lustre_pre_2_set(_split_88,&ctx->Lustre_pre_2_ctx_tab[2]); + Lustre_arrow_2_step(0.0,_split_89,Speed,&ctx->Lustre_arrow_2_ctx_tab[2]); + +} // End of convertible_speed_kmh_step + +// Step function(s) for convertible_sqrt_ctx +void convertible_sqrt_step(_real R,_real *Sqrt){ + + squareR_5_step(R,1.0,Sqrt); + +} // End of convertible_sqrt_step + +// Memory initialisation for convertible_vehicle_ctx +void convertible_vehicle_ctx_reset(convertible_vehicle_ctx_type* ctx){ + int _i; + + Lustre_pre_ctx_reset(&ctx->Lustre_pre_ctx_tab[0]); + Lustre_arrow_ctx_reset(&ctx->Lustre_arrow_ctx_tab[0]); +} + +// Initialisation of the internal structure of convertible_vehicle_ctx +void convertible_vehicle_ctx_init(convertible_vehicle_ctx_type* ctx){ + // ctx->client_data = cdata; + convertible_vehicle_ctx_reset(ctx); + } +// Step function(s) for convertible_vehicle_ctx +void convertible_vehicle_step(_boolean Start,_boolean Locked,_real Speed,_real Dist,_integer *st,convertible_vehicle_ctx_type* ctx){ _integer _split_149; + _boolean _split_148; + _boolean _split_147; + _integer _split_146; + _integer _split_145; + _boolean _split_144; + _boolean _split_143; + _boolean _split_142; + _integer _split_141; + _boolean _split_140; + _boolean _split_139; + _integer _split_138; + _integer pst; + _boolean ac_cond; + + Lustre_pre_get(&_split_138,&ctx->Lustre_pre_ctx_tab[0]); + ac_cond = Speed >= 110.0; + switch (pst){ + case convertible_anti_col: + _split_147 = ac_cond; + _split_148 = ! _split_147; + if (_split_148 == _true) { + _split_149 = convertible_run; + } else { + _split_149 = convertible_anti_col; + } + *st = _split_149; + break; +} + _split_143 = Speed == 0.0; + switch (pst){ + case convertible_run: + _split_144 = _split_143; + if (_split_144 == _true) { + _split_145 = convertible_stationnary; + } else { + _split_145 = convertible_run; + } + _split_142 = ac_cond; + if (_split_142 == _true) { + _split_146 = convertible_anti_col; + } else { + _split_146 = _split_145; + } + *st = _split_146; + break; +} + _split_139 = Start & Locked; + switch (pst){ + case convertible_stationnary: + _split_140 = _split_139; + if (_split_140 == _true) { + _split_141 = convertible_run; + } else { + _split_141 = convertible_stationnary; + } + *st = _split_141; + break; +} + Lustre_pre_set(*st,&ctx->Lustre_pre_ctx_tab[0]); + Lustre_arrow_step(convertible_stationnary,_split_138,&pst,&ctx->Lustre_arrow_ctx_tab[0]); + +} // End of convertible_vehicle_step + +// Step function(s) for fillred_update_cell_do_50_ctx +void fillred_update_cell_do_50_step(convertible_update_acc acc,_real cell[50],convertible_update_acc *nacc,_real ncell[50]/*out*/){ + int _i; + for (_i=0 ; _i<49 ; _i+=2){ + update_cell_do_50_step(acc,cell[_i],&acc,&ncell[_i]); + update_cell_do_50_step(acc,cell[_i+1],&acc,&ncell[_i+1]); + } + *nacc = acc; + +} // End of fillred_update_cell_do_50_step + +// Step function(s) for red_rplus_50_real_ctx +void red_rplus_50_real_step(_real i1,_real i2[50],_real *out){ + int _i; + for (_i=0 ; _i<49 ; _i+=2){ + i1 = i1 + i2[_i]; + i1 = i1 + i2[_i+1]; + } + *out = i1; + +} // End of red_rplus_50_real_step + +// Step function(s) for squareR_1_ctx +void squareR_1_step(_real x,_real presqrt,_real *Sqrt){ + _real _split_93; + _real _split_92; + _real _split_91; + _real _split_90; + _real sqrt; + _boolean ecart; + + Lustre_slash_step(x,presqrt,&_split_92); + _split_93 = presqrt + _split_92; + sqrt = 0.5 * _split_93; + _split_90 = presqrt - sqrt; + convertible_abs_step(_split_90,&_split_91); + ecart = _split_91 < 0.0005; + *Sqrt = sqrt; + +} // End of squareR_1_step + +// Step function(s) for squareR_2_ctx +void squareR_2_step(_real x,_real presqrt,_real *Sqrt){ + _real _split_101; + _real _split_100; + _real _split_99; + _real _split_98; + _real _split_97; + _real _split_96; + _real _split_95; + _real _split_94; + _real sqrt; + _boolean ecart; + + Lustre_slash_step(x,presqrt,&_split_96); + _split_97 = presqrt + _split_96; + sqrt = 0.5 * _split_97; + _split_94 = presqrt - sqrt; + convertible_abs_step(_split_94,&_split_95); + ecart = _split_95 < 0.0005; + switch (ecart){ + case _true: + _split_101 = sqrt; + *Sqrt = _split_101; + break; + case _false: + _split_99 = sqrt; + _split_98 = x; + squareR_1_step(_split_98,_split_99,&_split_100); + *Sqrt = _split_100; + break; +} + +} // End of squareR_2_step + +// Step function(s) for squareR_3_ctx +void squareR_3_step(_real x,_real presqrt,_real *Sqrt){ + _real _split_109; + _real _split_108; + _real _split_107; + _real _split_106; + _real _split_105; + _real _split_104; + _real _split_103; + _real _split_102; + _real sqrt; + _boolean ecart; + + Lustre_slash_step(x,presqrt,&_split_104); + _split_105 = presqrt + _split_104; + sqrt = 0.5 * _split_105; + _split_102 = presqrt - sqrt; + convertible_abs_step(_split_102,&_split_103); + ecart = _split_103 < 0.0005; + switch (ecart){ + case _true: + _split_109 = sqrt; + *Sqrt = _split_109; + break; + case _false: + _split_107 = sqrt; + _split_106 = x; + squareR_2_step(_split_106,_split_107,&_split_108); + *Sqrt = _split_108; + break; +} + +} // End of squareR_3_step + +// Step function(s) for squareR_4_ctx +void squareR_4_step(_real x,_real presqrt,_real *Sqrt){ + _real _split_117; + _real _split_116; + _real _split_115; + _real _split_114; + _real _split_113; + _real _split_112; + _real _split_111; + _real _split_110; + _real sqrt; + _boolean ecart; + + Lustre_slash_step(x,presqrt,&_split_112); + _split_113 = presqrt + _split_112; + sqrt = 0.5 * _split_113; + _split_110 = presqrt - sqrt; + convertible_abs_step(_split_110,&_split_111); + ecart = _split_111 < 0.0005; + switch (ecart){ + case _true: + _split_117 = sqrt; + *Sqrt = _split_117; + break; + case _false: + _split_115 = sqrt; + _split_114 = x; + squareR_3_step(_split_114,_split_115,&_split_116); + *Sqrt = _split_116; + break; +} + +} // End of squareR_4_step + +// Step function(s) for squareR_5_ctx +void squareR_5_step(_real x,_real presqrt,_real *Sqrt){ + _real _split_125; + _real _split_124; + _real _split_123; + _real _split_122; + _real _split_121; + _real _split_120; + _real _split_119; + _real _split_118; + _real sqrt; + _boolean ecart; + + Lustre_slash_step(x,presqrt,&_split_120); + _split_121 = presqrt + _split_120; + sqrt = 0.5 * _split_121; + _split_118 = presqrt - sqrt; + convertible_abs_step(_split_118,&_split_119); + ecart = _split_119 < 0.0005; + switch (ecart){ + case _true: + _split_125 = sqrt; + *Sqrt = _split_125; + break; + case _false: + _split_123 = sqrt; + _split_122 = x; + squareR_4_step(_split_122,_split_123,&_split_124); + *Sqrt = _split_124; + break; +} + +} // End of squareR_5_step + +// Memory initialisation for sum_50_0d0_ctx +void sum_50_0d0_ctx_reset(sum_50_0d0_ctx_type* ctx){ + int _i; + + Lustre_pre_3_ctx_reset(&ctx->Lustre_pre_3_ctx_tab[0]); + Lustre_pre_ctx_reset(&ctx->Lustre_pre_ctx_tab[0]); + Lustre_arrow_3_ctx_reset(&ctx->Lustre_arrow_3_ctx_tab[0]); + Lustre_arrow_ctx_reset(&ctx->Lustre_arrow_ctx_tab[0]); +} + +// Initialisation of the internal structure of sum_50_0d0_ctx +void sum_50_0d0_ctx_init(sum_50_0d0_ctx_type* ctx){ + // ctx->client_data = cdata; + sum_50_0d0_ctx_reset(ctx); + } +// Step function(s) for sum_50_0d0_ctx +void sum_50_0d0_step(_real s,_real *res,sum_50_0d0_ctx_type* ctx){ _integer _split_130; + _real _split_129[50]; + _real _split_128[50]; + _integer _split_127; + _integer _split_126; + _real a[50]; + _real pre_a[50]; + _integer i; + + Lustre_pre_get(&_split_126,&ctx->Lustre_pre_ctx_tab[0]); + Lustre_arrow_step(0,_split_126,&_split_127,&ctx->Lustre_arrow_ctx_tab[0]); + i = _split_127 + 1; + Lustre_pre_set(i,&ctx->Lustre_pre_ctx_tab[0]); + Lustre_pre_3_get(_split_129,&ctx->Lustre_pre_3_ctx_tab[0]); + Lustre_hat_step(0.0,_split_128); + Lustre_arrow_3_step(_split_128,_split_129,pre_a,&ctx->Lustre_arrow_3_ctx_tab[0]); + _split_130 = i % 50; + assign_50_step(s,_split_130,pre_a,a); + Lustre_pre_3_set(a,&ctx->Lustre_pre_3_ctx_tab[0]); + red_rplus_50_real_step(0.0,a,res); + +} // End of sum_50_0d0_step + +// Memory initialisation for sum_50_0d1_ctx +void sum_50_0d1_ctx_reset(sum_50_0d1_ctx_type* ctx){ + int _i; + + Lustre_pre_3_ctx_reset(&ctx->Lustre_pre_3_ctx_tab[0]); + Lustre_pre_ctx_reset(&ctx->Lustre_pre_ctx_tab[0]); + Lustre_arrow_3_ctx_reset(&ctx->Lustre_arrow_3_ctx_tab[0]); + Lustre_arrow_ctx_reset(&ctx->Lustre_arrow_ctx_tab[0]); +} + +// Initialisation of the internal structure of sum_50_0d1_ctx +void sum_50_0d1_ctx_init(sum_50_0d1_ctx_type* ctx){ + // ctx->client_data = cdata; + sum_50_0d1_ctx_reset(ctx); + } +// Step function(s) for sum_50_0d1_ctx +void sum_50_0d1_step(_real s,_real *res,sum_50_0d1_ctx_type* ctx){ _integer _split_135; + _real _split_134[50]; + _real _split_133[50]; + _integer _split_132; + _integer _split_131; + _real a[50]; + _real pre_a[50]; + _integer i; + + Lustre_pre_get(&_split_131,&ctx->Lustre_pre_ctx_tab[0]); + Lustre_arrow_step(0,_split_131,&_split_132,&ctx->Lustre_arrow_ctx_tab[0]); + i = _split_132 + 1; + Lustre_pre_set(i,&ctx->Lustre_pre_ctx_tab[0]); + Lustre_pre_3_get(_split_134,&ctx->Lustre_pre_3_ctx_tab[0]); + Lustre_hat_step(0.1,_split_133); + Lustre_arrow_3_step(_split_133,_split_134,pre_a,&ctx->Lustre_arrow_3_ctx_tab[0]); + _split_135 = i % 50; + assign_50_step(s,_split_135,pre_a,a); + Lustre_pre_3_set(a,&ctx->Lustre_pre_3_ctx_tab[0]); + red_rplus_50_real_step(0.0,a,res); + +} // End of sum_50_0d1_step + +// Step function(s) for update_cell_do_50_ctx +void update_cell_do_50_step(convertible_update_acc acc,_real cell,convertible_update_acc *nacc,_real *ncell){ + _integer _split_137; + _boolean _split_136; + + _split_136 = acc.i == acc.j; + if (_split_136 == _true) { + *ncell = acc.v; + } else { + *ncell = cell; + } + _split_137 = acc.i + 1; + nacc->i = _split_137; + nacc->j = acc.j; + nacc->v = acc.v; + +} // End of update_cell_do_50_step + diff --git a/test/monniaux/lustre-convertible-2cgc/convertible_main.h b/test/monniaux/lustre-convertible-2cgc/convertible_main.h new file mode 100644 index 00000000..63b4ea90 --- /dev/null +++ b/test/monniaux/lustre-convertible-2cgc/convertible_main.h @@ -0,0 +1,110 @@ +/* This file was generated by lv6 version master.737 (2727a7744111c84f7984634d2bd3ad6f7c6c7ff9). */ +/* lv6 -2cgc -node main convertible.lus */ +/* on vanoise the 08/05/2019 at 23:54:11 */ + +#include <stdlib.h> +#include <string.h> + +#include "lustre_types.h" +#include "lustre_consts.h" + +#ifndef _convertible_main_H_FILE +#define _convertible_main_H_FILE +void Lustre_arrow_ctx_reset(Lustre_arrow_ctx_type* ctx); +void Lustre_arrow_ctx_init(Lustre_arrow_ctx_type* ctx); +void Lustre_arrow_step(_integer ,_integer ,_integer *,Lustre_arrow_ctx_type*); + +void Lustre_arrow_2_ctx_reset(Lustre_arrow_2_ctx_type* ctx); +void Lustre_arrow_2_ctx_init(Lustre_arrow_2_ctx_type* ctx); +void Lustre_arrow_2_step(_real ,_real ,_real *,Lustre_arrow_2_ctx_type*); + +void Lustre_arrow_3_ctx_reset(Lustre_arrow_3_ctx_type* ctx); +void Lustre_arrow_3_ctx_init(Lustre_arrow_3_ctx_type* ctx); +void Lustre_arrow_3_step(_real [50],_real [50],_real [50]/*out*/,Lustre_arrow_3_ctx_type*); + +void Lustre_hat_step(_real ,_real [50]/*out*/); + +void Lustre_pre_ctx_reset(Lustre_pre_ctx_type* ctx); +void Lustre_pre_ctx_init(Lustre_pre_ctx_type* ctx); +void Lustre_pre_get(_integer *,Lustre_pre_ctx_type*); + +void Lustre_pre_set(_integer ,Lustre_pre_ctx_type*); + +void Lustre_pre_2_ctx_reset(Lustre_pre_2_ctx_type* ctx); +void Lustre_pre_2_ctx_init(Lustre_pre_2_ctx_type* ctx); +void Lustre_pre_2_get(_real *,Lustre_pre_2_ctx_type*); + +void Lustre_pre_2_set(_real ,Lustre_pre_2_ctx_type*); + +void Lustre_pre_3_ctx_reset(Lustre_pre_3_ctx_type* ctx); +void Lustre_pre_3_ctx_init(Lustre_pre_3_ctx_type* ctx); +void Lustre_pre_3_get(_real [50]/*out*/,Lustre_pre_3_ctx_type*); + +void Lustre_pre_3_set(_real [50],Lustre_pre_3_ctx_type*); + +void Lustre_slash_step(_real ,_real ,_real *); + +void assign_50_step(_real ,_integer ,_real [50],_real [50]/*out*/); + +void convertible_abs_step(_real ,_real *); + +void convertible_braking_time_step(_real ,_real *); + +void convertible_main_ctx_reset(convertible_main_ctx_type* ctx); +void convertible_main_ctx_init(convertible_main_ctx_type* ctx); +void convertible_main_step(_boolean ,_boolean ,_boolean ,_boolean ,_boolean ,_boolean ,_real ,_boolean *,_boolean *,_real *,_real *,convertible_main_ctx_type*); + +void convertible_maxr_step(_real ,_real ,_real *); + +void convertible_may_collide_ctx_reset(convertible_may_collide_ctx_type* ctx); +void convertible_may_collide_ctx_init(convertible_may_collide_ctx_type* ctx); +void convertible_may_collide_step(_real ,_real ,_boolean *,convertible_may_collide_ctx_type*); + +void convertible_ms_to_kmh_step(_real ,_real *); + +void convertible_roof_ctx_reset(convertible_roof_ctx_type* ctx); +void convertible_roof_ctx_init(convertible_roof_ctx_type* ctx); +void convertible_roof_step(_boolean ,_boolean ,_boolean ,_boolean ,_boolean *,_real *,convertible_roof_ctx_type*); + +void convertible_roof_speed_ctx_reset(convertible_roof_speed_ctx_type* ctx); +void convertible_roof_speed_ctx_init(convertible_roof_speed_ctx_type* ctx); +void convertible_roof_speed_step(_boolean ,_real *,convertible_roof_speed_ctx_type*); + +void convertible_solve_eq_d2_step(_real ,_real ,_real ,_real *); + +void convertible_speed_kmh_ctx_reset(convertible_speed_kmh_ctx_type* ctx); +void convertible_speed_kmh_ctx_init(convertible_speed_kmh_ctx_type* ctx); +void convertible_speed_kmh_step(_boolean ,_boolean ,_real *,convertible_speed_kmh_ctx_type*); + +void convertible_sqrt_step(_real ,_real *); + +void convertible_vehicle_ctx_reset(convertible_vehicle_ctx_type* ctx); +void convertible_vehicle_ctx_init(convertible_vehicle_ctx_type* ctx); +void convertible_vehicle_step(_boolean ,_boolean ,_real ,_real ,_integer *,convertible_vehicle_ctx_type*); + +void fillred_update_cell_do_50_step(convertible_update_acc ,_real [50],convertible_update_acc *,_real [50]/*out*/); + +void red_rplus_50_real_step(_real ,_real [50],_real *); + +void squareR_1_step(_real ,_real ,_real *); + +void squareR_2_step(_real ,_real ,_real *); + +void squareR_3_step(_real ,_real ,_real *); + +void squareR_4_step(_real ,_real ,_real *); + +void squareR_5_step(_real ,_real ,_real *); + +void sum_50_0d0_ctx_reset(sum_50_0d0_ctx_type* ctx); +void sum_50_0d0_ctx_init(sum_50_0d0_ctx_type* ctx); +void sum_50_0d0_step(_real ,_real *,sum_50_0d0_ctx_type*); + +void sum_50_0d1_ctx_reset(sum_50_0d1_ctx_type* ctx); +void sum_50_0d1_ctx_init(sum_50_0d1_ctx_type* ctx); +void sum_50_0d1_step(_real ,_real *,sum_50_0d1_ctx_type*); + +void update_cell_do_50_step(convertible_update_acc ,_real ,convertible_update_acc *,_real *); + +///////////////////////////////////////////////// +#endif diff --git a/test/monniaux/lustre-convertible-2cgc/convertible_main_loop.c b/test/monniaux/lustre-convertible-2cgc/convertible_main_loop.c new file mode 100644 index 00000000..9aa52cad --- /dev/null +++ b/test/monniaux/lustre-convertible-2cgc/convertible_main_loop.c @@ -0,0 +1,91 @@ +/* This file was generated by lv6 version master.737 (2727a7744111c84f7984634d2bd3ad6f7c6c7ff9). */ +/* lv6 -2cgc -node main convertible.lus */ +/* on vanoise the 08/05/2019 at 23:54:11 */ + +#include <stdlib.h> +#include <stdio.h> +#include <unistd.h> +#include <stdint.h> +#include "convertible_main.h" +#include "../clock.h" + +/* MACROS DEFINITIONS ****************/ +#ifndef TT +#define TT "1" +#endif +#ifndef FF +#define FF "0" +#endif +#ifndef BB +#define BB "bottom" +#endif +#ifdef CKCHECK +/* set this macro for testing output clocks */ +#endif + +static uint32_t dm_random_uint32(void) { + static uint32_t current=UINT32_C(0xDEADBEEF); + current = ((uint64_t) current << 6) % UINT32_C(4294967291); + return current; +} + +/* Standard Input procedures **************/ +_boolean _get_bool(char* n){ + return dm_random_uint32() & 1; +} +/* +_integer _get_int(char* n){ + return (_integer) (dm_random_uint32() % 21) - 10; +} +*/ +_real _get_real(char* n){ + return ((_integer) (dm_random_uint32() % 2000001) - 1000000)*1E-6; +} +/* Output procedures **********************/ +void convertible_main_O_n(void* cdata, _integer _V) { +} + +/* Main procedure *************************/ +int main(){ + int _s = 0; + _boolean Start; + _boolean Parked; + _boolean Rot; + _boolean Tick; + _boolean OnOff; + _boolean Done; + _real Dist; + _boolean Danger; + _boolean Locked; + _real Speed; + _real Roof_Speed; + convertible_main_ctx_type ctx_struct; + convertible_main_ctx_type* ctx = &ctx_struct; + convertible_main_ctx_init(ctx); + // printf("#inputs \"Start\":bool \"Parked\":bool \"Rot\":bool \"Tick\":bool \"OnOff\":bool \"Done\":bool \"Dist\":real\n"); + // printf("#outputs \"Danger\":bool \"Locked\":bool \"Speed\":real \"Roof_Speed\":real\n"); + + /* Main loop */ + clock_prepare(); + clock_start(); + + for(int count=0; count<1000; count++){ + ++_s; + Start = _get_bool("Start"); + Parked = _get_bool("Parked"); + Rot = _get_bool("Rot"); + Tick = _get_bool("Tick"); + OnOff = _get_bool("OnOff"); + Done = _get_bool("Done"); + Dist = _get_real("Dist"); + convertible_main_step(Start,Parked,Rot,Tick,OnOff,Done,Dist,&Danger,&Locked,&Speed,&Roof_Speed,ctx); + // printf("%d %d %d %d %d %d %f #outs %d %d %f %f\n",Start,Parked,Rot,Tick,OnOff,Done,Dist,Danger,Locked,Speed,Roof_Speed); + // printf("%d %d %f %f\n",Danger,Locked,Speed,Roof_Speed); + } + + clock_stop(); + print_total_clock(); + + return 0; + +} diff --git a/test/monniaux/lustre-convertible-2cgc/lustre_consts.c b/test/monniaux/lustre-convertible-2cgc/lustre_consts.c new file mode 100644 index 00000000..925cbf0b --- /dev/null +++ b/test/monniaux/lustre-convertible-2cgc/lustre_consts.c @@ -0,0 +1,4 @@ +/* This file was generated by lv6 version master.737 (2727a7744111c84f7984634d2bd3ad6f7c6c7ff9). */ +/* lv6 -2cgc -node main convertible.lus */ +/* on vanoise the 08/05/2019 at 23:54:11 */ +#include "lustre_consts.h"
\ No newline at end of file diff --git a/test/monniaux/lustre-convertible-2cgc/lustre_consts.h b/test/monniaux/lustre-convertible-2cgc/lustre_consts.h new file mode 100644 index 00000000..a9ba2005 --- /dev/null +++ b/test/monniaux/lustre-convertible-2cgc/lustre_consts.h @@ -0,0 +1,23 @@ +/* This file was generated by lv6 version master.737 (2727a7744111c84f7984634d2bd3ad6f7c6c7ff9). */ +/* lv6 -2cgc -node main convertible.lus */ +/* on vanoise the 08/05/2019 at 23:54:11 */ + +// Constant definitions +#define convertible_anti_col 2 +#define convertible_deg1 1 +#define convertible_fast 1 +#define convertible_in_motion 1 +#define convertible_k 5500.0 +#define convertible_locked 0 +#define convertible_max_roof_speed 10.0 +#define convertible_no_sol 0 +#define convertible_one_sol 2 +#define convertible_period 0.1 +#define convertible_run 1 +#define convertible_size 50 +#define convertible_slow 2 +#define convertible_speed_max 110.0 +#define convertible_stationnary 0 +#define convertible_two_sol 3 +#define convertible_wait 0 +#define convertible_wheel_girth 1.4 diff --git a/test/monniaux/lustre-convertible-2cgc/lustre_types.h b/test/monniaux/lustre-convertible-2cgc/lustre_types.h new file mode 100644 index 00000000..83a1c722 --- /dev/null +++ b/test/monniaux/lustre-convertible-2cgc/lustre_types.h @@ -0,0 +1,139 @@ +/* This file was generated by lv6 version master.737 (2727a7744111c84f7984634d2bd3ad6f7c6c7ff9). */ +/* lv6 -2cgc -node main convertible.lus */ +/* on vanoise the 08/05/2019 at 23:54:11 */ + +#ifndef _SOC2C_PREDEF_TYPES +#define _SOC2C_PREDEF_TYPES +typedef int _boolean; +typedef int _integer; +typedef char* _string; +typedef double _real; +typedef double _double; +typedef float _float; +#define _false 0 +#define _true 1 +#endif +// end of _SOC2C_PREDEF_TYPES +// User typedef +#ifndef _convertible_main_TYPES +#define _convertible_main_TYPES +typedef _integer convertible_eq_case; +typedef _integer convertible_roof_speed_state; +typedef _integer convertible_roof_state; +typedef struct { + _integer i; + _integer j; + _real v; + } convertible_update_acc; +typedef _integer convertible_vehicle_state; +#endif // enf of _convertible_main_TYPES +// Memoryless soc ctx typedef +// Memoryfull soc ctx typedef +/* Lustre_pre_ctx */ +typedef struct { + /*Memory cell*/ + _integer _memory ; +} Lustre_pre_ctx_type; + +/* Lustre_arrow_ctx */ +typedef struct { + /*Memory cell*/ + _boolean _memory ; +} Lustre_arrow_ctx_type; + +/* Lustre_pre_2_ctx */ +typedef struct { + /*Memory cell*/ + _real _memory ; +} Lustre_pre_2_ctx_type; + +/* Lustre_arrow_2_ctx */ +typedef struct { + /*Memory cell*/ + _boolean _memory ; +} Lustre_arrow_2_ctx_type; + +/* convertible_roof_speed_ctx */ +typedef struct { + /*INSTANCES*/ + Lustre_pre_2_ctx_type Lustre_pre_2_ctx_tab[2]; + Lustre_pre_ctx_type Lustre_pre_ctx_tab[1]; + Lustre_arrow_2_ctx_type Lustre_arrow_2_ctx_tab[2]; + Lustre_arrow_ctx_type Lustre_arrow_ctx_tab[1]; +} convertible_roof_speed_ctx_type; + +/* convertible_roof_ctx */ +typedef struct { + /*INSTANCES*/ + convertible_roof_speed_ctx_type convertible_roof_speed_ctx_tab[1]; + Lustre_pre_ctx_type Lustre_pre_ctx_tab[1]; + Lustre_arrow_ctx_type Lustre_arrow_ctx_tab[1]; +} convertible_roof_ctx_type; + +/* Lustre_pre_3_ctx */ +typedef struct { + /*Memory cell*/ + _real _memory[50] ; +} Lustre_pre_3_ctx_type; + +/* Lustre_arrow_3_ctx */ +typedef struct { + /*Memory cell*/ + _boolean _memory ; +} Lustre_arrow_3_ctx_type; + +/* sum_50_0d0_ctx */ +typedef struct { + /*INSTANCES*/ + Lustre_pre_3_ctx_type Lustre_pre_3_ctx_tab[1]; + Lustre_pre_ctx_type Lustre_pre_ctx_tab[1]; + Lustre_arrow_3_ctx_type Lustre_arrow_3_ctx_tab[1]; + Lustre_arrow_ctx_type Lustre_arrow_ctx_tab[1]; +} sum_50_0d0_ctx_type; + +/* sum_50_0d1_ctx */ +typedef struct { + /*INSTANCES*/ + Lustre_pre_3_ctx_type Lustre_pre_3_ctx_tab[1]; + Lustre_pre_ctx_type Lustre_pre_ctx_tab[1]; + Lustre_arrow_3_ctx_type Lustre_arrow_3_ctx_tab[1]; + Lustre_arrow_ctx_type Lustre_arrow_ctx_tab[1]; +} sum_50_0d1_ctx_type; + +/* convertible_speed_kmh_ctx */ +typedef struct { + /*INSTANCES*/ + sum_50_0d1_ctx_type sum_50_0d1_ctx_tab[1]; + sum_50_0d0_ctx_type sum_50_0d0_ctx_tab[1]; + Lustre_pre_2_ctx_type Lustre_pre_2_ctx_tab[3]; + Lustre_arrow_2_ctx_type Lustre_arrow_2_ctx_tab[3]; +} convertible_speed_kmh_ctx_type; + +/* convertible_vehicle_ctx */ +typedef struct { + /*INSTANCES*/ + Lustre_pre_ctx_type Lustre_pre_ctx_tab[1]; + Lustre_arrow_ctx_type Lustre_arrow_ctx_tab[1]; +} convertible_vehicle_ctx_type; + +/* convertible_may_collide_ctx */ +typedef struct { + /*INSTANCES*/ + Lustre_pre_2_ctx_type Lustre_pre_2_ctx_tab[1]; + Lustre_arrow_2_ctx_type Lustre_arrow_2_ctx_tab[1]; +} convertible_may_collide_ctx_type; + +/* convertible_main_ctx */ +typedef struct { + /*INSTANCES*/ + convertible_vehicle_ctx_type convertible_vehicle_ctx_tab[1]; + convertible_speed_kmh_ctx_type convertible_speed_kmh_ctx_tab[1]; + convertible_roof_ctx_type convertible_roof_ctx_tab[1]; + convertible_may_collide_ctx_type convertible_may_collide_ctx_tab[1]; +} convertible_main_ctx_type; + +// Defining array and extern types assignments + +#ifndef _assign_rp50 +#define _assign_rp50(dest, source, size) memcpy(dest, source, size) +#endif diff --git a/test/monniaux/lustre-convertible-en-2cgc/convertible_main.c b/test/monniaux/lustre-convertible-en-2cgc/convertible_main.c new file mode 100644 index 00000000..4dc333dd --- /dev/null +++ b/test/monniaux/lustre-convertible-en-2cgc/convertible_main.c @@ -0,0 +1,3319 @@ +/* This file was generated by lv6 version master.737 (2727a7744111c84f7984634d2bd3ad6f7c6c7ff9). */ +/* lv6 -2c -en -2cgc -n main convertible.lus */ +/* on vanoise the 09/05/2019 at 15:28:26 */ +#include "convertible_main.h" + +#define DM_INLINE inline + +//// Defining step functions +// Memory initialisation for Lustre_arrow_2_ctx +DM_INLINE void Lustre_arrow_2_ctx_reset(Lustre_arrow_2_ctx_type* ctx){ + int _i; + ctx->_memory = _true; +} + +// Initialisation of the internal structure of Lustre_arrow_2_ctx +DM_INLINE void Lustre_arrow_2_ctx_init(Lustre_arrow_2_ctx_type* ctx){ + // ctx->client_data = cdata; + Lustre_arrow_2_ctx_reset(ctx); + } +// Step function(s) for Lustre_arrow_2_ctx +DM_INLINE void Lustre_arrow_2_step(_integer i1,_integer i2,_integer *out,Lustre_arrow_2_ctx_type* ctx){ *out = ((ctx->_memory)? i1 : i2); + ctx->_memory = _false; + +} // End of Lustre_arrow_2_step + +// Memory initialisation for Lustre_arrow_ctx +DM_INLINE void Lustre_arrow_ctx_reset(Lustre_arrow_ctx_type* ctx){ + int _i; + ctx->_memory = _true; +} + +// Initialisation of the internal structure of Lustre_arrow_ctx +DM_INLINE void Lustre_arrow_ctx_init(Lustre_arrow_ctx_type* ctx){ + // ctx->client_data = cdata; + Lustre_arrow_ctx_reset(ctx); + } +// Step function(s) for Lustre_arrow_ctx +DM_INLINE void Lustre_arrow_step(_real i1,_real i2,_real *out,Lustre_arrow_ctx_type* ctx){ *out = ((ctx->_memory)? i1 : i2); + ctx->_memory = _false; + +} // End of Lustre_arrow_step + +// Memory initialisation for Lustre_arrow_3_ctx +DM_INLINE void Lustre_arrow_3_ctx_reset(Lustre_arrow_3_ctx_type* ctx){ + int _i; + ctx->_memory = _true; +} + +// Initialisation of the internal structure of Lustre_arrow_3_ctx +DM_INLINE void Lustre_arrow_3_ctx_init(Lustre_arrow_3_ctx_type* ctx){ + // ctx->client_data = cdata; + Lustre_arrow_3_ctx_reset(ctx); + } +// Step function(s) for Lustre_arrow_3_ctx +DM_INLINE void Lustre_arrow_3_step(_real i1[50],_real i2[50],_real out[50]/*out*/,Lustre_arrow_3_ctx_type* ctx){ _assign_rp50(out, ((ctx->_memory)? i1 : i2), sizeof(_real [50])); + ctx->_memory = _false; + +} // End of Lustre_arrow_3_step + +// Step function(s) for Lustre_hat_ctx +void Lustre_hat_step(_real i1,_real out[50]/*out*/){ + out[0] = i1; + out[1] = i1; + out[2] = i1; + out[3] = i1; + out[4] = i1; + out[5] = i1; + out[6] = i1; + out[7] = i1; + out[8] = i1; + out[9] = i1; + out[10] = i1; + out[11] = i1; + out[12] = i1; + out[13] = i1; + out[14] = i1; + out[15] = i1; + out[16] = i1; + out[17] = i1; + out[18] = i1; + out[19] = i1; + out[20] = i1; + out[21] = i1; + out[22] = i1; + out[23] = i1; + out[24] = i1; + out[25] = i1; + out[26] = i1; + out[27] = i1; + out[28] = i1; + out[29] = i1; + out[30] = i1; + out[31] = i1; + out[32] = i1; + out[33] = i1; + out[34] = i1; + out[35] = i1; + out[36] = i1; + out[37] = i1; + out[38] = i1; + out[39] = i1; + out[40] = i1; + out[41] = i1; + out[42] = i1; + out[43] = i1; + out[44] = i1; + out[45] = i1; + out[46] = i1; + out[47] = i1; + out[48] = i1; + out[49] = i1; + +} // End of Lustre_hat_step + +// Memory initialisation for Lustre_pre_2_ctx +DM_INLINE void Lustre_pre_2_ctx_reset(Lustre_pre_2_ctx_type* ctx){ + int _i; + +} + +// Initialisation of the internal structure of Lustre_pre_2_ctx +DM_INLINE void Lustre_pre_2_ctx_init(Lustre_pre_2_ctx_type* ctx){ + // ctx->client_data = cdata; + Lustre_pre_2_ctx_reset(ctx); + } +// Step function(s) for Lustre_pre_2_ctx +DM_INLINE void Lustre_pre_2_get(_integer *out,Lustre_pre_2_ctx_type* ctx){ + *out = ctx->_memory; + +} // End of Lustre_pre_2_get + +DM_INLINE void Lustre_pre_2_set(_integer i1,Lustre_pre_2_ctx_type* ctx){ + ctx->_memory = i1; + +} // End of Lustre_pre_2_set + +// Memory initialisation for Lustre_pre_ctx +DM_INLINE void Lustre_pre_ctx_reset(Lustre_pre_ctx_type* ctx){ + int _i; + +} + +// Initialisation of the internal structure of Lustre_pre_ctx +DM_INLINE void Lustre_pre_ctx_init(Lustre_pre_ctx_type* ctx){ + // ctx->client_data = cdata; + Lustre_pre_ctx_reset(ctx); + } +// Step function(s) for Lustre_pre_ctx +DM_INLINE void Lustre_pre_get(_real *out,Lustre_pre_ctx_type* ctx){ + *out = ctx->_memory; + +} // End of Lustre_pre_get + +DM_INLINE void Lustre_pre_set(_real i1,Lustre_pre_ctx_type* ctx){ + ctx->_memory = i1; + +} // End of Lustre_pre_set + +// Memory initialisation for Lustre_pre_3_ctx +DM_INLINE void Lustre_pre_3_ctx_reset(Lustre_pre_3_ctx_type* ctx){ + int _i; + +} + +// Initialisation of the internal structure of Lustre_pre_3_ctx +DM_INLINE void Lustre_pre_3_ctx_init(Lustre_pre_3_ctx_type* ctx){ + // ctx->client_data = cdata; + Lustre_pre_3_ctx_reset(ctx); + } +// Step function(s) for Lustre_pre_3_ctx +DM_INLINE void Lustre_pre_3_get(_real out[50]/*out*/,Lustre_pre_3_ctx_type* ctx){ + _assign_rp50(out, ctx->_memory, sizeof(_real [50])); + +} // End of Lustre_pre_3_get + +DM_INLINE void Lustre_pre_3_set(_real i1[50],Lustre_pre_3_ctx_type* ctx){ + _assign_rp50(ctx->_memory, i1, sizeof(_real [50])); + +} // End of Lustre_pre_3_set + +// Step function(s) for Lustre_slash_ctx +DM_INLINE void Lustre_slash_step(_real i1,_real i2,_real *out){ + *out = (i1 / i2); + +} // End of Lustre_slash_step + +// Memory initialisation for convertible_main_ctx +void convertible_main_ctx_reset(convertible_main_ctx_type* ctx){ + int _i; + + Lustre_pre_3_ctx_reset(&ctx->Lustre_pre_3_ctx_tab[0]); + Lustre_pre_3_ctx_reset(&ctx->Lustre_pre_3_ctx_tab[1]); for (_i=0 ; _i<6 ; _i+=1){ + Lustre_pre_ctx_reset(&ctx->Lustre_pre_ctx_tab[_i]); + } for (_i=0 ; _i<5 ; _i+=1){ + Lustre_pre_2_ctx_reset(&ctx->Lustre_pre_2_ctx_tab[_i]); + } + Lustre_arrow_3_ctx_reset(&ctx->Lustre_arrow_3_ctx_tab[0]); + Lustre_arrow_3_ctx_reset(&ctx->Lustre_arrow_3_ctx_tab[1]); for (_i=0 ; _i<6 ; _i+=1){ + Lustre_arrow_ctx_reset(&ctx->Lustre_arrow_ctx_tab[_i]); + } for (_i=0 ; _i<5 ; _i+=1){ + Lustre_arrow_2_ctx_reset(&ctx->Lustre_arrow_2_ctx_tab[_i]); + } +} + +// Initialisation of the internal structure of convertible_main_ctx +void convertible_main_ctx_init(convertible_main_ctx_type* ctx){ + // ctx->client_data = cdata; + convertible_main_ctx_reset(ctx); + } +// Step function(s) for convertible_main_ctx +void convertible_main_step(_boolean Start,_boolean Parked,_boolean Rot,_boolean Tick,_boolean OnOff,_boolean Done,_real Dist,_boolean *Danger,_boolean *Locked,_real *Speed,_real *Roof_Speed,convertible_main_ctx_type* ctx){ _boolean _Tick_on_in_motion_1; + _integer _st_2; + _integer _pst_3; + _integer __split_18_1; + _boolean __split_19_1; + _boolean __split_20_1; + _integer __split_21_1; + _boolean __split_22_1; + _integer __split_23_1; + _real __split_24_1; + _real __split_25_1; + _real ____presqrt_5_4_1_1; + _boolean ______split_1_5_1_4_1_1; + _real ______split_2_5_1_4_1_1; + _boolean _____ecart_4_1_4_1_1; + _real _____sqrt_4_1_4_1_1; + _real ______split_110_1_1_4_1_1; + _real ______split_111_1_1_4_1_1; + _real ______split_112_1_1_4_1_1; + _real ______split_113_1_1_4_1_1; + _real ______split_114_1_1_4_1_1; + _real ______split_115_1_1_4_1_1; + _real ______split_116_1_1_4_1_1; + _real ______split_117_1_1_4_1_1; + _boolean ________split_1_3_1_1_1_4_1_1; + _real ________split_2_3_1_1_1_4_1_1; + _boolean _______ecart_2_1_1_1_4_1_1; + _real _______sqrt_2_1_1_1_4_1_1; + _real ________split_94_1_1_1_1_4_1_1; + _real ________split_95_1_1_1_1_4_1_1; + _real ________split_96_1_1_1_1_4_1_1; + _real ________split_97_1_1_1_1_4_1_1; + _real ________split_98_1_1_1_1_4_1_1; + _real ________split_99_1_1_1_1_4_1_1; + _real ________split_101_1_1_1_1_4_1_1; + _boolean __________split_1_1_1_1_1_1_1_4_1_1; + _real __________split_2_1_1_1_1_1_1_4_1_1; + _real _________split_93_1_1_1_1_1_4_1_1; + _real _________split_92_1_1_1_1_1_4_1_1; + _real _________split_91_1_1_1_1_1_4_1_1; + _real _________split_90_1_1_1_1_1_4_1_1; + _real ________sqrt_1_1_1_1_1_4_1_1; + _boolean ________ecart_1_1_1_1_1_4_1_1; + _real _________split_2_2_1_1_1_1_4_1_1; + _boolean _________split_1_2_1_1_1_1_4_1_1; + _real _______split_109_1_1_1_4_1_1; + _real _______split_108_1_1_1_4_1_1; + _real _______split_107_1_1_1_4_1_1; + _real _______split_106_1_1_1_4_1_1; + _real _______split_105_1_1_1_4_1_1; + _real _______split_104_1_1_1_4_1_1; + _real _______split_103_1_1_1_4_1_1; + _real _______split_102_1_1_1_4_1_1; + _real ______sqrt_3_1_1_4_1_1; + _boolean ______ecart_3_1_1_4_1_1; + _real _______split_2_4_1_1_4_1_1; + _boolean _______split_1_4_1_1_4_1_1; + _real _____split_125_1_4_1_1; + _real _____split_124_1_4_1_1; + _real _____split_123_1_4_1_1; + _real _____split_122_1_4_1_1; + _real _____split_121_1_4_1_1; + _real _____split_120_1_4_1_1; + _real _____split_119_1_4_1_1; + _real _____split_118_1_4_1_1; + _real ____sqrt_5_4_1_1; + _boolean ____ecart_5_4_1_1; + _real ____presqrt_5_3_1_1; + _boolean ______split_1_5_1_3_1_1; + _real ______split_2_5_1_3_1_1; + _boolean _____ecart_4_1_3_1_1; + _real _____sqrt_4_1_3_1_1; + _real ______split_110_1_1_3_1_1; + _real ______split_111_1_1_3_1_1; + _real ______split_112_1_1_3_1_1; + _real ______split_113_1_1_3_1_1; + _real ______split_114_1_1_3_1_1; + _real ______split_115_1_1_3_1_1; + _real ______split_116_1_1_3_1_1; + _real ______split_117_1_1_3_1_1; + _boolean ________split_1_3_1_1_1_3_1_1; + _real ________split_2_3_1_1_1_3_1_1; + _boolean _______ecart_2_1_1_1_3_1_1; + _real _______sqrt_2_1_1_1_3_1_1; + _real ________split_94_1_1_1_1_3_1_1; + _real ________split_95_1_1_1_1_3_1_1; + _real ________split_96_1_1_1_1_3_1_1; + _real ________split_97_1_1_1_1_3_1_1; + _real ________split_98_1_1_1_1_3_1_1; + _real ________split_99_1_1_1_1_3_1_1; + _real ________split_101_1_1_1_1_3_1_1; + _boolean __________split_1_1_1_1_1_1_1_3_1_1; + _real __________split_2_1_1_1_1_1_1_3_1_1; + _real _________split_93_1_1_1_1_1_3_1_1; + _real _________split_92_1_1_1_1_1_3_1_1; + _real _________split_91_1_1_1_1_1_3_1_1; + _real _________split_90_1_1_1_1_1_3_1_1; + _real ________sqrt_1_1_1_1_1_3_1_1; + _boolean ________ecart_1_1_1_1_1_3_1_1; + _real _________split_2_2_1_1_1_1_3_1_1; + _boolean _________split_1_2_1_1_1_1_3_1_1; + _real _______split_109_1_1_1_3_1_1; + _real _______split_108_1_1_1_3_1_1; + _real _______split_107_1_1_1_3_1_1; + _real _______split_106_1_1_1_3_1_1; + _real _______split_105_1_1_1_3_1_1; + _real _______split_104_1_1_1_3_1_1; + _real _______split_103_1_1_1_3_1_1; + _real _______split_102_1_1_1_3_1_1; + _real ______sqrt_3_1_1_3_1_1; + _boolean ______ecart_3_1_1_3_1_1; + _real _______split_2_4_1_1_3_1_1; + _boolean _______split_1_4_1_1_3_1_1; + _real _____split_125_1_3_1_1; + _real _____split_124_1_3_1_1; + _real _____split_123_1_3_1_1; + _real _____split_122_1_3_1_1; + _real _____split_121_1_3_1_1; + _real _____split_120_1_3_1_1; + _real _____split_119_1_3_1_1; + _real _____split_118_1_3_1_1; + _real ____sqrt_5_3_1_1; + _boolean ____ecart_5_3_1_1; + _real ___split_48_1_1; + _real ___split_47_1_1; + _real ___split_46_1_1; + _real ___split_45_1_1; + _real ___split_44_1_1; + _real ___split_43_1_1; + _real ___split_42_1_1; + _real ___split_41_1_1; + _real ___split_40_1_1; + _real ___split_39_1_1; + _real ___split_38_1_1; + _real ___split_37_1_1; + _real ___split_36_1_1; + _real ___split_35_1_1; + _real ___split_34_1_1; + _real ___split_33_1_1; + _integer ___split_32_1_1; + _boolean ___split_31_1_1; + _real ___split_30_1_1; + _integer ___split_29_1_1; + _boolean ___split_28_1_1; + _real ___split_27_1_1; + _integer ___split_26_1_1; + _integer __pst_2_1; + _integer __st_1_1; + _real __kh_1_1; + _real __Roof_Percent_1_1; + _real __pRoof_Percent_1_1; + _real __slow_it_down_1_1; + _real __pRoof_Speed_1_1; + _boolean _TickOrRot_1; + _real _tx_1; + _real _dx_1; + _real _pt_1; + _real _pd_1; + _real _t_3; + _real _d_1; + _real __split_78_1; + _real __split_79_1; + _real __split_80_1; + _real __split_81_1; + _real __split_82_1; + _real __split_83_1; + _real __split_84_1; + _real __split_85_1; + _real __split_86_1; + _real __split_87_1; + _real __split_88_1; + _real __split_89_1; + _real __x_13_1; + _boolean ___split_10_2_1; + convertible_update_acc ___dummy_1_1_1; + convertible_update_acc ____split_3_1_1_1; + _boolean ______split_136_50_1_1_1_1; + _integer ______split_137_50_1_1_1_1; + _real _____cell_50_1_1_1_1; + _real _____ncell_50_1_1_1_1; + _boolean ______split_136_49_1_1_1_1; + _integer ______split_137_49_1_1_1_1; + _real _____cell_49_1_1_1_1; + _real _____ncell_49_1_1_1_1; + _boolean ______split_136_48_1_1_1_1; + _integer ______split_137_48_1_1_1_1; + _real _____cell_48_1_1_1_1; + _real _____ncell_48_1_1_1_1; + _boolean ______split_136_47_1_1_1_1; + _integer ______split_137_47_1_1_1_1; + _real _____cell_47_1_1_1_1; + _real _____ncell_47_1_1_1_1; + _boolean ______split_136_46_1_1_1_1; + _integer ______split_137_46_1_1_1_1; + _real _____cell_46_1_1_1_1; + _real _____ncell_46_1_1_1_1; + _boolean ______split_136_45_1_1_1_1; + _integer ______split_137_45_1_1_1_1; + _real _____cell_45_1_1_1_1; + _real _____ncell_45_1_1_1_1; + _boolean ______split_136_44_1_1_1_1; + _integer ______split_137_44_1_1_1_1; + _real _____cell_44_1_1_1_1; + _real _____ncell_44_1_1_1_1; + _boolean ______split_136_43_1_1_1_1; + _integer ______split_137_43_1_1_1_1; + _real _____cell_43_1_1_1_1; + _real _____ncell_43_1_1_1_1; + _boolean ______split_136_42_1_1_1_1; + _integer ______split_137_42_1_1_1_1; + _real _____cell_42_1_1_1_1; + _real _____ncell_42_1_1_1_1; + _boolean ______split_136_41_1_1_1_1; + _integer ______split_137_41_1_1_1_1; + _real _____cell_41_1_1_1_1; + _real _____ncell_41_1_1_1_1; + _boolean ______split_136_40_1_1_1_1; + _integer ______split_137_40_1_1_1_1; + _real _____cell_40_1_1_1_1; + _real _____ncell_40_1_1_1_1; + _boolean ______split_136_39_1_1_1_1; + _integer ______split_137_39_1_1_1_1; + _real _____cell_39_1_1_1_1; + _real _____ncell_39_1_1_1_1; + _boolean ______split_136_38_1_1_1_1; + _integer ______split_137_38_1_1_1_1; + _real _____cell_38_1_1_1_1; + _real _____ncell_38_1_1_1_1; + _boolean ______split_136_37_1_1_1_1; + _integer ______split_137_37_1_1_1_1; + _real _____cell_37_1_1_1_1; + _real _____ncell_37_1_1_1_1; + _boolean ______split_136_36_1_1_1_1; + _integer ______split_137_36_1_1_1_1; + _real _____cell_36_1_1_1_1; + _real _____ncell_36_1_1_1_1; + _boolean ______split_136_35_1_1_1_1; + _integer ______split_137_35_1_1_1_1; + _real _____cell_35_1_1_1_1; + _real _____ncell_35_1_1_1_1; + _boolean ______split_136_34_1_1_1_1; + _integer ______split_137_34_1_1_1_1; + _real _____cell_34_1_1_1_1; + _real _____ncell_34_1_1_1_1; + _boolean ______split_136_33_1_1_1_1; + _integer ______split_137_33_1_1_1_1; + _real _____cell_33_1_1_1_1; + _real _____ncell_33_1_1_1_1; + _boolean ______split_136_32_1_1_1_1; + _integer ______split_137_32_1_1_1_1; + _real _____cell_32_1_1_1_1; + _real _____ncell_32_1_1_1_1; + _boolean ______split_136_31_1_1_1_1; + _integer ______split_137_31_1_1_1_1; + _real _____cell_31_1_1_1_1; + _real _____ncell_31_1_1_1_1; + _boolean ______split_136_30_1_1_1_1; + _integer ______split_137_30_1_1_1_1; + _real _____cell_30_1_1_1_1; + _real _____ncell_30_1_1_1_1; + _boolean ______split_136_29_1_1_1_1; + _integer ______split_137_29_1_1_1_1; + _real _____cell_29_1_1_1_1; + _real _____ncell_29_1_1_1_1; + _boolean ______split_136_28_1_1_1_1; + _integer ______split_137_28_1_1_1_1; + _real _____cell_28_1_1_1_1; + _real _____ncell_28_1_1_1_1; + _boolean ______split_136_27_1_1_1_1; + _integer ______split_137_27_1_1_1_1; + _real _____cell_27_1_1_1_1; + _real _____ncell_27_1_1_1_1; + _boolean ______split_136_26_1_1_1_1; + _integer ______split_137_26_1_1_1_1; + _real _____cell_26_1_1_1_1; + _real _____ncell_26_1_1_1_1; + _boolean ______split_136_25_1_1_1_1; + _integer ______split_137_25_1_1_1_1; + _real _____cell_25_1_1_1_1; + _real _____ncell_25_1_1_1_1; + _boolean ______split_136_24_1_1_1_1; + _integer ______split_137_24_1_1_1_1; + _real _____cell_24_1_1_1_1; + _real _____ncell_24_1_1_1_1; + _boolean ______split_136_23_1_1_1_1; + _integer ______split_137_23_1_1_1_1; + _real _____cell_23_1_1_1_1; + _real _____ncell_23_1_1_1_1; + _boolean ______split_136_22_1_1_1_1; + _integer ______split_137_22_1_1_1_1; + _real _____cell_22_1_1_1_1; + _real _____ncell_22_1_1_1_1; + _boolean ______split_136_21_1_1_1_1; + _integer ______split_137_21_1_1_1_1; + _real _____cell_21_1_1_1_1; + _real _____ncell_21_1_1_1_1; + _boolean ______split_136_20_1_1_1_1; + _integer ______split_137_20_1_1_1_1; + _real _____cell_20_1_1_1_1; + _real _____ncell_20_1_1_1_1; + _boolean ______split_136_19_1_1_1_1; + _integer ______split_137_19_1_1_1_1; + _real _____cell_19_1_1_1_1; + _real _____ncell_19_1_1_1_1; + _boolean ______split_136_18_1_1_1_1; + _integer ______split_137_18_1_1_1_1; + _real _____cell_18_1_1_1_1; + _real _____ncell_18_1_1_1_1; + _boolean ______split_136_17_1_1_1_1; + _integer ______split_137_17_1_1_1_1; + _real _____cell_17_1_1_1_1; + _real _____ncell_17_1_1_1_1; + _boolean ______split_136_16_1_1_1_1; + _integer ______split_137_16_1_1_1_1; + _real _____cell_16_1_1_1_1; + _real _____ncell_16_1_1_1_1; + _boolean ______split_136_15_1_1_1_1; + _integer ______split_137_15_1_1_1_1; + _real _____cell_15_1_1_1_1; + _real _____ncell_15_1_1_1_1; + _boolean ______split_136_14_1_1_1_1; + _integer ______split_137_14_1_1_1_1; + _real _____cell_14_1_1_1_1; + _real _____ncell_14_1_1_1_1; + _boolean ______split_136_13_1_1_1_1; + _integer ______split_137_13_1_1_1_1; + _real _____cell_13_1_1_1_1; + _real _____ncell_13_1_1_1_1; + _boolean ______split_136_12_1_1_1_1; + _integer ______split_137_12_1_1_1_1; + _real _____cell_12_1_1_1_1; + _real _____ncell_12_1_1_1_1; + _boolean ______split_136_11_1_1_1_1; + _integer ______split_137_11_1_1_1_1; + _real _____cell_11_1_1_1_1; + _real _____ncell_11_1_1_1_1; + _boolean ______split_136_10_1_1_1_1; + _integer ______split_137_10_1_1_1_1; + _real _____cell_10_1_1_1_1; + _real _____ncell_10_1_1_1_1; + _boolean ______split_136_9_1_1_1_1; + _integer ______split_137_9_1_1_1_1; + _real _____cell_9_1_1_1_1; + _real _____ncell_9_1_1_1_1; + _boolean ______split_136_8_1_1_1_1; + _integer ______split_137_8_1_1_1_1; + _real _____cell_8_1_1_1_1; + _real _____ncell_8_1_1_1_1; + _boolean ______split_136_7_1_1_1_1; + _integer ______split_137_7_1_1_1_1; + _real _____cell_7_1_1_1_1; + _real _____ncell_7_1_1_1_1; + _boolean ______split_136_6_1_1_1_1; + _integer ______split_137_6_1_1_1_1; + _real _____cell_6_1_1_1_1; + _real _____ncell_6_1_1_1_1; + _boolean ______split_136_5_1_1_1_1; + _integer ______split_137_5_1_1_1_1; + _real _____cell_5_1_1_1_1; + _real _____ncell_5_1_1_1_1; + _boolean ______split_136_4_1_1_1_1; + _integer ______split_137_4_1_1_1_1; + _real _____cell_4_1_1_1_1; + _real _____ncell_4_1_1_1_1; + _boolean ______split_136_3_1_1_1_1; + _integer ______split_137_3_1_1_1_1; + _real _____cell_3_1_1_1_1; + _real _____ncell_3_1_1_1_1; + _boolean ______split_136_2_1_1_1_1; + _integer ______split_137_2_1_1_1_1; + _real _____cell_2_1_1_1_1; + _real _____ncell_2_1_1_1_1; + _boolean ______split_136_1_1_1_1_1; + _integer ______split_137_1_1_1_1_1; + _real _____cell_1_1_1_1_1; + _real _____ncell_1_1_1_1_1; + convertible_update_acc _____acc_1_1_1_1_1; + convertible_update_acc _____acc_2_1_1_1_1; + convertible_update_acc _____acc_3_1_1_1_1; + convertible_update_acc _____acc_4_1_1_1_1; + convertible_update_acc _____acc_5_1_1_1_1; + convertible_update_acc _____acc_6_1_1_1_1; + convertible_update_acc _____acc_7_1_1_1_1; + convertible_update_acc _____acc_8_1_1_1_1; + convertible_update_acc _____acc_9_1_1_1_1; + convertible_update_acc _____acc_10_1_1_1_1; + convertible_update_acc _____acc_11_1_1_1_1; + convertible_update_acc _____acc_12_1_1_1_1; + convertible_update_acc _____acc_13_1_1_1_1; + convertible_update_acc _____acc_14_1_1_1_1; + convertible_update_acc _____acc_15_1_1_1_1; + convertible_update_acc _____acc_16_1_1_1_1; + convertible_update_acc _____acc_17_1_1_1_1; + convertible_update_acc _____acc_18_1_1_1_1; + convertible_update_acc _____acc_19_1_1_1_1; + convertible_update_acc _____acc_20_1_1_1_1; + convertible_update_acc _____acc_21_1_1_1_1; + convertible_update_acc _____acc_22_1_1_1_1; + convertible_update_acc _____acc_23_1_1_1_1; + convertible_update_acc _____acc_24_1_1_1_1; + convertible_update_acc _____acc_25_1_1_1_1; + convertible_update_acc _____acc_26_1_1_1_1; + convertible_update_acc _____acc_27_1_1_1_1; + convertible_update_acc _____acc_28_1_1_1_1; + convertible_update_acc _____acc_29_1_1_1_1; + convertible_update_acc _____acc_30_1_1_1_1; + convertible_update_acc _____acc_31_1_1_1_1; + convertible_update_acc _____acc_32_1_1_1_1; + convertible_update_acc _____acc_33_1_1_1_1; + convertible_update_acc _____acc_34_1_1_1_1; + convertible_update_acc _____acc_35_1_1_1_1; + convertible_update_acc _____acc_36_1_1_1_1; + convertible_update_acc _____acc_37_1_1_1_1; + convertible_update_acc _____acc_38_1_1_1_1; + convertible_update_acc _____acc_39_1_1_1_1; + convertible_update_acc _____acc_40_1_1_1_1; + convertible_update_acc _____acc_41_1_1_1_1; + convertible_update_acc _____acc_42_1_1_1_1; + convertible_update_acc _____acc_43_1_1_1_1; + convertible_update_acc _____acc_44_1_1_1_1; + convertible_update_acc _____acc_45_1_1_1_1; + convertible_update_acc _____acc_46_1_1_1_1; + convertible_update_acc _____acc_47_1_1_1_1; + convertible_update_acc _____acc_48_1_1_1_1; + convertible_update_acc _____acc_49_1_1_1_1; + _real ____acc_98_1_1_1; + _real ____acc_97_1_1_1; + _real ____acc_96_1_1_1; + _real ____acc_95_1_1_1; + _real ____acc_94_1_1_1; + _real ____acc_93_1_1_1; + _real ____acc_92_1_1_1; + _real ____acc_91_1_1_1; + _real ____acc_90_1_1_1; + _real ____acc_89_1_1_1; + _real ____acc_88_1_1_1; + _real ____acc_87_1_1_1; + _real ____acc_86_1_1_1; + _real ____acc_85_1_1_1; + _real ____acc_84_1_1_1; + _real ____acc_83_1_1_1; + _real ____acc_82_1_1_1; + _real ____acc_81_1_1_1; + _real ____acc_80_1_1_1; + _real ____acc_79_1_1_1; + _real ____acc_78_1_1_1; + _real ____acc_77_1_1_1; + _real ____acc_76_1_1_1; + _real ____acc_75_1_1_1; + _real ____acc_74_1_1_1; + _real ____acc_73_1_1_1; + _real ____acc_72_1_1_1; + _real ____acc_71_1_1_1; + _real ____acc_70_1_1_1; + _real ____acc_69_1_1_1; + _real ____acc_68_1_1_1; + _real ____acc_67_1_1_1; + _real ____acc_66_1_1_1; + _real ____acc_65_1_1_1; + _real ____acc_64_1_1_1; + _real ____acc_63_1_1_1; + _real ____acc_62_1_1_1; + _real ____acc_61_1_1_1; + _real ____acc_60_1_1_1; + _real ____acc_59_1_1_1; + _real ____acc_58_1_1_1; + _real ____acc_57_1_1_1; + _real ____acc_56_1_1_1; + _real ____acc_55_1_1_1; + _real ____acc_54_1_1_1; + _real ____acc_53_1_1_1; + _real ____acc_52_1_1_1; + _real ____acc_51_1_1_1; + _real ____acc_50_1_1_1; + _real ___i1_1_1_1; + _integer ___split_135_1_1; + _real ___split_134_1_1[50]; + _real ___split_133_1_1[50]; + _integer ___split_132_1_1; + _integer ___split_131_1_1; + _real __a_2_1[50]; + _real __pre_a_1_1[50]; + _integer __i_1_1; + convertible_update_acc ___dummy_2_1_1; + convertible_update_acc ____split_3_2_1_1; + _boolean ______split_136_50_1_2_1_1; + _integer ______split_137_50_1_2_1_1; + _real _____cell_50_1_2_1_1; + _real _____ncell_50_1_2_1_1; + _boolean ______split_136_49_1_2_1_1; + _integer ______split_137_49_1_2_1_1; + _real _____cell_49_1_2_1_1; + _real _____ncell_49_1_2_1_1; + _boolean ______split_136_48_1_2_1_1; + _integer ______split_137_48_1_2_1_1; + _real _____cell_48_1_2_1_1; + _real _____ncell_48_1_2_1_1; + _boolean ______split_136_47_1_2_1_1; + _integer ______split_137_47_1_2_1_1; + _real _____cell_47_1_2_1_1; + _real _____ncell_47_1_2_1_1; + _boolean ______split_136_46_1_2_1_1; + _integer ______split_137_46_1_2_1_1; + _real _____cell_46_1_2_1_1; + _real _____ncell_46_1_2_1_1; + _boolean ______split_136_45_1_2_1_1; + _integer ______split_137_45_1_2_1_1; + _real _____cell_45_1_2_1_1; + _real _____ncell_45_1_2_1_1; + _boolean ______split_136_44_1_2_1_1; + _integer ______split_137_44_1_2_1_1; + _real _____cell_44_1_2_1_1; + _real _____ncell_44_1_2_1_1; + _boolean ______split_136_43_1_2_1_1; + _integer ______split_137_43_1_2_1_1; + _real _____cell_43_1_2_1_1; + _real _____ncell_43_1_2_1_1; + _boolean ______split_136_42_1_2_1_1; + _integer ______split_137_42_1_2_1_1; + _real _____cell_42_1_2_1_1; + _real _____ncell_42_1_2_1_1; + _boolean ______split_136_41_1_2_1_1; + _integer ______split_137_41_1_2_1_1; + _real _____cell_41_1_2_1_1; + _real _____ncell_41_1_2_1_1; + _boolean ______split_136_40_1_2_1_1; + _integer ______split_137_40_1_2_1_1; + _real _____cell_40_1_2_1_1; + _real _____ncell_40_1_2_1_1; + _boolean ______split_136_39_1_2_1_1; + _integer ______split_137_39_1_2_1_1; + _real _____cell_39_1_2_1_1; + _real _____ncell_39_1_2_1_1; + _boolean ______split_136_38_1_2_1_1; + _integer ______split_137_38_1_2_1_1; + _real _____cell_38_1_2_1_1; + _real _____ncell_38_1_2_1_1; + _boolean ______split_136_37_1_2_1_1; + _integer ______split_137_37_1_2_1_1; + _real _____cell_37_1_2_1_1; + _real _____ncell_37_1_2_1_1; + _boolean ______split_136_36_1_2_1_1; + _integer ______split_137_36_1_2_1_1; + _real _____cell_36_1_2_1_1; + _real _____ncell_36_1_2_1_1; + _boolean ______split_136_35_1_2_1_1; + _integer ______split_137_35_1_2_1_1; + _real _____cell_35_1_2_1_1; + _real _____ncell_35_1_2_1_1; + _boolean ______split_136_34_1_2_1_1; + _integer ______split_137_34_1_2_1_1; + _real _____cell_34_1_2_1_1; + _real _____ncell_34_1_2_1_1; + _boolean ______split_136_33_1_2_1_1; + _integer ______split_137_33_1_2_1_1; + _real _____cell_33_1_2_1_1; + _real _____ncell_33_1_2_1_1; + _boolean ______split_136_32_1_2_1_1; + _integer ______split_137_32_1_2_1_1; + _real _____cell_32_1_2_1_1; + _real _____ncell_32_1_2_1_1; + _boolean ______split_136_31_1_2_1_1; + _integer ______split_137_31_1_2_1_1; + _real _____cell_31_1_2_1_1; + _real _____ncell_31_1_2_1_1; + _boolean ______split_136_30_1_2_1_1; + _integer ______split_137_30_1_2_1_1; + _real _____cell_30_1_2_1_1; + _real _____ncell_30_1_2_1_1; + _boolean ______split_136_29_1_2_1_1; + _integer ______split_137_29_1_2_1_1; + _real _____cell_29_1_2_1_1; + _real _____ncell_29_1_2_1_1; + _boolean ______split_136_28_1_2_1_1; + _integer ______split_137_28_1_2_1_1; + _real _____cell_28_1_2_1_1; + _real _____ncell_28_1_2_1_1; + _boolean ______split_136_27_1_2_1_1; + _integer ______split_137_27_1_2_1_1; + _real _____cell_27_1_2_1_1; + _real _____ncell_27_1_2_1_1; + _boolean ______split_136_26_1_2_1_1; + _integer ______split_137_26_1_2_1_1; + _real _____cell_26_1_2_1_1; + _real _____ncell_26_1_2_1_1; + _boolean ______split_136_25_1_2_1_1; + _integer ______split_137_25_1_2_1_1; + _real _____cell_25_1_2_1_1; + _real _____ncell_25_1_2_1_1; + _boolean ______split_136_24_1_2_1_1; + _integer ______split_137_24_1_2_1_1; + _real _____cell_24_1_2_1_1; + _real _____ncell_24_1_2_1_1; + _boolean ______split_136_23_1_2_1_1; + _integer ______split_137_23_1_2_1_1; + _real _____cell_23_1_2_1_1; + _real _____ncell_23_1_2_1_1; + _boolean ______split_136_22_1_2_1_1; + _integer ______split_137_22_1_2_1_1; + _real _____cell_22_1_2_1_1; + _real _____ncell_22_1_2_1_1; + _boolean ______split_136_21_1_2_1_1; + _integer ______split_137_21_1_2_1_1; + _real _____cell_21_1_2_1_1; + _real _____ncell_21_1_2_1_1; + _boolean ______split_136_20_1_2_1_1; + _integer ______split_137_20_1_2_1_1; + _real _____cell_20_1_2_1_1; + _real _____ncell_20_1_2_1_1; + _boolean ______split_136_19_1_2_1_1; + _integer ______split_137_19_1_2_1_1; + _real _____cell_19_1_2_1_1; + _real _____ncell_19_1_2_1_1; + _boolean ______split_136_18_1_2_1_1; + _integer ______split_137_18_1_2_1_1; + _real _____cell_18_1_2_1_1; + _real _____ncell_18_1_2_1_1; + _boolean ______split_136_17_1_2_1_1; + _integer ______split_137_17_1_2_1_1; + _real _____cell_17_1_2_1_1; + _real _____ncell_17_1_2_1_1; + _boolean ______split_136_16_1_2_1_1; + _integer ______split_137_16_1_2_1_1; + _real _____cell_16_1_2_1_1; + _real _____ncell_16_1_2_1_1; + _boolean ______split_136_15_1_2_1_1; + _integer ______split_137_15_1_2_1_1; + _real _____cell_15_1_2_1_1; + _real _____ncell_15_1_2_1_1; + _boolean ______split_136_14_1_2_1_1; + _integer ______split_137_14_1_2_1_1; + _real _____cell_14_1_2_1_1; + _real _____ncell_14_1_2_1_1; + _boolean ______split_136_13_1_2_1_1; + _integer ______split_137_13_1_2_1_1; + _real _____cell_13_1_2_1_1; + _real _____ncell_13_1_2_1_1; + _boolean ______split_136_12_1_2_1_1; + _integer ______split_137_12_1_2_1_1; + _real _____cell_12_1_2_1_1; + _real _____ncell_12_1_2_1_1; + _boolean ______split_136_11_1_2_1_1; + _integer ______split_137_11_1_2_1_1; + _real _____cell_11_1_2_1_1; + _real _____ncell_11_1_2_1_1; + _boolean ______split_136_10_1_2_1_1; + _integer ______split_137_10_1_2_1_1; + _real _____cell_10_1_2_1_1; + _real _____ncell_10_1_2_1_1; + _boolean ______split_136_9_1_2_1_1; + _integer ______split_137_9_1_2_1_1; + _real _____cell_9_1_2_1_1; + _real _____ncell_9_1_2_1_1; + _boolean ______split_136_8_1_2_1_1; + _integer ______split_137_8_1_2_1_1; + _real _____cell_8_1_2_1_1; + _real _____ncell_8_1_2_1_1; + _boolean ______split_136_7_1_2_1_1; + _integer ______split_137_7_1_2_1_1; + _real _____cell_7_1_2_1_1; + _real _____ncell_7_1_2_1_1; + _boolean ______split_136_6_1_2_1_1; + _integer ______split_137_6_1_2_1_1; + _real _____cell_6_1_2_1_1; + _real _____ncell_6_1_2_1_1; + _boolean ______split_136_5_1_2_1_1; + _integer ______split_137_5_1_2_1_1; + _real _____cell_5_1_2_1_1; + _real _____ncell_5_1_2_1_1; + _boolean ______split_136_4_1_2_1_1; + _integer ______split_137_4_1_2_1_1; + _real _____cell_4_1_2_1_1; + _real _____ncell_4_1_2_1_1; + _boolean ______split_136_3_1_2_1_1; + _integer ______split_137_3_1_2_1_1; + _real _____cell_3_1_2_1_1; + _real _____ncell_3_1_2_1_1; + _boolean ______split_136_2_1_2_1_1; + _integer ______split_137_2_1_2_1_1; + _real _____cell_2_1_2_1_1; + _real _____ncell_2_1_2_1_1; + _boolean ______split_136_1_1_2_1_1; + _integer ______split_137_1_1_2_1_1; + _real _____cell_1_1_2_1_1; + _real _____ncell_1_1_2_1_1; + convertible_update_acc _____acc_1_1_2_1_1; + convertible_update_acc _____acc_2_1_2_1_1; + convertible_update_acc _____acc_3_1_2_1_1; + convertible_update_acc _____acc_4_1_2_1_1; + convertible_update_acc _____acc_5_1_2_1_1; + convertible_update_acc _____acc_6_1_2_1_1; + convertible_update_acc _____acc_7_1_2_1_1; + convertible_update_acc _____acc_8_1_2_1_1; + convertible_update_acc _____acc_9_1_2_1_1; + convertible_update_acc _____acc_10_1_2_1_1; + convertible_update_acc _____acc_11_1_2_1_1; + convertible_update_acc _____acc_12_1_2_1_1; + convertible_update_acc _____acc_13_1_2_1_1; + convertible_update_acc _____acc_14_1_2_1_1; + convertible_update_acc _____acc_15_1_2_1_1; + convertible_update_acc _____acc_16_1_2_1_1; + convertible_update_acc _____acc_17_1_2_1_1; + convertible_update_acc _____acc_18_1_2_1_1; + convertible_update_acc _____acc_19_1_2_1_1; + convertible_update_acc _____acc_20_1_2_1_1; + convertible_update_acc _____acc_21_1_2_1_1; + convertible_update_acc _____acc_22_1_2_1_1; + convertible_update_acc _____acc_23_1_2_1_1; + convertible_update_acc _____acc_24_1_2_1_1; + convertible_update_acc _____acc_25_1_2_1_1; + convertible_update_acc _____acc_26_1_2_1_1; + convertible_update_acc _____acc_27_1_2_1_1; + convertible_update_acc _____acc_28_1_2_1_1; + convertible_update_acc _____acc_29_1_2_1_1; + convertible_update_acc _____acc_30_1_2_1_1; + convertible_update_acc _____acc_31_1_2_1_1; + convertible_update_acc _____acc_32_1_2_1_1; + convertible_update_acc _____acc_33_1_2_1_1; + convertible_update_acc _____acc_34_1_2_1_1; + convertible_update_acc _____acc_35_1_2_1_1; + convertible_update_acc _____acc_36_1_2_1_1; + convertible_update_acc _____acc_37_1_2_1_1; + convertible_update_acc _____acc_38_1_2_1_1; + convertible_update_acc _____acc_39_1_2_1_1; + convertible_update_acc _____acc_40_1_2_1_1; + convertible_update_acc _____acc_41_1_2_1_1; + convertible_update_acc _____acc_42_1_2_1_1; + convertible_update_acc _____acc_43_1_2_1_1; + convertible_update_acc _____acc_44_1_2_1_1; + convertible_update_acc _____acc_45_1_2_1_1; + convertible_update_acc _____acc_46_1_2_1_1; + convertible_update_acc _____acc_47_1_2_1_1; + convertible_update_acc _____acc_48_1_2_1_1; + convertible_update_acc _____acc_49_1_2_1_1; + _real ____acc_98_2_1_1; + _real ____acc_97_2_1_1; + _real ____acc_96_2_1_1; + _real ____acc_95_2_1_1; + _real ____acc_94_2_1_1; + _real ____acc_93_2_1_1; + _real ____acc_92_2_1_1; + _real ____acc_91_2_1_1; + _real ____acc_90_2_1_1; + _real ____acc_89_2_1_1; + _real ____acc_88_2_1_1; + _real ____acc_87_2_1_1; + _real ____acc_86_2_1_1; + _real ____acc_85_2_1_1; + _real ____acc_84_2_1_1; + _real ____acc_83_2_1_1; + _real ____acc_82_2_1_1; + _real ____acc_81_2_1_1; + _real ____acc_80_2_1_1; + _real ____acc_79_2_1_1; + _real ____acc_78_2_1_1; + _real ____acc_77_2_1_1; + _real ____acc_76_2_1_1; + _real ____acc_75_2_1_1; + _real ____acc_74_2_1_1; + _real ____acc_73_2_1_1; + _real ____acc_72_2_1_1; + _real ____acc_71_2_1_1; + _real ____acc_70_2_1_1; + _real ____acc_69_2_1_1; + _real ____acc_68_2_1_1; + _real ____acc_67_2_1_1; + _real ____acc_66_2_1_1; + _real ____acc_65_2_1_1; + _real ____acc_64_2_1_1; + _real ____acc_63_2_1_1; + _real ____acc_62_2_1_1; + _real ____acc_61_2_1_1; + _real ____acc_60_2_1_1; + _real ____acc_59_2_1_1; + _real ____acc_58_2_1_1; + _real ____acc_57_2_1_1; + _real ____acc_56_2_1_1; + _real ____acc_55_2_1_1; + _real ____acc_54_2_1_1; + _real ____acc_53_2_1_1; + _real ____acc_52_2_1_1; + _real ____acc_51_2_1_1; + _real ____acc_50_2_1_1; + _real ___i1_2_1_1; + _integer ___split_130_1_1; + _real ___split_129_1_1[50]; + _real ___split_128_1_1[50]; + _integer ___split_127_1_1; + _integer ___split_126_1_1; + _real __a_3_1[50]; + _real __pre_a_2_1[50]; + _integer __i_2_1; + _boolean _ac_cond_1; + _integer _pst_1; + _integer __split_138_1; + _boolean __split_139_1; + _boolean __split_140_1; + _integer __split_141_1; + _boolean __split_142_1; + _boolean __split_143_1; + _boolean __split_144_1; + _integer __split_145_1; + _integer __split_146_1; + _boolean __split_147_1; + _boolean __split_148_1; + _integer __split_149_1; + _real _tBrake_1; + _real _tChoc_1; + _real _Accel_1; + _real __split_11_1; + _real __split_12_1; + _real __split_13_1; + _real __split_14_1; + _real __split_15_1; + _real __split_16_1; + _real __split_17_1; + _boolean ____split_10_1_1_1; + _real ____presqrt_5_2_1_1; + _boolean ______split_1_5_1_2_1_1; + _real ______split_2_5_1_2_1_1; + _boolean _____ecart_4_1_2_1_1; + _real _____sqrt_4_1_2_1_1; + _real ______split_110_1_1_2_1_1; + _real ______split_111_1_1_2_1_1; + _real ______split_112_1_1_2_1_1; + _real ______split_113_1_1_2_1_1; + _real ______split_114_1_1_2_1_1; + _real ______split_115_1_1_2_1_1; + _real ______split_116_1_1_2_1_1; + _real ______split_117_1_1_2_1_1; + _boolean ________split_1_3_1_1_1_2_1_1; + _real ________split_2_3_1_1_1_2_1_1; + _boolean _______ecart_2_1_1_1_2_1_1; + _real _______sqrt_2_1_1_1_2_1_1; + _real ________split_94_1_1_1_1_2_1_1; + _real ________split_95_1_1_1_1_2_1_1; + _real ________split_96_1_1_1_1_2_1_1; + _real ________split_97_1_1_1_1_2_1_1; + _real ________split_98_1_1_1_1_2_1_1; + _real ________split_99_1_1_1_1_2_1_1; + _real ________split_101_1_1_1_1_2_1_1; + _boolean __________split_1_1_1_1_1_1_1_2_1_1; + _real __________split_2_1_1_1_1_1_1_2_1_1; + _real _________split_93_1_1_1_1_1_2_1_1; + _real _________split_92_1_1_1_1_1_2_1_1; + _real _________split_91_1_1_1_1_1_2_1_1; + _real _________split_90_1_1_1_1_1_2_1_1; + _real ________sqrt_1_1_1_1_1_2_1_1; + _boolean ________ecart_1_1_1_1_1_2_1_1; + _real _________split_2_2_1_1_1_1_2_1_1; + _boolean _________split_1_2_1_1_1_1_2_1_1; + _real _______split_109_1_1_1_2_1_1; + _real _______split_108_1_1_1_2_1_1; + _real _______split_107_1_1_1_2_1_1; + _real _______split_106_1_1_1_2_1_1; + _real _______split_105_1_1_1_2_1_1; + _real _______split_104_1_1_1_2_1_1; + _real _______split_103_1_1_1_2_1_1; + _real _______split_102_1_1_1_2_1_1; + _real ______sqrt_3_1_1_2_1_1; + _boolean ______ecart_3_1_1_2_1_1; + _real _______split_2_4_1_1_2_1_1; + _boolean _______split_1_4_1_1_2_1_1; + _real _____split_125_1_2_1_1; + _real _____split_124_1_2_1_1; + _real _____split_123_1_2_1_1; + _real _____split_122_1_2_1_1; + _real _____split_121_1_2_1_1; + _real _____split_120_1_2_1_1; + _real _____split_119_1_2_1_1; + _real _____split_118_1_2_1_1; + _real ____sqrt_5_2_1_1; + _boolean ____ecart_5_2_1_1; + _real ____presqrt_5_1_1_1; + _boolean ______split_1_5_1_1_1_1; + _real ______split_2_5_1_1_1_1; + _boolean _____ecart_4_1_1_1_1; + _real _____sqrt_4_1_1_1_1; + _real ______split_110_1_1_1_1_1; + _real ______split_111_1_1_1_1_1; + _real ______split_112_1_1_1_1_1; + _real ______split_113_1_1_1_1_1; + _real ______split_114_1_1_1_1_1; + _real ______split_115_1_1_1_1_1; + _real ______split_116_1_1_1_1_1; + _real ______split_117_1_1_1_1_1; + _boolean ________split_1_3_1_1_1_1_1_1; + _real ________split_2_3_1_1_1_1_1_1; + _boolean _______ecart_2_1_1_1_1_1_1; + _real _______sqrt_2_1_1_1_1_1_1; + _real ________split_94_1_1_1_1_1_1_1; + _real ________split_95_1_1_1_1_1_1_1; + _real ________split_96_1_1_1_1_1_1_1; + _real ________split_97_1_1_1_1_1_1_1; + _real ________split_98_1_1_1_1_1_1_1; + _real ________split_99_1_1_1_1_1_1_1; + _real ________split_101_1_1_1_1_1_1_1; + _boolean __________split_1_1_1_1_1_1_1_1_1_1; + _real __________split_2_1_1_1_1_1_1_1_1_1; + _real _________split_93_1_1_1_1_1_1_1_1; + _real _________split_92_1_1_1_1_1_1_1_1; + _real _________split_91_1_1_1_1_1_1_1_1; + _real _________split_90_1_1_1_1_1_1_1_1; + _real ________sqrt_1_1_1_1_1_1_1_1; + _boolean ________ecart_1_1_1_1_1_1_1_1; + _real _________split_2_2_1_1_1_1_1_1_1; + _boolean _________split_1_2_1_1_1_1_1_1_1; + _real _______split_109_1_1_1_1_1_1; + _real _______split_108_1_1_1_1_1_1; + _real _______split_107_1_1_1_1_1_1; + _real _______split_106_1_1_1_1_1_1; + _real _______split_105_1_1_1_1_1_1; + _real _______split_104_1_1_1_1_1_1; + _real _______split_103_1_1_1_1_1_1; + _real _______split_102_1_1_1_1_1_1; + _real ______sqrt_3_1_1_1_1_1; + _boolean ______ecart_3_1_1_1_1_1; + _real _______split_2_4_1_1_1_1_1; + _boolean _______split_1_4_1_1_1_1_1; + _real _____split_125_1_1_1_1; + _real _____split_124_1_1_1_1; + _real _____split_123_1_1_1_1; + _real _____split_122_1_1_1_1; + _real _____split_121_1_1_1_1; + _real _____split_120_1_1_1_1; + _real _____split_119_1_1_1_1; + _real _____split_118_1_1_1_1; + _real ____sqrt_5_1_1_1; + _boolean ____ecart_5_1_1_1; + _real ___split_77_1_1; + _real ___split_76_1_1; + _real ___split_75_1_1; + _real ___split_74_1_1; + _real ___split_73_1_1; + _real ___split_72_1_1; + _real ___split_71_1_1; + _real ___split_70_1_1; + _real ___split_69_1_1; + _real ___split_68_1_1; + _real ___split_67_1_1; + _real ___split_66_1_1; + _real ___split_65_1_1; + _real ___split_64_1_1; + _real ___split_63_1_1; + _real ___split_62_1_1; + _real ___split_61_1_1; + _real ___split_60_1_1; + _real ___split_59_1_1; + _integer ___split_58_1_1; + _integer ___split_57_1_1; + _boolean ___split_56_1_1; + _boolean ___split_55_1_1; + _integer ___split_54_1_1; + _boolean ___split_53_1_1; + _boolean ___split_52_1_1; + _real ___split_51_1_1; + _real ___split_50_1_1; + _real ___split_49_1_1; + _real __delta_1_1; + _integer __sol_nb_1_1; + _real __a2_1_1; + _real __b2_1_1; + _real __delta_pos_1_1; + _real ___split_4_1_1; + _boolean _split_7; + _real _split_6; + _real _split_5; + _integer St; + _boolean _split_8; + _boolean _split_9; + + Lustre_pre_get(&__split_89_1,&ctx->Lustre_pre_ctx_tab[3]); + Lustre_arrow_step(0.0,__split_89_1,Speed,&ctx->Lustre_arrow_ctx_tab[3]); + switch (St){ + case convertible_anti_col: + _split_5 = *Speed; + ___split_4_1_1 = _split_5 * _split_5; + Lustre_slash_step(___split_4_1_1,5500.0,&_tBrake_1); + __split_17_1 = 2.0 + _tBrake_1; + _split_6 = Dist; + __split_15_1 = - 2.0; + __split_16_1 = __split_15_1 * _split_6; + ___split_60_1_1 = - __split_16_1; + __split_14_1 = 2.0 * _split_5; + Lustre_slash_step(___split_60_1_1,__split_14_1,&___split_61_1_1); + switch (__sol_nb_1_1){ + case convertible_deg1: + ___split_62_1_1 = ___split_61_1_1; + _tChoc_1 = ___split_62_1_1; + break; + case convertible_no_sol: + ___split_59_1_1 = - 1.0; + _tChoc_1 = ___split_59_1_1; + break; +} + ___split_63_1_1 = - __split_14_1; + Lustre_pre_get(&__split_11_1,&ctx->Lustre_pre_ctx_tab[0]); + __split_12_1 = _split_5 - __split_11_1; + Lustre_slash_step(__split_12_1,0.1,&__split_13_1); + Lustre_arrow_step(0.0,__split_13_1,&_Accel_1,&ctx->Lustre_arrow_ctx_tab[0]); + ___split_64_1_1 = 2.0 * _Accel_1; + Lustre_slash_step(___split_63_1_1,___split_64_1_1,&___split_65_1_1); + switch (__sol_nb_1_1){ + case convertible_one_sol: + ___split_66_1_1 = ___split_65_1_1; + _tChoc_1 = ___split_66_1_1; + break; +} + ___split_50_1_1 = 4.0 * _Accel_1; + ___split_51_1_1 = ___split_50_1_1 * __split_16_1; + ___split_49_1_1 = __split_14_1 * __split_14_1; + __delta_1_1 = ___split_49_1_1 - ___split_51_1_1; + switch (__sol_nb_1_1){ + case convertible_two_sol: + __delta_pos_1_1 = __delta_1_1; + ____presqrt_5_1_1_1 = 1.0; + Lustre_slash_step(__delta_pos_1_1,____presqrt_5_1_1_1,&_____split_120_1_1_1_1); + _____split_121_1_1_1_1 = ____presqrt_5_1_1_1 + _____split_120_1_1_1_1; + ____sqrt_5_1_1_1 = 0.5 * _____split_121_1_1_1_1; + _____split_118_1_1_1_1 = ____presqrt_5_1_1_1 - ____sqrt_5_1_1_1; + ______split_2_5_1_1_1_1 = - _____split_118_1_1_1_1; + ______split_1_5_1_1_1_1 = _____split_118_1_1_1_1 >= 0.0; + if (______split_1_5_1_1_1_1 == _true) { + _____split_119_1_1_1_1 = _____split_118_1_1_1_1; + } else { + _____split_119_1_1_1_1 = ______split_2_5_1_1_1_1; + } + ____ecart_5_1_1_1 = _____split_119_1_1_1_1 < 0.0005; + switch (____ecart_5_1_1_1){ + case _false: + _____split_123_1_1_1_1 = ____sqrt_5_1_1_1; + _____split_122_1_1_1_1 = __delta_pos_1_1; + Lustre_slash_step(_____split_122_1_1_1_1,_____split_123_1_1_1_1,&______split_112_1_1_1_1_1); + ______split_113_1_1_1_1_1 = _____split_123_1_1_1_1 + ______split_112_1_1_1_1_1; + _____sqrt_4_1_1_1_1 = 0.5 * ______split_113_1_1_1_1_1; + ______split_110_1_1_1_1_1 = _____split_123_1_1_1_1 - _____sqrt_4_1_1_1_1; + _______split_2_4_1_1_1_1_1 = - ______split_110_1_1_1_1_1; + _______split_1_4_1_1_1_1_1 = ______split_110_1_1_1_1_1 >= 0.0; + if (_______split_1_4_1_1_1_1_1 == _true) { + ______split_111_1_1_1_1_1 = ______split_110_1_1_1_1_1; + } else { + ______split_111_1_1_1_1_1 = _______split_2_4_1_1_1_1_1; + } + _____ecart_4_1_1_1_1 = ______split_111_1_1_1_1_1 < 0.0005; + switch (_____ecart_4_1_1_1_1){ + case _false: + ______split_115_1_1_1_1_1 = _____sqrt_4_1_1_1_1; + ______split_114_1_1_1_1_1 = _____split_122_1_1_1_1; + Lustre_slash_step(______split_114_1_1_1_1_1,______split_115_1_1_1_1_1,&_______split_104_1_1_1_1_1_1); + _______split_105_1_1_1_1_1_1 = ______split_115_1_1_1_1_1 + _______split_104_1_1_1_1_1_1; + ______sqrt_3_1_1_1_1_1 = 0.5 * _______split_105_1_1_1_1_1_1; + _______split_102_1_1_1_1_1_1 = ______split_115_1_1_1_1_1 - ______sqrt_3_1_1_1_1_1; + ________split_2_3_1_1_1_1_1_1 = - _______split_102_1_1_1_1_1_1; + ________split_1_3_1_1_1_1_1_1 = _______split_102_1_1_1_1_1_1 >= 0.0; + if (________split_1_3_1_1_1_1_1_1 == _true) { + _______split_103_1_1_1_1_1_1 = _______split_102_1_1_1_1_1_1; + } else { + _______split_103_1_1_1_1_1_1 = ________split_2_3_1_1_1_1_1_1; + } + ______ecart_3_1_1_1_1_1 = _______split_103_1_1_1_1_1_1 < 0.0005; + switch (______ecart_3_1_1_1_1_1){ + case _false: + _______split_107_1_1_1_1_1_1 = ______sqrt_3_1_1_1_1_1; + _______split_106_1_1_1_1_1_1 = ______split_114_1_1_1_1_1; + Lustre_slash_step(_______split_106_1_1_1_1_1_1,_______split_107_1_1_1_1_1_1,&________split_96_1_1_1_1_1_1_1); + ________split_97_1_1_1_1_1_1_1 = _______split_107_1_1_1_1_1_1 + ________split_96_1_1_1_1_1_1_1; + _______sqrt_2_1_1_1_1_1_1 = 0.5 * ________split_97_1_1_1_1_1_1_1; + ________split_94_1_1_1_1_1_1_1 = _______split_107_1_1_1_1_1_1 - _______sqrt_2_1_1_1_1_1_1; + _________split_2_2_1_1_1_1_1_1_1 = - ________split_94_1_1_1_1_1_1_1; + _________split_1_2_1_1_1_1_1_1_1 = ________split_94_1_1_1_1_1_1_1 >= 0.0; + if (_________split_1_2_1_1_1_1_1_1_1 == _true) { + ________split_95_1_1_1_1_1_1_1 = ________split_94_1_1_1_1_1_1_1; + } else { + ________split_95_1_1_1_1_1_1_1 = _________split_2_2_1_1_1_1_1_1_1; + } + _______ecart_2_1_1_1_1_1_1 = ________split_95_1_1_1_1_1_1_1 < 0.0005; + switch (_______ecart_2_1_1_1_1_1_1){ + case _false: + ________split_98_1_1_1_1_1_1_1 = _______split_106_1_1_1_1_1_1; + ________split_99_1_1_1_1_1_1_1 = _______sqrt_2_1_1_1_1_1_1; + Lustre_slash_step(________split_98_1_1_1_1_1_1_1,________split_99_1_1_1_1_1_1_1,&_________split_92_1_1_1_1_1_1_1_1); + _________split_93_1_1_1_1_1_1_1_1 = ________split_99_1_1_1_1_1_1_1 + _________split_92_1_1_1_1_1_1_1_1; + ________sqrt_1_1_1_1_1_1_1_1 = 0.5 * _________split_93_1_1_1_1_1_1_1_1; + _______split_108_1_1_1_1_1_1 = ________sqrt_1_1_1_1_1_1_1_1; + break; + case _true: + ________split_101_1_1_1_1_1_1_1 = _______sqrt_2_1_1_1_1_1_1; + _______split_108_1_1_1_1_1_1 = ________split_101_1_1_1_1_1_1_1; + break; +} + ______split_116_1_1_1_1_1 = _______split_108_1_1_1_1_1_1; + break; + case _true: + _______split_109_1_1_1_1_1_1 = ______sqrt_3_1_1_1_1_1; + ______split_116_1_1_1_1_1 = _______split_109_1_1_1_1_1_1; + break; +} + _____split_124_1_1_1_1 = ______split_116_1_1_1_1_1; + break; + case _true: + ______split_117_1_1_1_1_1 = _____sqrt_4_1_1_1_1; + _____split_124_1_1_1_1 = ______split_117_1_1_1_1_1; + break; +} + ___split_68_1_1 = _____split_124_1_1_1_1; + break; + case _true: + _____split_125_1_1_1_1 = ____sqrt_5_1_1_1; + ___split_68_1_1 = _____split_125_1_1_1_1; + break; +} + __a2_1_1 = _Accel_1; + ___split_69_1_1 = 2.0 * __a2_1_1; + Lustre_slash_step(___split_68_1_1,___split_69_1_1,&___split_70_1_1); + __b2_1_1 = __split_14_1; + ___split_67_1_1 = - __b2_1_1; + ___split_71_1_1 = ___split_67_1_1 + ___split_70_1_1; + ____presqrt_5_2_1_1 = 1.0; + Lustre_slash_step(__delta_pos_1_1,____presqrt_5_2_1_1,&_____split_120_1_2_1_1); + _____split_121_1_2_1_1 = ____presqrt_5_2_1_1 + _____split_120_1_2_1_1; + ____sqrt_5_2_1_1 = 0.5 * _____split_121_1_2_1_1; + _____split_118_1_2_1_1 = ____presqrt_5_2_1_1 - ____sqrt_5_2_1_1; + ______split_2_5_1_2_1_1 = - _____split_118_1_2_1_1; + ______split_1_5_1_2_1_1 = _____split_118_1_2_1_1 >= 0.0; + if (______split_1_5_1_2_1_1 == _true) { + _____split_119_1_2_1_1 = _____split_118_1_2_1_1; + } else { + _____split_119_1_2_1_1 = ______split_2_5_1_2_1_1; + } + ____ecart_5_2_1_1 = _____split_119_1_2_1_1 < 0.0005; + switch (____ecart_5_2_1_1){ + case _false: + _____split_123_1_2_1_1 = ____sqrt_5_2_1_1; + _____split_122_1_2_1_1 = __delta_pos_1_1; + Lustre_slash_step(_____split_122_1_2_1_1,_____split_123_1_2_1_1,&______split_112_1_1_2_1_1); + ______split_113_1_1_2_1_1 = _____split_123_1_2_1_1 + ______split_112_1_1_2_1_1; + _____sqrt_4_1_2_1_1 = 0.5 * ______split_113_1_1_2_1_1; + ______split_110_1_1_2_1_1 = _____split_123_1_2_1_1 - _____sqrt_4_1_2_1_1; + _______split_2_4_1_1_2_1_1 = - ______split_110_1_1_2_1_1; + _______split_1_4_1_1_2_1_1 = ______split_110_1_1_2_1_1 >= 0.0; + if (_______split_1_4_1_1_2_1_1 == _true) { + ______split_111_1_1_2_1_1 = ______split_110_1_1_2_1_1; + } else { + ______split_111_1_1_2_1_1 = _______split_2_4_1_1_2_1_1; + } + _____ecart_4_1_2_1_1 = ______split_111_1_1_2_1_1 < 0.0005; + switch (_____ecart_4_1_2_1_1){ + case _false: + ______split_115_1_1_2_1_1 = _____sqrt_4_1_2_1_1; + ______split_114_1_1_2_1_1 = _____split_122_1_2_1_1; + Lustre_slash_step(______split_114_1_1_2_1_1,______split_115_1_1_2_1_1,&_______split_104_1_1_1_2_1_1); + _______split_105_1_1_1_2_1_1 = ______split_115_1_1_2_1_1 + _______split_104_1_1_1_2_1_1; + ______sqrt_3_1_1_2_1_1 = 0.5 * _______split_105_1_1_1_2_1_1; + _______split_102_1_1_1_2_1_1 = ______split_115_1_1_2_1_1 - ______sqrt_3_1_1_2_1_1; + ________split_2_3_1_1_1_2_1_1 = - _______split_102_1_1_1_2_1_1; + ________split_1_3_1_1_1_2_1_1 = _______split_102_1_1_1_2_1_1 >= 0.0; + if (________split_1_3_1_1_1_2_1_1 == _true) { + _______split_103_1_1_1_2_1_1 = _______split_102_1_1_1_2_1_1; + } else { + _______split_103_1_1_1_2_1_1 = ________split_2_3_1_1_1_2_1_1; + } + ______ecart_3_1_1_2_1_1 = _______split_103_1_1_1_2_1_1 < 0.0005; + switch (______ecart_3_1_1_2_1_1){ + case _false: + _______split_107_1_1_1_2_1_1 = ______sqrt_3_1_1_2_1_1; + _______split_106_1_1_1_2_1_1 = ______split_114_1_1_2_1_1; + Lustre_slash_step(_______split_106_1_1_1_2_1_1,_______split_107_1_1_1_2_1_1,&________split_96_1_1_1_1_2_1_1); + ________split_97_1_1_1_1_2_1_1 = _______split_107_1_1_1_2_1_1 + ________split_96_1_1_1_1_2_1_1; + _______sqrt_2_1_1_1_2_1_1 = 0.5 * ________split_97_1_1_1_1_2_1_1; + ________split_94_1_1_1_1_2_1_1 = _______split_107_1_1_1_2_1_1 - _______sqrt_2_1_1_1_2_1_1; + _________split_2_2_1_1_1_1_2_1_1 = - ________split_94_1_1_1_1_2_1_1; + _________split_1_2_1_1_1_1_2_1_1 = ________split_94_1_1_1_1_2_1_1 >= 0.0; + if (_________split_1_2_1_1_1_1_2_1_1 == _true) { + ________split_95_1_1_1_1_2_1_1 = ________split_94_1_1_1_1_2_1_1; + } else { + ________split_95_1_1_1_1_2_1_1 = _________split_2_2_1_1_1_1_2_1_1; + } + _______ecart_2_1_1_1_2_1_1 = ________split_95_1_1_1_1_2_1_1 < 0.0005; + switch (_______ecart_2_1_1_1_2_1_1){ + case _false: + ________split_98_1_1_1_1_2_1_1 = _______split_106_1_1_1_2_1_1; + ________split_99_1_1_1_1_2_1_1 = _______sqrt_2_1_1_1_2_1_1; + Lustre_slash_step(________split_98_1_1_1_1_2_1_1,________split_99_1_1_1_1_2_1_1,&_________split_92_1_1_1_1_1_2_1_1); + _________split_93_1_1_1_1_1_2_1_1 = ________split_99_1_1_1_1_2_1_1 + _________split_92_1_1_1_1_1_2_1_1; + ________sqrt_1_1_1_1_1_2_1_1 = 0.5 * _________split_93_1_1_1_1_1_2_1_1; + _______split_108_1_1_1_2_1_1 = ________sqrt_1_1_1_1_1_2_1_1; + break; + case _true: + ________split_101_1_1_1_1_2_1_1 = _______sqrt_2_1_1_1_2_1_1; + _______split_108_1_1_1_2_1_1 = ________split_101_1_1_1_1_2_1_1; + break; +} + ______split_116_1_1_2_1_1 = _______split_108_1_1_1_2_1_1; + break; + case _true: + _______split_109_1_1_1_2_1_1 = ______sqrt_3_1_1_2_1_1; + ______split_116_1_1_2_1_1 = _______split_109_1_1_1_2_1_1; + break; +} + _____split_124_1_2_1_1 = ______split_116_1_1_2_1_1; + break; + case _true: + ______split_117_1_1_2_1_1 = _____sqrt_4_1_2_1_1; + _____split_124_1_2_1_1 = ______split_117_1_1_2_1_1; + break; +} + ___split_73_1_1 = _____split_124_1_2_1_1; + break; + case _true: + _____split_125_1_2_1_1 = ____sqrt_5_2_1_1; + ___split_73_1_1 = _____split_125_1_2_1_1; + break; +} + ___split_74_1_1 = 2.0 * __a2_1_1; + Lustre_slash_step(___split_73_1_1,___split_74_1_1,&___split_75_1_1); + ___split_72_1_1 = - __b2_1_1; + ___split_76_1_1 = ___split_72_1_1 - ___split_75_1_1; + ____split_10_1_1_1 = ___split_71_1_1 < ___split_76_1_1; + if (____split_10_1_1_1 == _true) { + ___split_77_1_1 = ___split_76_1_1; + } else { + ___split_77_1_1 = ___split_71_1_1; + } + _tChoc_1 = ___split_77_1_1; + break; +} + _split_7 = _tChoc_1 < __split_17_1; + *Danger = _split_7; + Lustre_pre_set(_split_5,&ctx->Lustre_pre_ctx_tab[0]); + switch (__sol_nb_1_1){ + case convertible_two_sol: + switch (____ecart_5_1_1_1){ + case _false: + switch (_____ecart_4_1_1_1_1){ + case _false: + switch (______ecart_3_1_1_1_1_1){ + case _false: + switch (_______ecart_2_1_1_1_1_1_1){ + case _false: + _________split_90_1_1_1_1_1_1_1_1 = ________split_99_1_1_1_1_1_1_1 - ________sqrt_1_1_1_1_1_1_1_1; + __________split_2_1_1_1_1_1_1_1_1_1 = - _________split_90_1_1_1_1_1_1_1_1; + __________split_1_1_1_1_1_1_1_1_1_1 = _________split_90_1_1_1_1_1_1_1_1 >= 0.0; + if (__________split_1_1_1_1_1_1_1_1_1_1 == _true) { + _________split_91_1_1_1_1_1_1_1_1 = _________split_90_1_1_1_1_1_1_1_1; + } else { + _________split_91_1_1_1_1_1_1_1_1 = __________split_2_1_1_1_1_1_1_1_1_1; + } + ________ecart_1_1_1_1_1_1_1_1 = _________split_91_1_1_1_1_1_1_1_1 < 0.0005; + break; +} + break; +} + break; +} + break; +} + switch (____ecart_5_2_1_1){ + case _false: + switch (_____ecart_4_1_2_1_1){ + case _false: + switch (______ecart_3_1_1_2_1_1){ + case _false: + switch (_______ecart_2_1_1_1_2_1_1){ + case _false: + _________split_90_1_1_1_1_1_2_1_1 = ________split_99_1_1_1_1_2_1_1 - ________sqrt_1_1_1_1_1_2_1_1; + __________split_2_1_1_1_1_1_1_2_1_1 = - _________split_90_1_1_1_1_1_2_1_1; + __________split_1_1_1_1_1_1_1_2_1_1 = _________split_90_1_1_1_1_1_2_1_1 >= 0.0; + if (__________split_1_1_1_1_1_1_1_2_1_1 == _true) { + _________split_91_1_1_1_1_1_2_1_1 = _________split_90_1_1_1_1_1_2_1_1; + } else { + _________split_91_1_1_1_1_1_2_1_1 = __________split_2_1_1_1_1_1_1_2_1_1; + } + ________ecart_1_1_1_1_1_2_1_1 = _________split_91_1_1_1_1_1_2_1_1 < 0.0005; + break; +} + break; +} + break; +} + break; +} + break; +} + ___split_52_1_1 = _Accel_1 == 0.0; + ___split_53_1_1 = __split_14_1 == 0.0; + if (___split_53_1_1 == _true) { + ___split_54_1_1 = convertible_no_sol; + } else { + ___split_54_1_1 = convertible_deg1; + } + ___split_56_1_1 = __delta_1_1 == 0.0; + if (___split_56_1_1 == _true) { + ___split_57_1_1 = convertible_one_sol; + } else { + ___split_57_1_1 = convertible_two_sol; + } + ___split_55_1_1 = __delta_1_1 < 0.0; + if (___split_55_1_1 == _true) { + ___split_58_1_1 = convertible_no_sol; + } else { + ___split_58_1_1 = ___split_57_1_1; + } + if (___split_52_1_1 == _true) { + __sol_nb_1_1 = ___split_54_1_1; + } else { + __sol_nb_1_1 = ___split_58_1_1; + } + break; + case convertible_run: + *Danger = _false; + break; + case convertible_stationnary: + *Danger = _false; + break; +} + Lustre_pre_2_get(&__split_138_1,&ctx->Lustre_pre_2_ctx_tab[0]); + _ac_cond_1 = *Speed >= 110.0; + switch (_pst_1){ + case convertible_anti_col: + __split_147_1 = _ac_cond_1; + __split_148_1 = ! __split_147_1; + if (__split_148_1 == _true) { + __split_149_1 = convertible_run; + } else { + __split_149_1 = convertible_anti_col; + } + St = __split_149_1; + break; +} + __split_143_1 = *Speed == 0.0; + switch (_pst_1){ + case convertible_run: + __split_144_1 = __split_143_1; + if (__split_144_1 == _true) { + __split_145_1 = convertible_stationnary; + } else { + __split_145_1 = convertible_run; + } + __split_142_1 = _ac_cond_1; + if (__split_142_1 == _true) { + __split_146_1 = convertible_anti_col; + } else { + __split_146_1 = __split_145_1; + } + St = __split_146_1; + break; +} + switch (_pst_3){ + case convertible_in_motion: + __split_22_1 = Done; + if (__split_22_1 == _true) { + __split_23_1 = convertible_locked; + } else { + __split_23_1 = convertible_in_motion; + } + _st_2 = __split_23_1; + break; +} + __split_19_1 = OnOff & Parked; + switch (_pst_3){ + case convertible_locked: + __split_20_1 = __split_19_1; + if (__split_20_1 == _true) { + __split_21_1 = convertible_in_motion; + } else { + __split_21_1 = convertible_locked; + } + _st_2 = __split_21_1; + break; +} + *Locked = _st_2 == convertible_locked; + __split_139_1 = Start & *Locked; + switch (_pst_1){ + case convertible_stationnary: + __split_140_1 = __split_139_1; + if (__split_140_1 == _true) { + __split_141_1 = convertible_run; + } else { + __split_141_1 = convertible_stationnary; + } + St = __split_141_1; + break; +} + Lustre_pre_2_set(St,&ctx->Lustre_pre_2_ctx_tab[0]); + Lustre_arrow_2_step(convertible_stationnary,__split_138_1,&_pst_1,&ctx->Lustre_arrow_2_ctx_tab[0]); + if (Rot == _true) { + _dx_1 = 1.4; + } else { + _dx_1 = 0.0; + } + if (Tick == _true) { + _tx_1 = 0.1; + } else { + _tx_1 = 0.0; + } + _TickOrRot_1 = Tick | Rot; + Lustre_pre_get(&__split_78_1,&ctx->Lustre_pre_ctx_tab[1]); + Lustre_arrow_step(0.0,__split_78_1,&_pd_1,&ctx->Lustre_arrow_ctx_tab[1]); + switch (_TickOrRot_1){ + case _false: + __split_80_1 = _pd_1; + _d_1 = __split_80_1; + break; + case _true: + __split_81_1 = _dx_1; + ____split_3_2_1_1.v = __split_81_1; + _____acc_1_1_2_1_1.v = ____split_3_2_1_1.v; + _____acc_2_1_2_1_1.v = _____acc_1_1_2_1_1.v; + _____acc_3_1_2_1_1.v = _____acc_2_1_2_1_1.v; + _____acc_4_1_2_1_1.v = _____acc_3_1_2_1_1.v; + _____acc_5_1_2_1_1.v = _____acc_4_1_2_1_1.v; + _____acc_6_1_2_1_1.v = _____acc_5_1_2_1_1.v; + _____acc_7_1_2_1_1.v = _____acc_6_1_2_1_1.v; + _____acc_8_1_2_1_1.v = _____acc_7_1_2_1_1.v; + _____acc_9_1_2_1_1.v = _____acc_8_1_2_1_1.v; + _____acc_10_1_2_1_1.v = _____acc_9_1_2_1_1.v; + _____acc_11_1_2_1_1.v = _____acc_10_1_2_1_1.v; + _____acc_12_1_2_1_1.v = _____acc_11_1_2_1_1.v; + _____acc_13_1_2_1_1.v = _____acc_12_1_2_1_1.v; + _____acc_14_1_2_1_1.v = _____acc_13_1_2_1_1.v; + _____acc_15_1_2_1_1.v = _____acc_14_1_2_1_1.v; + _____acc_16_1_2_1_1.v = _____acc_15_1_2_1_1.v; + _____acc_17_1_2_1_1.v = _____acc_16_1_2_1_1.v; + _____acc_18_1_2_1_1.v = _____acc_17_1_2_1_1.v; + _____acc_19_1_2_1_1.v = _____acc_18_1_2_1_1.v; + _____acc_20_1_2_1_1.v = _____acc_19_1_2_1_1.v; + _____acc_21_1_2_1_1.v = _____acc_20_1_2_1_1.v; + _____acc_22_1_2_1_1.v = _____acc_21_1_2_1_1.v; + _____acc_23_1_2_1_1.v = _____acc_22_1_2_1_1.v; + _____acc_24_1_2_1_1.v = _____acc_23_1_2_1_1.v; + _____acc_25_1_2_1_1.v = _____acc_24_1_2_1_1.v; + _____acc_26_1_2_1_1.v = _____acc_25_1_2_1_1.v; + _____acc_27_1_2_1_1.v = _____acc_26_1_2_1_1.v; + _____acc_28_1_2_1_1.v = _____acc_27_1_2_1_1.v; + _____acc_29_1_2_1_1.v = _____acc_28_1_2_1_1.v; + _____acc_30_1_2_1_1.v = _____acc_29_1_2_1_1.v; + _____acc_31_1_2_1_1.v = _____acc_30_1_2_1_1.v; + _____acc_32_1_2_1_1.v = _____acc_31_1_2_1_1.v; + _____acc_33_1_2_1_1.v = _____acc_32_1_2_1_1.v; + _____acc_34_1_2_1_1.v = _____acc_33_1_2_1_1.v; + _____acc_35_1_2_1_1.v = _____acc_34_1_2_1_1.v; + _____acc_36_1_2_1_1.v = _____acc_35_1_2_1_1.v; + _____acc_37_1_2_1_1.v = _____acc_36_1_2_1_1.v; + _____acc_38_1_2_1_1.v = _____acc_37_1_2_1_1.v; + _____acc_39_1_2_1_1.v = _____acc_38_1_2_1_1.v; + _____acc_40_1_2_1_1.v = _____acc_39_1_2_1_1.v; + _____acc_41_1_2_1_1.v = _____acc_40_1_2_1_1.v; + _____acc_42_1_2_1_1.v = _____acc_41_1_2_1_1.v; + _____acc_43_1_2_1_1.v = _____acc_42_1_2_1_1.v; + _____acc_44_1_2_1_1.v = _____acc_43_1_2_1_1.v; + _____acc_45_1_2_1_1.v = _____acc_44_1_2_1_1.v; + _____acc_46_1_2_1_1.v = _____acc_45_1_2_1_1.v; + _____acc_47_1_2_1_1.v = _____acc_46_1_2_1_1.v; + _____acc_48_1_2_1_1.v = _____acc_47_1_2_1_1.v; + _____acc_49_1_2_1_1.v = _____acc_48_1_2_1_1.v; + ____split_3_2_1_1.i = 0; + ______split_137_1_1_2_1_1 = ____split_3_2_1_1.i + 1; + _____acc_1_1_2_1_1.i = ______split_137_1_1_2_1_1; + ______split_137_2_1_2_1_1 = _____acc_1_1_2_1_1.i + 1; + _____acc_2_1_2_1_1.i = ______split_137_2_1_2_1_1; + ______split_137_3_1_2_1_1 = _____acc_2_1_2_1_1.i + 1; + _____acc_3_1_2_1_1.i = ______split_137_3_1_2_1_1; + ______split_137_4_1_2_1_1 = _____acc_3_1_2_1_1.i + 1; + _____acc_4_1_2_1_1.i = ______split_137_4_1_2_1_1; + ______split_137_5_1_2_1_1 = _____acc_4_1_2_1_1.i + 1; + _____acc_5_1_2_1_1.i = ______split_137_5_1_2_1_1; + ______split_137_6_1_2_1_1 = _____acc_5_1_2_1_1.i + 1; + _____acc_6_1_2_1_1.i = ______split_137_6_1_2_1_1; + ______split_137_7_1_2_1_1 = _____acc_6_1_2_1_1.i + 1; + _____acc_7_1_2_1_1.i = ______split_137_7_1_2_1_1; + ______split_137_8_1_2_1_1 = _____acc_7_1_2_1_1.i + 1; + _____acc_8_1_2_1_1.i = ______split_137_8_1_2_1_1; + ______split_137_9_1_2_1_1 = _____acc_8_1_2_1_1.i + 1; + _____acc_9_1_2_1_1.i = ______split_137_9_1_2_1_1; + ______split_137_10_1_2_1_1 = _____acc_9_1_2_1_1.i + 1; + _____acc_10_1_2_1_1.i = ______split_137_10_1_2_1_1; + ______split_137_11_1_2_1_1 = _____acc_10_1_2_1_1.i + 1; + _____acc_11_1_2_1_1.i = ______split_137_11_1_2_1_1; + ______split_137_12_1_2_1_1 = _____acc_11_1_2_1_1.i + 1; + _____acc_12_1_2_1_1.i = ______split_137_12_1_2_1_1; + ______split_137_13_1_2_1_1 = _____acc_12_1_2_1_1.i + 1; + _____acc_13_1_2_1_1.i = ______split_137_13_1_2_1_1; + ______split_137_14_1_2_1_1 = _____acc_13_1_2_1_1.i + 1; + _____acc_14_1_2_1_1.i = ______split_137_14_1_2_1_1; + ______split_137_15_1_2_1_1 = _____acc_14_1_2_1_1.i + 1; + _____acc_15_1_2_1_1.i = ______split_137_15_1_2_1_1; + ______split_137_16_1_2_1_1 = _____acc_15_1_2_1_1.i + 1; + _____acc_16_1_2_1_1.i = ______split_137_16_1_2_1_1; + ______split_137_17_1_2_1_1 = _____acc_16_1_2_1_1.i + 1; + _____acc_17_1_2_1_1.i = ______split_137_17_1_2_1_1; + ______split_137_18_1_2_1_1 = _____acc_17_1_2_1_1.i + 1; + _____acc_18_1_2_1_1.i = ______split_137_18_1_2_1_1; + ______split_137_19_1_2_1_1 = _____acc_18_1_2_1_1.i + 1; + _____acc_19_1_2_1_1.i = ______split_137_19_1_2_1_1; + ______split_137_20_1_2_1_1 = _____acc_19_1_2_1_1.i + 1; + _____acc_20_1_2_1_1.i = ______split_137_20_1_2_1_1; + ______split_137_21_1_2_1_1 = _____acc_20_1_2_1_1.i + 1; + _____acc_21_1_2_1_1.i = ______split_137_21_1_2_1_1; + ______split_137_22_1_2_1_1 = _____acc_21_1_2_1_1.i + 1; + _____acc_22_1_2_1_1.i = ______split_137_22_1_2_1_1; + ______split_137_23_1_2_1_1 = _____acc_22_1_2_1_1.i + 1; + _____acc_23_1_2_1_1.i = ______split_137_23_1_2_1_1; + ______split_137_24_1_2_1_1 = _____acc_23_1_2_1_1.i + 1; + _____acc_24_1_2_1_1.i = ______split_137_24_1_2_1_1; + ______split_137_25_1_2_1_1 = _____acc_24_1_2_1_1.i + 1; + _____acc_25_1_2_1_1.i = ______split_137_25_1_2_1_1; + ______split_137_26_1_2_1_1 = _____acc_25_1_2_1_1.i + 1; + _____acc_26_1_2_1_1.i = ______split_137_26_1_2_1_1; + ______split_137_27_1_2_1_1 = _____acc_26_1_2_1_1.i + 1; + _____acc_27_1_2_1_1.i = ______split_137_27_1_2_1_1; + ______split_137_28_1_2_1_1 = _____acc_27_1_2_1_1.i + 1; + _____acc_28_1_2_1_1.i = ______split_137_28_1_2_1_1; + ______split_137_29_1_2_1_1 = _____acc_28_1_2_1_1.i + 1; + _____acc_29_1_2_1_1.i = ______split_137_29_1_2_1_1; + ______split_137_30_1_2_1_1 = _____acc_29_1_2_1_1.i + 1; + _____acc_30_1_2_1_1.i = ______split_137_30_1_2_1_1; + ______split_137_31_1_2_1_1 = _____acc_30_1_2_1_1.i + 1; + _____acc_31_1_2_1_1.i = ______split_137_31_1_2_1_1; + ______split_137_32_1_2_1_1 = _____acc_31_1_2_1_1.i + 1; + _____acc_32_1_2_1_1.i = ______split_137_32_1_2_1_1; + ______split_137_33_1_2_1_1 = _____acc_32_1_2_1_1.i + 1; + _____acc_33_1_2_1_1.i = ______split_137_33_1_2_1_1; + ______split_137_34_1_2_1_1 = _____acc_33_1_2_1_1.i + 1; + _____acc_34_1_2_1_1.i = ______split_137_34_1_2_1_1; + ______split_137_35_1_2_1_1 = _____acc_34_1_2_1_1.i + 1; + _____acc_35_1_2_1_1.i = ______split_137_35_1_2_1_1; + ______split_137_36_1_2_1_1 = _____acc_35_1_2_1_1.i + 1; + _____acc_36_1_2_1_1.i = ______split_137_36_1_2_1_1; + ______split_137_37_1_2_1_1 = _____acc_36_1_2_1_1.i + 1; + _____acc_37_1_2_1_1.i = ______split_137_37_1_2_1_1; + ______split_137_38_1_2_1_1 = _____acc_37_1_2_1_1.i + 1; + _____acc_38_1_2_1_1.i = ______split_137_38_1_2_1_1; + ______split_137_39_1_2_1_1 = _____acc_38_1_2_1_1.i + 1; + _____acc_39_1_2_1_1.i = ______split_137_39_1_2_1_1; + ______split_137_40_1_2_1_1 = _____acc_39_1_2_1_1.i + 1; + _____acc_40_1_2_1_1.i = ______split_137_40_1_2_1_1; + ______split_137_41_1_2_1_1 = _____acc_40_1_2_1_1.i + 1; + _____acc_41_1_2_1_1.i = ______split_137_41_1_2_1_1; + ______split_137_42_1_2_1_1 = _____acc_41_1_2_1_1.i + 1; + _____acc_42_1_2_1_1.i = ______split_137_42_1_2_1_1; + ______split_137_43_1_2_1_1 = _____acc_42_1_2_1_1.i + 1; + _____acc_43_1_2_1_1.i = ______split_137_43_1_2_1_1; + ______split_137_44_1_2_1_1 = _____acc_43_1_2_1_1.i + 1; + _____acc_44_1_2_1_1.i = ______split_137_44_1_2_1_1; + ______split_137_45_1_2_1_1 = _____acc_44_1_2_1_1.i + 1; + _____acc_45_1_2_1_1.i = ______split_137_45_1_2_1_1; + ______split_137_46_1_2_1_1 = _____acc_45_1_2_1_1.i + 1; + _____acc_46_1_2_1_1.i = ______split_137_46_1_2_1_1; + ______split_137_47_1_2_1_1 = _____acc_46_1_2_1_1.i + 1; + _____acc_47_1_2_1_1.i = ______split_137_47_1_2_1_1; + ______split_137_48_1_2_1_1 = _____acc_47_1_2_1_1.i + 1; + _____acc_48_1_2_1_1.i = ______split_137_48_1_2_1_1; + ______split_137_49_1_2_1_1 = _____acc_48_1_2_1_1.i + 1; + _____acc_49_1_2_1_1.i = ______split_137_49_1_2_1_1; + Lustre_pre_2_get(&___split_126_1_1,&ctx->Lustre_pre_2_ctx_tab[1]); + Lustre_arrow_2_step(0,___split_126_1_1,&___split_127_1_1,&ctx->Lustre_arrow_2_ctx_tab[1]); + __i_2_1 = ___split_127_1_1 + 1; + ___split_130_1_1 = __i_2_1 % 50; + ____split_3_2_1_1.j = ___split_130_1_1; + _____acc_1_1_2_1_1.j = ____split_3_2_1_1.j; + _____acc_2_1_2_1_1.j = _____acc_1_1_2_1_1.j; + _____acc_3_1_2_1_1.j = _____acc_2_1_2_1_1.j; + _____acc_4_1_2_1_1.j = _____acc_3_1_2_1_1.j; + _____acc_5_1_2_1_1.j = _____acc_4_1_2_1_1.j; + _____acc_6_1_2_1_1.j = _____acc_5_1_2_1_1.j; + _____acc_7_1_2_1_1.j = _____acc_6_1_2_1_1.j; + _____acc_8_1_2_1_1.j = _____acc_7_1_2_1_1.j; + _____acc_9_1_2_1_1.j = _____acc_8_1_2_1_1.j; + _____acc_10_1_2_1_1.j = _____acc_9_1_2_1_1.j; + _____acc_11_1_2_1_1.j = _____acc_10_1_2_1_1.j; + _____acc_12_1_2_1_1.j = _____acc_11_1_2_1_1.j; + _____acc_13_1_2_1_1.j = _____acc_12_1_2_1_1.j; + _____acc_14_1_2_1_1.j = _____acc_13_1_2_1_1.j; + _____acc_15_1_2_1_1.j = _____acc_14_1_2_1_1.j; + _____acc_16_1_2_1_1.j = _____acc_15_1_2_1_1.j; + _____acc_17_1_2_1_1.j = _____acc_16_1_2_1_1.j; + _____acc_18_1_2_1_1.j = _____acc_17_1_2_1_1.j; + _____acc_19_1_2_1_1.j = _____acc_18_1_2_1_1.j; + _____acc_20_1_2_1_1.j = _____acc_19_1_2_1_1.j; + _____acc_21_1_2_1_1.j = _____acc_20_1_2_1_1.j; + _____acc_22_1_2_1_1.j = _____acc_21_1_2_1_1.j; + _____acc_23_1_2_1_1.j = _____acc_22_1_2_1_1.j; + _____acc_24_1_2_1_1.j = _____acc_23_1_2_1_1.j; + _____acc_25_1_2_1_1.j = _____acc_24_1_2_1_1.j; + _____acc_26_1_2_1_1.j = _____acc_25_1_2_1_1.j; + _____acc_27_1_2_1_1.j = _____acc_26_1_2_1_1.j; + _____acc_28_1_2_1_1.j = _____acc_27_1_2_1_1.j; + _____acc_29_1_2_1_1.j = _____acc_28_1_2_1_1.j; + _____acc_30_1_2_1_1.j = _____acc_29_1_2_1_1.j; + _____acc_31_1_2_1_1.j = _____acc_30_1_2_1_1.j; + _____acc_32_1_2_1_1.j = _____acc_31_1_2_1_1.j; + _____acc_33_1_2_1_1.j = _____acc_32_1_2_1_1.j; + _____acc_34_1_2_1_1.j = _____acc_33_1_2_1_1.j; + _____acc_35_1_2_1_1.j = _____acc_34_1_2_1_1.j; + _____acc_36_1_2_1_1.j = _____acc_35_1_2_1_1.j; + _____acc_37_1_2_1_1.j = _____acc_36_1_2_1_1.j; + _____acc_38_1_2_1_1.j = _____acc_37_1_2_1_1.j; + _____acc_39_1_2_1_1.j = _____acc_38_1_2_1_1.j; + _____acc_40_1_2_1_1.j = _____acc_39_1_2_1_1.j; + _____acc_41_1_2_1_1.j = _____acc_40_1_2_1_1.j; + _____acc_42_1_2_1_1.j = _____acc_41_1_2_1_1.j; + _____acc_43_1_2_1_1.j = _____acc_42_1_2_1_1.j; + _____acc_44_1_2_1_1.j = _____acc_43_1_2_1_1.j; + _____acc_45_1_2_1_1.j = _____acc_44_1_2_1_1.j; + _____acc_46_1_2_1_1.j = _____acc_45_1_2_1_1.j; + _____acc_47_1_2_1_1.j = _____acc_46_1_2_1_1.j; + _____acc_48_1_2_1_1.j = _____acc_47_1_2_1_1.j; + _____acc_49_1_2_1_1.j = _____acc_48_1_2_1_1.j; + ______split_136_50_1_2_1_1 = _____acc_49_1_2_1_1.i == _____acc_49_1_2_1_1.j; + Lustre_pre_3_get(___split_129_1_1,&ctx->Lustre_pre_3_ctx_tab[0]); + Lustre_hat_step(0.0,___split_128_1_1); + Lustre_arrow_3_step(___split_128_1_1,___split_129_1_1,__pre_a_2_1,&ctx->Lustre_arrow_3_ctx_tab[0]); + _____cell_50_1_2_1_1 = __pre_a_2_1[49]; + if (______split_136_50_1_2_1_1 == _true) { + _____ncell_50_1_2_1_1 = _____acc_49_1_2_1_1.v; + } else { + _____ncell_50_1_2_1_1 = _____cell_50_1_2_1_1; + } + __a_3_1[49] = _____ncell_50_1_2_1_1; + ______split_136_49_1_2_1_1 = _____acc_48_1_2_1_1.i == _____acc_48_1_2_1_1.j; + _____cell_49_1_2_1_1 = __pre_a_2_1[48]; + if (______split_136_49_1_2_1_1 == _true) { + _____ncell_49_1_2_1_1 = _____acc_48_1_2_1_1.v; + } else { + _____ncell_49_1_2_1_1 = _____cell_49_1_2_1_1; + } + __a_3_1[48] = _____ncell_49_1_2_1_1; + ______split_136_48_1_2_1_1 = _____acc_47_1_2_1_1.i == _____acc_47_1_2_1_1.j; + _____cell_48_1_2_1_1 = __pre_a_2_1[47]; + if (______split_136_48_1_2_1_1 == _true) { + _____ncell_48_1_2_1_1 = _____acc_47_1_2_1_1.v; + } else { + _____ncell_48_1_2_1_1 = _____cell_48_1_2_1_1; + } + __a_3_1[47] = _____ncell_48_1_2_1_1; + ______split_136_47_1_2_1_1 = _____acc_46_1_2_1_1.i == _____acc_46_1_2_1_1.j; + _____cell_47_1_2_1_1 = __pre_a_2_1[46]; + if (______split_136_47_1_2_1_1 == _true) { + _____ncell_47_1_2_1_1 = _____acc_46_1_2_1_1.v; + } else { + _____ncell_47_1_2_1_1 = _____cell_47_1_2_1_1; + } + __a_3_1[46] = _____ncell_47_1_2_1_1; + ______split_136_46_1_2_1_1 = _____acc_45_1_2_1_1.i == _____acc_45_1_2_1_1.j; + _____cell_46_1_2_1_1 = __pre_a_2_1[45]; + if (______split_136_46_1_2_1_1 == _true) { + _____ncell_46_1_2_1_1 = _____acc_45_1_2_1_1.v; + } else { + _____ncell_46_1_2_1_1 = _____cell_46_1_2_1_1; + } + __a_3_1[45] = _____ncell_46_1_2_1_1; + ______split_136_45_1_2_1_1 = _____acc_44_1_2_1_1.i == _____acc_44_1_2_1_1.j; + _____cell_45_1_2_1_1 = __pre_a_2_1[44]; + if (______split_136_45_1_2_1_1 == _true) { + _____ncell_45_1_2_1_1 = _____acc_44_1_2_1_1.v; + } else { + _____ncell_45_1_2_1_1 = _____cell_45_1_2_1_1; + } + __a_3_1[44] = _____ncell_45_1_2_1_1; + ______split_136_44_1_2_1_1 = _____acc_43_1_2_1_1.i == _____acc_43_1_2_1_1.j; + _____cell_44_1_2_1_1 = __pre_a_2_1[43]; + if (______split_136_44_1_2_1_1 == _true) { + _____ncell_44_1_2_1_1 = _____acc_43_1_2_1_1.v; + } else { + _____ncell_44_1_2_1_1 = _____cell_44_1_2_1_1; + } + __a_3_1[43] = _____ncell_44_1_2_1_1; + ______split_136_43_1_2_1_1 = _____acc_42_1_2_1_1.i == _____acc_42_1_2_1_1.j; + _____cell_43_1_2_1_1 = __pre_a_2_1[42]; + if (______split_136_43_1_2_1_1 == _true) { + _____ncell_43_1_2_1_1 = _____acc_42_1_2_1_1.v; + } else { + _____ncell_43_1_2_1_1 = _____cell_43_1_2_1_1; + } + __a_3_1[42] = _____ncell_43_1_2_1_1; + ______split_136_42_1_2_1_1 = _____acc_41_1_2_1_1.i == _____acc_41_1_2_1_1.j; + _____cell_42_1_2_1_1 = __pre_a_2_1[41]; + if (______split_136_42_1_2_1_1 == _true) { + _____ncell_42_1_2_1_1 = _____acc_41_1_2_1_1.v; + } else { + _____ncell_42_1_2_1_1 = _____cell_42_1_2_1_1; + } + __a_3_1[41] = _____ncell_42_1_2_1_1; + ______split_136_41_1_2_1_1 = _____acc_40_1_2_1_1.i == _____acc_40_1_2_1_1.j; + _____cell_41_1_2_1_1 = __pre_a_2_1[40]; + if (______split_136_41_1_2_1_1 == _true) { + _____ncell_41_1_2_1_1 = _____acc_40_1_2_1_1.v; + } else { + _____ncell_41_1_2_1_1 = _____cell_41_1_2_1_1; + } + __a_3_1[40] = _____ncell_41_1_2_1_1; + ______split_136_40_1_2_1_1 = _____acc_39_1_2_1_1.i == _____acc_39_1_2_1_1.j; + _____cell_40_1_2_1_1 = __pre_a_2_1[39]; + if (______split_136_40_1_2_1_1 == _true) { + _____ncell_40_1_2_1_1 = _____acc_39_1_2_1_1.v; + } else { + _____ncell_40_1_2_1_1 = _____cell_40_1_2_1_1; + } + __a_3_1[39] = _____ncell_40_1_2_1_1; + ______split_136_39_1_2_1_1 = _____acc_38_1_2_1_1.i == _____acc_38_1_2_1_1.j; + _____cell_39_1_2_1_1 = __pre_a_2_1[38]; + if (______split_136_39_1_2_1_1 == _true) { + _____ncell_39_1_2_1_1 = _____acc_38_1_2_1_1.v; + } else { + _____ncell_39_1_2_1_1 = _____cell_39_1_2_1_1; + } + __a_3_1[38] = _____ncell_39_1_2_1_1; + ______split_136_38_1_2_1_1 = _____acc_37_1_2_1_1.i == _____acc_37_1_2_1_1.j; + _____cell_38_1_2_1_1 = __pre_a_2_1[37]; + if (______split_136_38_1_2_1_1 == _true) { + _____ncell_38_1_2_1_1 = _____acc_37_1_2_1_1.v; + } else { + _____ncell_38_1_2_1_1 = _____cell_38_1_2_1_1; + } + __a_3_1[37] = _____ncell_38_1_2_1_1; + ______split_136_37_1_2_1_1 = _____acc_36_1_2_1_1.i == _____acc_36_1_2_1_1.j; + _____cell_37_1_2_1_1 = __pre_a_2_1[36]; + if (______split_136_37_1_2_1_1 == _true) { + _____ncell_37_1_2_1_1 = _____acc_36_1_2_1_1.v; + } else { + _____ncell_37_1_2_1_1 = _____cell_37_1_2_1_1; + } + __a_3_1[36] = _____ncell_37_1_2_1_1; + ______split_136_36_1_2_1_1 = _____acc_35_1_2_1_1.i == _____acc_35_1_2_1_1.j; + _____cell_36_1_2_1_1 = __pre_a_2_1[35]; + if (______split_136_36_1_2_1_1 == _true) { + _____ncell_36_1_2_1_1 = _____acc_35_1_2_1_1.v; + } else { + _____ncell_36_1_2_1_1 = _____cell_36_1_2_1_1; + } + __a_3_1[35] = _____ncell_36_1_2_1_1; + ______split_136_35_1_2_1_1 = _____acc_34_1_2_1_1.i == _____acc_34_1_2_1_1.j; + _____cell_35_1_2_1_1 = __pre_a_2_1[34]; + if (______split_136_35_1_2_1_1 == _true) { + _____ncell_35_1_2_1_1 = _____acc_34_1_2_1_1.v; + } else { + _____ncell_35_1_2_1_1 = _____cell_35_1_2_1_1; + } + __a_3_1[34] = _____ncell_35_1_2_1_1; + ______split_136_34_1_2_1_1 = _____acc_33_1_2_1_1.i == _____acc_33_1_2_1_1.j; + _____cell_34_1_2_1_1 = __pre_a_2_1[33]; + if (______split_136_34_1_2_1_1 == _true) { + _____ncell_34_1_2_1_1 = _____acc_33_1_2_1_1.v; + } else { + _____ncell_34_1_2_1_1 = _____cell_34_1_2_1_1; + } + __a_3_1[33] = _____ncell_34_1_2_1_1; + ______split_136_33_1_2_1_1 = _____acc_32_1_2_1_1.i == _____acc_32_1_2_1_1.j; + _____cell_33_1_2_1_1 = __pre_a_2_1[32]; + if (______split_136_33_1_2_1_1 == _true) { + _____ncell_33_1_2_1_1 = _____acc_32_1_2_1_1.v; + } else { + _____ncell_33_1_2_1_1 = _____cell_33_1_2_1_1; + } + __a_3_1[32] = _____ncell_33_1_2_1_1; + ______split_136_32_1_2_1_1 = _____acc_31_1_2_1_1.i == _____acc_31_1_2_1_1.j; + _____cell_32_1_2_1_1 = __pre_a_2_1[31]; + if (______split_136_32_1_2_1_1 == _true) { + _____ncell_32_1_2_1_1 = _____acc_31_1_2_1_1.v; + } else { + _____ncell_32_1_2_1_1 = _____cell_32_1_2_1_1; + } + __a_3_1[31] = _____ncell_32_1_2_1_1; + ______split_136_31_1_2_1_1 = _____acc_30_1_2_1_1.i == _____acc_30_1_2_1_1.j; + _____cell_31_1_2_1_1 = __pre_a_2_1[30]; + if (______split_136_31_1_2_1_1 == _true) { + _____ncell_31_1_2_1_1 = _____acc_30_1_2_1_1.v; + } else { + _____ncell_31_1_2_1_1 = _____cell_31_1_2_1_1; + } + __a_3_1[30] = _____ncell_31_1_2_1_1; + ______split_136_30_1_2_1_1 = _____acc_29_1_2_1_1.i == _____acc_29_1_2_1_1.j; + _____cell_30_1_2_1_1 = __pre_a_2_1[29]; + if (______split_136_30_1_2_1_1 == _true) { + _____ncell_30_1_2_1_1 = _____acc_29_1_2_1_1.v; + } else { + _____ncell_30_1_2_1_1 = _____cell_30_1_2_1_1; + } + __a_3_1[29] = _____ncell_30_1_2_1_1; + ______split_136_29_1_2_1_1 = _____acc_28_1_2_1_1.i == _____acc_28_1_2_1_1.j; + _____cell_29_1_2_1_1 = __pre_a_2_1[28]; + if (______split_136_29_1_2_1_1 == _true) { + _____ncell_29_1_2_1_1 = _____acc_28_1_2_1_1.v; + } else { + _____ncell_29_1_2_1_1 = _____cell_29_1_2_1_1; + } + __a_3_1[28] = _____ncell_29_1_2_1_1; + ______split_136_28_1_2_1_1 = _____acc_27_1_2_1_1.i == _____acc_27_1_2_1_1.j; + _____cell_28_1_2_1_1 = __pre_a_2_1[27]; + if (______split_136_28_1_2_1_1 == _true) { + _____ncell_28_1_2_1_1 = _____acc_27_1_2_1_1.v; + } else { + _____ncell_28_1_2_1_1 = _____cell_28_1_2_1_1; + } + __a_3_1[27] = _____ncell_28_1_2_1_1; + ______split_136_27_1_2_1_1 = _____acc_26_1_2_1_1.i == _____acc_26_1_2_1_1.j; + _____cell_27_1_2_1_1 = __pre_a_2_1[26]; + if (______split_136_27_1_2_1_1 == _true) { + _____ncell_27_1_2_1_1 = _____acc_26_1_2_1_1.v; + } else { + _____ncell_27_1_2_1_1 = _____cell_27_1_2_1_1; + } + __a_3_1[26] = _____ncell_27_1_2_1_1; + ______split_136_26_1_2_1_1 = _____acc_25_1_2_1_1.i == _____acc_25_1_2_1_1.j; + _____cell_26_1_2_1_1 = __pre_a_2_1[25]; + if (______split_136_26_1_2_1_1 == _true) { + _____ncell_26_1_2_1_1 = _____acc_25_1_2_1_1.v; + } else { + _____ncell_26_1_2_1_1 = _____cell_26_1_2_1_1; + } + __a_3_1[25] = _____ncell_26_1_2_1_1; + ______split_136_25_1_2_1_1 = _____acc_24_1_2_1_1.i == _____acc_24_1_2_1_1.j; + _____cell_25_1_2_1_1 = __pre_a_2_1[24]; + if (______split_136_25_1_2_1_1 == _true) { + _____ncell_25_1_2_1_1 = _____acc_24_1_2_1_1.v; + } else { + _____ncell_25_1_2_1_1 = _____cell_25_1_2_1_1; + } + __a_3_1[24] = _____ncell_25_1_2_1_1; + ______split_136_24_1_2_1_1 = _____acc_23_1_2_1_1.i == _____acc_23_1_2_1_1.j; + _____cell_24_1_2_1_1 = __pre_a_2_1[23]; + if (______split_136_24_1_2_1_1 == _true) { + _____ncell_24_1_2_1_1 = _____acc_23_1_2_1_1.v; + } else { + _____ncell_24_1_2_1_1 = _____cell_24_1_2_1_1; + } + __a_3_1[23] = _____ncell_24_1_2_1_1; + ______split_136_23_1_2_1_1 = _____acc_22_1_2_1_1.i == _____acc_22_1_2_1_1.j; + _____cell_23_1_2_1_1 = __pre_a_2_1[22]; + if (______split_136_23_1_2_1_1 == _true) { + _____ncell_23_1_2_1_1 = _____acc_22_1_2_1_1.v; + } else { + _____ncell_23_1_2_1_1 = _____cell_23_1_2_1_1; + } + __a_3_1[22] = _____ncell_23_1_2_1_1; + ______split_136_22_1_2_1_1 = _____acc_21_1_2_1_1.i == _____acc_21_1_2_1_1.j; + _____cell_22_1_2_1_1 = __pre_a_2_1[21]; + if (______split_136_22_1_2_1_1 == _true) { + _____ncell_22_1_2_1_1 = _____acc_21_1_2_1_1.v; + } else { + _____ncell_22_1_2_1_1 = _____cell_22_1_2_1_1; + } + __a_3_1[21] = _____ncell_22_1_2_1_1; + ______split_136_21_1_2_1_1 = _____acc_20_1_2_1_1.i == _____acc_20_1_2_1_1.j; + _____cell_21_1_2_1_1 = __pre_a_2_1[20]; + if (______split_136_21_1_2_1_1 == _true) { + _____ncell_21_1_2_1_1 = _____acc_20_1_2_1_1.v; + } else { + _____ncell_21_1_2_1_1 = _____cell_21_1_2_1_1; + } + __a_3_1[20] = _____ncell_21_1_2_1_1; + ______split_136_20_1_2_1_1 = _____acc_19_1_2_1_1.i == _____acc_19_1_2_1_1.j; + _____cell_20_1_2_1_1 = __pre_a_2_1[19]; + if (______split_136_20_1_2_1_1 == _true) { + _____ncell_20_1_2_1_1 = _____acc_19_1_2_1_1.v; + } else { + _____ncell_20_1_2_1_1 = _____cell_20_1_2_1_1; + } + __a_3_1[19] = _____ncell_20_1_2_1_1; + ______split_136_19_1_2_1_1 = _____acc_18_1_2_1_1.i == _____acc_18_1_2_1_1.j; + _____cell_19_1_2_1_1 = __pre_a_2_1[18]; + if (______split_136_19_1_2_1_1 == _true) { + _____ncell_19_1_2_1_1 = _____acc_18_1_2_1_1.v; + } else { + _____ncell_19_1_2_1_1 = _____cell_19_1_2_1_1; + } + __a_3_1[18] = _____ncell_19_1_2_1_1; + ______split_136_18_1_2_1_1 = _____acc_17_1_2_1_1.i == _____acc_17_1_2_1_1.j; + _____cell_18_1_2_1_1 = __pre_a_2_1[17]; + if (______split_136_18_1_2_1_1 == _true) { + _____ncell_18_1_2_1_1 = _____acc_17_1_2_1_1.v; + } else { + _____ncell_18_1_2_1_1 = _____cell_18_1_2_1_1; + } + __a_3_1[17] = _____ncell_18_1_2_1_1; + ______split_136_17_1_2_1_1 = _____acc_16_1_2_1_1.i == _____acc_16_1_2_1_1.j; + _____cell_17_1_2_1_1 = __pre_a_2_1[16]; + if (______split_136_17_1_2_1_1 == _true) { + _____ncell_17_1_2_1_1 = _____acc_16_1_2_1_1.v; + } else { + _____ncell_17_1_2_1_1 = _____cell_17_1_2_1_1; + } + __a_3_1[16] = _____ncell_17_1_2_1_1; + ______split_136_16_1_2_1_1 = _____acc_15_1_2_1_1.i == _____acc_15_1_2_1_1.j; + _____cell_16_1_2_1_1 = __pre_a_2_1[15]; + if (______split_136_16_1_2_1_1 == _true) { + _____ncell_16_1_2_1_1 = _____acc_15_1_2_1_1.v; + } else { + _____ncell_16_1_2_1_1 = _____cell_16_1_2_1_1; + } + __a_3_1[15] = _____ncell_16_1_2_1_1; + ______split_136_15_1_2_1_1 = _____acc_14_1_2_1_1.i == _____acc_14_1_2_1_1.j; + _____cell_15_1_2_1_1 = __pre_a_2_1[14]; + if (______split_136_15_1_2_1_1 == _true) { + _____ncell_15_1_2_1_1 = _____acc_14_1_2_1_1.v; + } else { + _____ncell_15_1_2_1_1 = _____cell_15_1_2_1_1; + } + __a_3_1[14] = _____ncell_15_1_2_1_1; + ______split_136_14_1_2_1_1 = _____acc_13_1_2_1_1.i == _____acc_13_1_2_1_1.j; + _____cell_14_1_2_1_1 = __pre_a_2_1[13]; + if (______split_136_14_1_2_1_1 == _true) { + _____ncell_14_1_2_1_1 = _____acc_13_1_2_1_1.v; + } else { + _____ncell_14_1_2_1_1 = _____cell_14_1_2_1_1; + } + __a_3_1[13] = _____ncell_14_1_2_1_1; + ______split_136_13_1_2_1_1 = _____acc_12_1_2_1_1.i == _____acc_12_1_2_1_1.j; + _____cell_13_1_2_1_1 = __pre_a_2_1[12]; + if (______split_136_13_1_2_1_1 == _true) { + _____ncell_13_1_2_1_1 = _____acc_12_1_2_1_1.v; + } else { + _____ncell_13_1_2_1_1 = _____cell_13_1_2_1_1; + } + __a_3_1[12] = _____ncell_13_1_2_1_1; + ______split_136_12_1_2_1_1 = _____acc_11_1_2_1_1.i == _____acc_11_1_2_1_1.j; + _____cell_12_1_2_1_1 = __pre_a_2_1[11]; + if (______split_136_12_1_2_1_1 == _true) { + _____ncell_12_1_2_1_1 = _____acc_11_1_2_1_1.v; + } else { + _____ncell_12_1_2_1_1 = _____cell_12_1_2_1_1; + } + __a_3_1[11] = _____ncell_12_1_2_1_1; + ______split_136_11_1_2_1_1 = _____acc_10_1_2_1_1.i == _____acc_10_1_2_1_1.j; + _____cell_11_1_2_1_1 = __pre_a_2_1[10]; + if (______split_136_11_1_2_1_1 == _true) { + _____ncell_11_1_2_1_1 = _____acc_10_1_2_1_1.v; + } else { + _____ncell_11_1_2_1_1 = _____cell_11_1_2_1_1; + } + __a_3_1[10] = _____ncell_11_1_2_1_1; + ______split_136_10_1_2_1_1 = _____acc_9_1_2_1_1.i == _____acc_9_1_2_1_1.j; + _____cell_10_1_2_1_1 = __pre_a_2_1[9]; + if (______split_136_10_1_2_1_1 == _true) { + _____ncell_10_1_2_1_1 = _____acc_9_1_2_1_1.v; + } else { + _____ncell_10_1_2_1_1 = _____cell_10_1_2_1_1; + } + __a_3_1[9] = _____ncell_10_1_2_1_1; + ______split_136_9_1_2_1_1 = _____acc_8_1_2_1_1.i == _____acc_8_1_2_1_1.j; + _____cell_9_1_2_1_1 = __pre_a_2_1[8]; + if (______split_136_9_1_2_1_1 == _true) { + _____ncell_9_1_2_1_1 = _____acc_8_1_2_1_1.v; + } else { + _____ncell_9_1_2_1_1 = _____cell_9_1_2_1_1; + } + __a_3_1[8] = _____ncell_9_1_2_1_1; + ______split_136_8_1_2_1_1 = _____acc_7_1_2_1_1.i == _____acc_7_1_2_1_1.j; + _____cell_8_1_2_1_1 = __pre_a_2_1[7]; + if (______split_136_8_1_2_1_1 == _true) { + _____ncell_8_1_2_1_1 = _____acc_7_1_2_1_1.v; + } else { + _____ncell_8_1_2_1_1 = _____cell_8_1_2_1_1; + } + __a_3_1[7] = _____ncell_8_1_2_1_1; + ______split_136_7_1_2_1_1 = _____acc_6_1_2_1_1.i == _____acc_6_1_2_1_1.j; + _____cell_7_1_2_1_1 = __pre_a_2_1[6]; + if (______split_136_7_1_2_1_1 == _true) { + _____ncell_7_1_2_1_1 = _____acc_6_1_2_1_1.v; + } else { + _____ncell_7_1_2_1_1 = _____cell_7_1_2_1_1; + } + __a_3_1[6] = _____ncell_7_1_2_1_1; + ______split_136_6_1_2_1_1 = _____acc_5_1_2_1_1.i == _____acc_5_1_2_1_1.j; + _____cell_6_1_2_1_1 = __pre_a_2_1[5]; + if (______split_136_6_1_2_1_1 == _true) { + _____ncell_6_1_2_1_1 = _____acc_5_1_2_1_1.v; + } else { + _____ncell_6_1_2_1_1 = _____cell_6_1_2_1_1; + } + __a_3_1[5] = _____ncell_6_1_2_1_1; + ______split_136_5_1_2_1_1 = _____acc_4_1_2_1_1.i == _____acc_4_1_2_1_1.j; + _____cell_5_1_2_1_1 = __pre_a_2_1[4]; + if (______split_136_5_1_2_1_1 == _true) { + _____ncell_5_1_2_1_1 = _____acc_4_1_2_1_1.v; + } else { + _____ncell_5_1_2_1_1 = _____cell_5_1_2_1_1; + } + __a_3_1[4] = _____ncell_5_1_2_1_1; + ______split_136_4_1_2_1_1 = _____acc_3_1_2_1_1.i == _____acc_3_1_2_1_1.j; + _____cell_4_1_2_1_1 = __pre_a_2_1[3]; + if (______split_136_4_1_2_1_1 == _true) { + _____ncell_4_1_2_1_1 = _____acc_3_1_2_1_1.v; + } else { + _____ncell_4_1_2_1_1 = _____cell_4_1_2_1_1; + } + __a_3_1[3] = _____ncell_4_1_2_1_1; + ______split_136_3_1_2_1_1 = _____acc_2_1_2_1_1.i == _____acc_2_1_2_1_1.j; + _____cell_3_1_2_1_1 = __pre_a_2_1[2]; + if (______split_136_3_1_2_1_1 == _true) { + _____ncell_3_1_2_1_1 = _____acc_2_1_2_1_1.v; + } else { + _____ncell_3_1_2_1_1 = _____cell_3_1_2_1_1; + } + __a_3_1[2] = _____ncell_3_1_2_1_1; + ______split_136_2_1_2_1_1 = _____acc_1_1_2_1_1.i == _____acc_1_1_2_1_1.j; + _____cell_2_1_2_1_1 = __pre_a_2_1[1]; + if (______split_136_2_1_2_1_1 == _true) { + _____ncell_2_1_2_1_1 = _____acc_1_1_2_1_1.v; + } else { + _____ncell_2_1_2_1_1 = _____cell_2_1_2_1_1; + } + __a_3_1[1] = _____ncell_2_1_2_1_1; + ______split_136_1_1_2_1_1 = ____split_3_2_1_1.i == ____split_3_2_1_1.j; + _____cell_1_1_2_1_1 = __pre_a_2_1[0]; + if (______split_136_1_1_2_1_1 == _true) { + _____ncell_1_1_2_1_1 = ____split_3_2_1_1.v; + } else { + _____ncell_1_1_2_1_1 = _____cell_1_1_2_1_1; + } + __a_3_1[0] = _____ncell_1_1_2_1_1; + ___i1_2_1_1 = 0.0; + ____acc_50_2_1_1 = ___i1_2_1_1 + __a_3_1[0]; + ____acc_51_2_1_1 = ____acc_50_2_1_1 + __a_3_1[1]; + ____acc_52_2_1_1 = ____acc_51_2_1_1 + __a_3_1[2]; + ____acc_53_2_1_1 = ____acc_52_2_1_1 + __a_3_1[3]; + ____acc_54_2_1_1 = ____acc_53_2_1_1 + __a_3_1[4]; + ____acc_55_2_1_1 = ____acc_54_2_1_1 + __a_3_1[5]; + ____acc_56_2_1_1 = ____acc_55_2_1_1 + __a_3_1[6]; + ____acc_57_2_1_1 = ____acc_56_2_1_1 + __a_3_1[7]; + ____acc_58_2_1_1 = ____acc_57_2_1_1 + __a_3_1[8]; + ____acc_59_2_1_1 = ____acc_58_2_1_1 + __a_3_1[9]; + ____acc_60_2_1_1 = ____acc_59_2_1_1 + __a_3_1[10]; + ____acc_61_2_1_1 = ____acc_60_2_1_1 + __a_3_1[11]; + ____acc_62_2_1_1 = ____acc_61_2_1_1 + __a_3_1[12]; + ____acc_63_2_1_1 = ____acc_62_2_1_1 + __a_3_1[13]; + ____acc_64_2_1_1 = ____acc_63_2_1_1 + __a_3_1[14]; + ____acc_65_2_1_1 = ____acc_64_2_1_1 + __a_3_1[15]; + ____acc_66_2_1_1 = ____acc_65_2_1_1 + __a_3_1[16]; + ____acc_67_2_1_1 = ____acc_66_2_1_1 + __a_3_1[17]; + ____acc_68_2_1_1 = ____acc_67_2_1_1 + __a_3_1[18]; + ____acc_69_2_1_1 = ____acc_68_2_1_1 + __a_3_1[19]; + ____acc_70_2_1_1 = ____acc_69_2_1_1 + __a_3_1[20]; + ____acc_71_2_1_1 = ____acc_70_2_1_1 + __a_3_1[21]; + ____acc_72_2_1_1 = ____acc_71_2_1_1 + __a_3_1[22]; + ____acc_73_2_1_1 = ____acc_72_2_1_1 + __a_3_1[23]; + ____acc_74_2_1_1 = ____acc_73_2_1_1 + __a_3_1[24]; + ____acc_75_2_1_1 = ____acc_74_2_1_1 + __a_3_1[25]; + ____acc_76_2_1_1 = ____acc_75_2_1_1 + __a_3_1[26]; + ____acc_77_2_1_1 = ____acc_76_2_1_1 + __a_3_1[27]; + ____acc_78_2_1_1 = ____acc_77_2_1_1 + __a_3_1[28]; + ____acc_79_2_1_1 = ____acc_78_2_1_1 + __a_3_1[29]; + ____acc_80_2_1_1 = ____acc_79_2_1_1 + __a_3_1[30]; + ____acc_81_2_1_1 = ____acc_80_2_1_1 + __a_3_1[31]; + ____acc_82_2_1_1 = ____acc_81_2_1_1 + __a_3_1[32]; + ____acc_83_2_1_1 = ____acc_82_2_1_1 + __a_3_1[33]; + ____acc_84_2_1_1 = ____acc_83_2_1_1 + __a_3_1[34]; + ____acc_85_2_1_1 = ____acc_84_2_1_1 + __a_3_1[35]; + ____acc_86_2_1_1 = ____acc_85_2_1_1 + __a_3_1[36]; + ____acc_87_2_1_1 = ____acc_86_2_1_1 + __a_3_1[37]; + ____acc_88_2_1_1 = ____acc_87_2_1_1 + __a_3_1[38]; + ____acc_89_2_1_1 = ____acc_88_2_1_1 + __a_3_1[39]; + ____acc_90_2_1_1 = ____acc_89_2_1_1 + __a_3_1[40]; + ____acc_91_2_1_1 = ____acc_90_2_1_1 + __a_3_1[41]; + ____acc_92_2_1_1 = ____acc_91_2_1_1 + __a_3_1[42]; + ____acc_93_2_1_1 = ____acc_92_2_1_1 + __a_3_1[43]; + ____acc_94_2_1_1 = ____acc_93_2_1_1 + __a_3_1[44]; + ____acc_95_2_1_1 = ____acc_94_2_1_1 + __a_3_1[45]; + ____acc_96_2_1_1 = ____acc_95_2_1_1 + __a_3_1[46]; + ____acc_97_2_1_1 = ____acc_96_2_1_1 + __a_3_1[47]; + ____acc_98_2_1_1 = ____acc_97_2_1_1 + __a_3_1[48]; + __split_82_1 = ____acc_98_2_1_1 + __a_3_1[49]; + _d_1 = __split_82_1; + break; +} + Lustre_pre_set(_d_1,&ctx->Lustre_pre_ctx_tab[1]); + Lustre_pre_get(&__split_79_1,&ctx->Lustre_pre_ctx_tab[2]); + __x_13_1 = 0.1; + Lustre_arrow_step(0.0,__split_79_1,&_pt_1,&ctx->Lustre_arrow_ctx_tab[2]); + switch (_TickOrRot_1){ + case _false: + __split_85_1 = _pt_1; + __split_86_1 = __split_85_1; + break; + case _true: + __split_83_1 = _tx_1; + ____split_3_1_1_1.v = __split_83_1; + _____acc_1_1_1_1_1.v = ____split_3_1_1_1.v; + _____acc_2_1_1_1_1.v = _____acc_1_1_1_1_1.v; + _____acc_3_1_1_1_1.v = _____acc_2_1_1_1_1.v; + _____acc_4_1_1_1_1.v = _____acc_3_1_1_1_1.v; + _____acc_5_1_1_1_1.v = _____acc_4_1_1_1_1.v; + _____acc_6_1_1_1_1.v = _____acc_5_1_1_1_1.v; + _____acc_7_1_1_1_1.v = _____acc_6_1_1_1_1.v; + _____acc_8_1_1_1_1.v = _____acc_7_1_1_1_1.v; + _____acc_9_1_1_1_1.v = _____acc_8_1_1_1_1.v; + _____acc_10_1_1_1_1.v = _____acc_9_1_1_1_1.v; + _____acc_11_1_1_1_1.v = _____acc_10_1_1_1_1.v; + _____acc_12_1_1_1_1.v = _____acc_11_1_1_1_1.v; + _____acc_13_1_1_1_1.v = _____acc_12_1_1_1_1.v; + _____acc_14_1_1_1_1.v = _____acc_13_1_1_1_1.v; + _____acc_15_1_1_1_1.v = _____acc_14_1_1_1_1.v; + _____acc_16_1_1_1_1.v = _____acc_15_1_1_1_1.v; + _____acc_17_1_1_1_1.v = _____acc_16_1_1_1_1.v; + _____acc_18_1_1_1_1.v = _____acc_17_1_1_1_1.v; + _____acc_19_1_1_1_1.v = _____acc_18_1_1_1_1.v; + _____acc_20_1_1_1_1.v = _____acc_19_1_1_1_1.v; + _____acc_21_1_1_1_1.v = _____acc_20_1_1_1_1.v; + _____acc_22_1_1_1_1.v = _____acc_21_1_1_1_1.v; + _____acc_23_1_1_1_1.v = _____acc_22_1_1_1_1.v; + _____acc_24_1_1_1_1.v = _____acc_23_1_1_1_1.v; + _____acc_25_1_1_1_1.v = _____acc_24_1_1_1_1.v; + _____acc_26_1_1_1_1.v = _____acc_25_1_1_1_1.v; + _____acc_27_1_1_1_1.v = _____acc_26_1_1_1_1.v; + _____acc_28_1_1_1_1.v = _____acc_27_1_1_1_1.v; + _____acc_29_1_1_1_1.v = _____acc_28_1_1_1_1.v; + _____acc_30_1_1_1_1.v = _____acc_29_1_1_1_1.v; + _____acc_31_1_1_1_1.v = _____acc_30_1_1_1_1.v; + _____acc_32_1_1_1_1.v = _____acc_31_1_1_1_1.v; + _____acc_33_1_1_1_1.v = _____acc_32_1_1_1_1.v; + _____acc_34_1_1_1_1.v = _____acc_33_1_1_1_1.v; + _____acc_35_1_1_1_1.v = _____acc_34_1_1_1_1.v; + _____acc_36_1_1_1_1.v = _____acc_35_1_1_1_1.v; + _____acc_37_1_1_1_1.v = _____acc_36_1_1_1_1.v; + _____acc_38_1_1_1_1.v = _____acc_37_1_1_1_1.v; + _____acc_39_1_1_1_1.v = _____acc_38_1_1_1_1.v; + _____acc_40_1_1_1_1.v = _____acc_39_1_1_1_1.v; + _____acc_41_1_1_1_1.v = _____acc_40_1_1_1_1.v; + _____acc_42_1_1_1_1.v = _____acc_41_1_1_1_1.v; + _____acc_43_1_1_1_1.v = _____acc_42_1_1_1_1.v; + _____acc_44_1_1_1_1.v = _____acc_43_1_1_1_1.v; + _____acc_45_1_1_1_1.v = _____acc_44_1_1_1_1.v; + _____acc_46_1_1_1_1.v = _____acc_45_1_1_1_1.v; + _____acc_47_1_1_1_1.v = _____acc_46_1_1_1_1.v; + _____acc_48_1_1_1_1.v = _____acc_47_1_1_1_1.v; + _____acc_49_1_1_1_1.v = _____acc_48_1_1_1_1.v; + ____split_3_1_1_1.i = 0; + ______split_137_1_1_1_1_1 = ____split_3_1_1_1.i + 1; + _____acc_1_1_1_1_1.i = ______split_137_1_1_1_1_1; + ______split_137_2_1_1_1_1 = _____acc_1_1_1_1_1.i + 1; + _____acc_2_1_1_1_1.i = ______split_137_2_1_1_1_1; + ______split_137_3_1_1_1_1 = _____acc_2_1_1_1_1.i + 1; + _____acc_3_1_1_1_1.i = ______split_137_3_1_1_1_1; + ______split_137_4_1_1_1_1 = _____acc_3_1_1_1_1.i + 1; + _____acc_4_1_1_1_1.i = ______split_137_4_1_1_1_1; + ______split_137_5_1_1_1_1 = _____acc_4_1_1_1_1.i + 1; + _____acc_5_1_1_1_1.i = ______split_137_5_1_1_1_1; + ______split_137_6_1_1_1_1 = _____acc_5_1_1_1_1.i + 1; + _____acc_6_1_1_1_1.i = ______split_137_6_1_1_1_1; + ______split_137_7_1_1_1_1 = _____acc_6_1_1_1_1.i + 1; + _____acc_7_1_1_1_1.i = ______split_137_7_1_1_1_1; + ______split_137_8_1_1_1_1 = _____acc_7_1_1_1_1.i + 1; + _____acc_8_1_1_1_1.i = ______split_137_8_1_1_1_1; + ______split_137_9_1_1_1_1 = _____acc_8_1_1_1_1.i + 1; + _____acc_9_1_1_1_1.i = ______split_137_9_1_1_1_1; + ______split_137_10_1_1_1_1 = _____acc_9_1_1_1_1.i + 1; + _____acc_10_1_1_1_1.i = ______split_137_10_1_1_1_1; + ______split_137_11_1_1_1_1 = _____acc_10_1_1_1_1.i + 1; + _____acc_11_1_1_1_1.i = ______split_137_11_1_1_1_1; + ______split_137_12_1_1_1_1 = _____acc_11_1_1_1_1.i + 1; + _____acc_12_1_1_1_1.i = ______split_137_12_1_1_1_1; + ______split_137_13_1_1_1_1 = _____acc_12_1_1_1_1.i + 1; + _____acc_13_1_1_1_1.i = ______split_137_13_1_1_1_1; + ______split_137_14_1_1_1_1 = _____acc_13_1_1_1_1.i + 1; + _____acc_14_1_1_1_1.i = ______split_137_14_1_1_1_1; + ______split_137_15_1_1_1_1 = _____acc_14_1_1_1_1.i + 1; + _____acc_15_1_1_1_1.i = ______split_137_15_1_1_1_1; + ______split_137_16_1_1_1_1 = _____acc_15_1_1_1_1.i + 1; + _____acc_16_1_1_1_1.i = ______split_137_16_1_1_1_1; + ______split_137_17_1_1_1_1 = _____acc_16_1_1_1_1.i + 1; + _____acc_17_1_1_1_1.i = ______split_137_17_1_1_1_1; + ______split_137_18_1_1_1_1 = _____acc_17_1_1_1_1.i + 1; + _____acc_18_1_1_1_1.i = ______split_137_18_1_1_1_1; + ______split_137_19_1_1_1_1 = _____acc_18_1_1_1_1.i + 1; + _____acc_19_1_1_1_1.i = ______split_137_19_1_1_1_1; + ______split_137_20_1_1_1_1 = _____acc_19_1_1_1_1.i + 1; + _____acc_20_1_1_1_1.i = ______split_137_20_1_1_1_1; + ______split_137_21_1_1_1_1 = _____acc_20_1_1_1_1.i + 1; + _____acc_21_1_1_1_1.i = ______split_137_21_1_1_1_1; + ______split_137_22_1_1_1_1 = _____acc_21_1_1_1_1.i + 1; + _____acc_22_1_1_1_1.i = ______split_137_22_1_1_1_1; + ______split_137_23_1_1_1_1 = _____acc_22_1_1_1_1.i + 1; + _____acc_23_1_1_1_1.i = ______split_137_23_1_1_1_1; + ______split_137_24_1_1_1_1 = _____acc_23_1_1_1_1.i + 1; + _____acc_24_1_1_1_1.i = ______split_137_24_1_1_1_1; + ______split_137_25_1_1_1_1 = _____acc_24_1_1_1_1.i + 1; + _____acc_25_1_1_1_1.i = ______split_137_25_1_1_1_1; + ______split_137_26_1_1_1_1 = _____acc_25_1_1_1_1.i + 1; + _____acc_26_1_1_1_1.i = ______split_137_26_1_1_1_1; + ______split_137_27_1_1_1_1 = _____acc_26_1_1_1_1.i + 1; + _____acc_27_1_1_1_1.i = ______split_137_27_1_1_1_1; + ______split_137_28_1_1_1_1 = _____acc_27_1_1_1_1.i + 1; + _____acc_28_1_1_1_1.i = ______split_137_28_1_1_1_1; + ______split_137_29_1_1_1_1 = _____acc_28_1_1_1_1.i + 1; + _____acc_29_1_1_1_1.i = ______split_137_29_1_1_1_1; + ______split_137_30_1_1_1_1 = _____acc_29_1_1_1_1.i + 1; + _____acc_30_1_1_1_1.i = ______split_137_30_1_1_1_1; + ______split_137_31_1_1_1_1 = _____acc_30_1_1_1_1.i + 1; + _____acc_31_1_1_1_1.i = ______split_137_31_1_1_1_1; + ______split_137_32_1_1_1_1 = _____acc_31_1_1_1_1.i + 1; + _____acc_32_1_1_1_1.i = ______split_137_32_1_1_1_1; + ______split_137_33_1_1_1_1 = _____acc_32_1_1_1_1.i + 1; + _____acc_33_1_1_1_1.i = ______split_137_33_1_1_1_1; + ______split_137_34_1_1_1_1 = _____acc_33_1_1_1_1.i + 1; + _____acc_34_1_1_1_1.i = ______split_137_34_1_1_1_1; + ______split_137_35_1_1_1_1 = _____acc_34_1_1_1_1.i + 1; + _____acc_35_1_1_1_1.i = ______split_137_35_1_1_1_1; + ______split_137_36_1_1_1_1 = _____acc_35_1_1_1_1.i + 1; + _____acc_36_1_1_1_1.i = ______split_137_36_1_1_1_1; + ______split_137_37_1_1_1_1 = _____acc_36_1_1_1_1.i + 1; + _____acc_37_1_1_1_1.i = ______split_137_37_1_1_1_1; + ______split_137_38_1_1_1_1 = _____acc_37_1_1_1_1.i + 1; + _____acc_38_1_1_1_1.i = ______split_137_38_1_1_1_1; + ______split_137_39_1_1_1_1 = _____acc_38_1_1_1_1.i + 1; + _____acc_39_1_1_1_1.i = ______split_137_39_1_1_1_1; + ______split_137_40_1_1_1_1 = _____acc_39_1_1_1_1.i + 1; + _____acc_40_1_1_1_1.i = ______split_137_40_1_1_1_1; + ______split_137_41_1_1_1_1 = _____acc_40_1_1_1_1.i + 1; + _____acc_41_1_1_1_1.i = ______split_137_41_1_1_1_1; + ______split_137_42_1_1_1_1 = _____acc_41_1_1_1_1.i + 1; + _____acc_42_1_1_1_1.i = ______split_137_42_1_1_1_1; + ______split_137_43_1_1_1_1 = _____acc_42_1_1_1_1.i + 1; + _____acc_43_1_1_1_1.i = ______split_137_43_1_1_1_1; + ______split_137_44_1_1_1_1 = _____acc_43_1_1_1_1.i + 1; + _____acc_44_1_1_1_1.i = ______split_137_44_1_1_1_1; + ______split_137_45_1_1_1_1 = _____acc_44_1_1_1_1.i + 1; + _____acc_45_1_1_1_1.i = ______split_137_45_1_1_1_1; + ______split_137_46_1_1_1_1 = _____acc_45_1_1_1_1.i + 1; + _____acc_46_1_1_1_1.i = ______split_137_46_1_1_1_1; + ______split_137_47_1_1_1_1 = _____acc_46_1_1_1_1.i + 1; + _____acc_47_1_1_1_1.i = ______split_137_47_1_1_1_1; + ______split_137_48_1_1_1_1 = _____acc_47_1_1_1_1.i + 1; + _____acc_48_1_1_1_1.i = ______split_137_48_1_1_1_1; + ______split_137_49_1_1_1_1 = _____acc_48_1_1_1_1.i + 1; + _____acc_49_1_1_1_1.i = ______split_137_49_1_1_1_1; + Lustre_pre_2_get(&___split_131_1_1,&ctx->Lustre_pre_2_ctx_tab[2]); + Lustre_arrow_2_step(0,___split_131_1_1,&___split_132_1_1,&ctx->Lustre_arrow_2_ctx_tab[2]); + __i_1_1 = ___split_132_1_1 + 1; + ___split_135_1_1 = __i_1_1 % 50; + ____split_3_1_1_1.j = ___split_135_1_1; + _____acc_1_1_1_1_1.j = ____split_3_1_1_1.j; + _____acc_2_1_1_1_1.j = _____acc_1_1_1_1_1.j; + _____acc_3_1_1_1_1.j = _____acc_2_1_1_1_1.j; + _____acc_4_1_1_1_1.j = _____acc_3_1_1_1_1.j; + _____acc_5_1_1_1_1.j = _____acc_4_1_1_1_1.j; + _____acc_6_1_1_1_1.j = _____acc_5_1_1_1_1.j; + _____acc_7_1_1_1_1.j = _____acc_6_1_1_1_1.j; + _____acc_8_1_1_1_1.j = _____acc_7_1_1_1_1.j; + _____acc_9_1_1_1_1.j = _____acc_8_1_1_1_1.j; + _____acc_10_1_1_1_1.j = _____acc_9_1_1_1_1.j; + _____acc_11_1_1_1_1.j = _____acc_10_1_1_1_1.j; + _____acc_12_1_1_1_1.j = _____acc_11_1_1_1_1.j; + _____acc_13_1_1_1_1.j = _____acc_12_1_1_1_1.j; + _____acc_14_1_1_1_1.j = _____acc_13_1_1_1_1.j; + _____acc_15_1_1_1_1.j = _____acc_14_1_1_1_1.j; + _____acc_16_1_1_1_1.j = _____acc_15_1_1_1_1.j; + _____acc_17_1_1_1_1.j = _____acc_16_1_1_1_1.j; + _____acc_18_1_1_1_1.j = _____acc_17_1_1_1_1.j; + _____acc_19_1_1_1_1.j = _____acc_18_1_1_1_1.j; + _____acc_20_1_1_1_1.j = _____acc_19_1_1_1_1.j; + _____acc_21_1_1_1_1.j = _____acc_20_1_1_1_1.j; + _____acc_22_1_1_1_1.j = _____acc_21_1_1_1_1.j; + _____acc_23_1_1_1_1.j = _____acc_22_1_1_1_1.j; + _____acc_24_1_1_1_1.j = _____acc_23_1_1_1_1.j; + _____acc_25_1_1_1_1.j = _____acc_24_1_1_1_1.j; + _____acc_26_1_1_1_1.j = _____acc_25_1_1_1_1.j; + _____acc_27_1_1_1_1.j = _____acc_26_1_1_1_1.j; + _____acc_28_1_1_1_1.j = _____acc_27_1_1_1_1.j; + _____acc_29_1_1_1_1.j = _____acc_28_1_1_1_1.j; + _____acc_30_1_1_1_1.j = _____acc_29_1_1_1_1.j; + _____acc_31_1_1_1_1.j = _____acc_30_1_1_1_1.j; + _____acc_32_1_1_1_1.j = _____acc_31_1_1_1_1.j; + _____acc_33_1_1_1_1.j = _____acc_32_1_1_1_1.j; + _____acc_34_1_1_1_1.j = _____acc_33_1_1_1_1.j; + _____acc_35_1_1_1_1.j = _____acc_34_1_1_1_1.j; + _____acc_36_1_1_1_1.j = _____acc_35_1_1_1_1.j; + _____acc_37_1_1_1_1.j = _____acc_36_1_1_1_1.j; + _____acc_38_1_1_1_1.j = _____acc_37_1_1_1_1.j; + _____acc_39_1_1_1_1.j = _____acc_38_1_1_1_1.j; + _____acc_40_1_1_1_1.j = _____acc_39_1_1_1_1.j; + _____acc_41_1_1_1_1.j = _____acc_40_1_1_1_1.j; + _____acc_42_1_1_1_1.j = _____acc_41_1_1_1_1.j; + _____acc_43_1_1_1_1.j = _____acc_42_1_1_1_1.j; + _____acc_44_1_1_1_1.j = _____acc_43_1_1_1_1.j; + _____acc_45_1_1_1_1.j = _____acc_44_1_1_1_1.j; + _____acc_46_1_1_1_1.j = _____acc_45_1_1_1_1.j; + _____acc_47_1_1_1_1.j = _____acc_46_1_1_1_1.j; + _____acc_48_1_1_1_1.j = _____acc_47_1_1_1_1.j; + _____acc_49_1_1_1_1.j = _____acc_48_1_1_1_1.j; + ______split_136_50_1_1_1_1 = _____acc_49_1_1_1_1.i == _____acc_49_1_1_1_1.j; + Lustre_pre_3_get(___split_134_1_1,&ctx->Lustre_pre_3_ctx_tab[1]); + Lustre_hat_step(0.1,___split_133_1_1); + Lustre_arrow_3_step(___split_133_1_1,___split_134_1_1,__pre_a_1_1,&ctx->Lustre_arrow_3_ctx_tab[1]); + _____cell_50_1_1_1_1 = __pre_a_1_1[49]; + if (______split_136_50_1_1_1_1 == _true) { + _____ncell_50_1_1_1_1 = _____acc_49_1_1_1_1.v; + } else { + _____ncell_50_1_1_1_1 = _____cell_50_1_1_1_1; + } + __a_2_1[49] = _____ncell_50_1_1_1_1; + ______split_136_49_1_1_1_1 = _____acc_48_1_1_1_1.i == _____acc_48_1_1_1_1.j; + _____cell_49_1_1_1_1 = __pre_a_1_1[48]; + if (______split_136_49_1_1_1_1 == _true) { + _____ncell_49_1_1_1_1 = _____acc_48_1_1_1_1.v; + } else { + _____ncell_49_1_1_1_1 = _____cell_49_1_1_1_1; + } + __a_2_1[48] = _____ncell_49_1_1_1_1; + ______split_136_48_1_1_1_1 = _____acc_47_1_1_1_1.i == _____acc_47_1_1_1_1.j; + _____cell_48_1_1_1_1 = __pre_a_1_1[47]; + if (______split_136_48_1_1_1_1 == _true) { + _____ncell_48_1_1_1_1 = _____acc_47_1_1_1_1.v; + } else { + _____ncell_48_1_1_1_1 = _____cell_48_1_1_1_1; + } + __a_2_1[47] = _____ncell_48_1_1_1_1; + ______split_136_47_1_1_1_1 = _____acc_46_1_1_1_1.i == _____acc_46_1_1_1_1.j; + _____cell_47_1_1_1_1 = __pre_a_1_1[46]; + if (______split_136_47_1_1_1_1 == _true) { + _____ncell_47_1_1_1_1 = _____acc_46_1_1_1_1.v; + } else { + _____ncell_47_1_1_1_1 = _____cell_47_1_1_1_1; + } + __a_2_1[46] = _____ncell_47_1_1_1_1; + ______split_136_46_1_1_1_1 = _____acc_45_1_1_1_1.i == _____acc_45_1_1_1_1.j; + _____cell_46_1_1_1_1 = __pre_a_1_1[45]; + if (______split_136_46_1_1_1_1 == _true) { + _____ncell_46_1_1_1_1 = _____acc_45_1_1_1_1.v; + } else { + _____ncell_46_1_1_1_1 = _____cell_46_1_1_1_1; + } + __a_2_1[45] = _____ncell_46_1_1_1_1; + ______split_136_45_1_1_1_1 = _____acc_44_1_1_1_1.i == _____acc_44_1_1_1_1.j; + _____cell_45_1_1_1_1 = __pre_a_1_1[44]; + if (______split_136_45_1_1_1_1 == _true) { + _____ncell_45_1_1_1_1 = _____acc_44_1_1_1_1.v; + } else { + _____ncell_45_1_1_1_1 = _____cell_45_1_1_1_1; + } + __a_2_1[44] = _____ncell_45_1_1_1_1; + ______split_136_44_1_1_1_1 = _____acc_43_1_1_1_1.i == _____acc_43_1_1_1_1.j; + _____cell_44_1_1_1_1 = __pre_a_1_1[43]; + if (______split_136_44_1_1_1_1 == _true) { + _____ncell_44_1_1_1_1 = _____acc_43_1_1_1_1.v; + } else { + _____ncell_44_1_1_1_1 = _____cell_44_1_1_1_1; + } + __a_2_1[43] = _____ncell_44_1_1_1_1; + ______split_136_43_1_1_1_1 = _____acc_42_1_1_1_1.i == _____acc_42_1_1_1_1.j; + _____cell_43_1_1_1_1 = __pre_a_1_1[42]; + if (______split_136_43_1_1_1_1 == _true) { + _____ncell_43_1_1_1_1 = _____acc_42_1_1_1_1.v; + } else { + _____ncell_43_1_1_1_1 = _____cell_43_1_1_1_1; + } + __a_2_1[42] = _____ncell_43_1_1_1_1; + ______split_136_42_1_1_1_1 = _____acc_41_1_1_1_1.i == _____acc_41_1_1_1_1.j; + _____cell_42_1_1_1_1 = __pre_a_1_1[41]; + if (______split_136_42_1_1_1_1 == _true) { + _____ncell_42_1_1_1_1 = _____acc_41_1_1_1_1.v; + } else { + _____ncell_42_1_1_1_1 = _____cell_42_1_1_1_1; + } + __a_2_1[41] = _____ncell_42_1_1_1_1; + ______split_136_41_1_1_1_1 = _____acc_40_1_1_1_1.i == _____acc_40_1_1_1_1.j; + _____cell_41_1_1_1_1 = __pre_a_1_1[40]; + if (______split_136_41_1_1_1_1 == _true) { + _____ncell_41_1_1_1_1 = _____acc_40_1_1_1_1.v; + } else { + _____ncell_41_1_1_1_1 = _____cell_41_1_1_1_1; + } + __a_2_1[40] = _____ncell_41_1_1_1_1; + ______split_136_40_1_1_1_1 = _____acc_39_1_1_1_1.i == _____acc_39_1_1_1_1.j; + _____cell_40_1_1_1_1 = __pre_a_1_1[39]; + if (______split_136_40_1_1_1_1 == _true) { + _____ncell_40_1_1_1_1 = _____acc_39_1_1_1_1.v; + } else { + _____ncell_40_1_1_1_1 = _____cell_40_1_1_1_1; + } + __a_2_1[39] = _____ncell_40_1_1_1_1; + ______split_136_39_1_1_1_1 = _____acc_38_1_1_1_1.i == _____acc_38_1_1_1_1.j; + _____cell_39_1_1_1_1 = __pre_a_1_1[38]; + if (______split_136_39_1_1_1_1 == _true) { + _____ncell_39_1_1_1_1 = _____acc_38_1_1_1_1.v; + } else { + _____ncell_39_1_1_1_1 = _____cell_39_1_1_1_1; + } + __a_2_1[38] = _____ncell_39_1_1_1_1; + ______split_136_38_1_1_1_1 = _____acc_37_1_1_1_1.i == _____acc_37_1_1_1_1.j; + _____cell_38_1_1_1_1 = __pre_a_1_1[37]; + if (______split_136_38_1_1_1_1 == _true) { + _____ncell_38_1_1_1_1 = _____acc_37_1_1_1_1.v; + } else { + _____ncell_38_1_1_1_1 = _____cell_38_1_1_1_1; + } + __a_2_1[37] = _____ncell_38_1_1_1_1; + ______split_136_37_1_1_1_1 = _____acc_36_1_1_1_1.i == _____acc_36_1_1_1_1.j; + _____cell_37_1_1_1_1 = __pre_a_1_1[36]; + if (______split_136_37_1_1_1_1 == _true) { + _____ncell_37_1_1_1_1 = _____acc_36_1_1_1_1.v; + } else { + _____ncell_37_1_1_1_1 = _____cell_37_1_1_1_1; + } + __a_2_1[36] = _____ncell_37_1_1_1_1; + ______split_136_36_1_1_1_1 = _____acc_35_1_1_1_1.i == _____acc_35_1_1_1_1.j; + _____cell_36_1_1_1_1 = __pre_a_1_1[35]; + if (______split_136_36_1_1_1_1 == _true) { + _____ncell_36_1_1_1_1 = _____acc_35_1_1_1_1.v; + } else { + _____ncell_36_1_1_1_1 = _____cell_36_1_1_1_1; + } + __a_2_1[35] = _____ncell_36_1_1_1_1; + ______split_136_35_1_1_1_1 = _____acc_34_1_1_1_1.i == _____acc_34_1_1_1_1.j; + _____cell_35_1_1_1_1 = __pre_a_1_1[34]; + if (______split_136_35_1_1_1_1 == _true) { + _____ncell_35_1_1_1_1 = _____acc_34_1_1_1_1.v; + } else { + _____ncell_35_1_1_1_1 = _____cell_35_1_1_1_1; + } + __a_2_1[34] = _____ncell_35_1_1_1_1; + ______split_136_34_1_1_1_1 = _____acc_33_1_1_1_1.i == _____acc_33_1_1_1_1.j; + _____cell_34_1_1_1_1 = __pre_a_1_1[33]; + if (______split_136_34_1_1_1_1 == _true) { + _____ncell_34_1_1_1_1 = _____acc_33_1_1_1_1.v; + } else { + _____ncell_34_1_1_1_1 = _____cell_34_1_1_1_1; + } + __a_2_1[33] = _____ncell_34_1_1_1_1; + ______split_136_33_1_1_1_1 = _____acc_32_1_1_1_1.i == _____acc_32_1_1_1_1.j; + _____cell_33_1_1_1_1 = __pre_a_1_1[32]; + if (______split_136_33_1_1_1_1 == _true) { + _____ncell_33_1_1_1_1 = _____acc_32_1_1_1_1.v; + } else { + _____ncell_33_1_1_1_1 = _____cell_33_1_1_1_1; + } + __a_2_1[32] = _____ncell_33_1_1_1_1; + ______split_136_32_1_1_1_1 = _____acc_31_1_1_1_1.i == _____acc_31_1_1_1_1.j; + _____cell_32_1_1_1_1 = __pre_a_1_1[31]; + if (______split_136_32_1_1_1_1 == _true) { + _____ncell_32_1_1_1_1 = _____acc_31_1_1_1_1.v; + } else { + _____ncell_32_1_1_1_1 = _____cell_32_1_1_1_1; + } + __a_2_1[31] = _____ncell_32_1_1_1_1; + ______split_136_31_1_1_1_1 = _____acc_30_1_1_1_1.i == _____acc_30_1_1_1_1.j; + _____cell_31_1_1_1_1 = __pre_a_1_1[30]; + if (______split_136_31_1_1_1_1 == _true) { + _____ncell_31_1_1_1_1 = _____acc_30_1_1_1_1.v; + } else { + _____ncell_31_1_1_1_1 = _____cell_31_1_1_1_1; + } + __a_2_1[30] = _____ncell_31_1_1_1_1; + ______split_136_30_1_1_1_1 = _____acc_29_1_1_1_1.i == _____acc_29_1_1_1_1.j; + _____cell_30_1_1_1_1 = __pre_a_1_1[29]; + if (______split_136_30_1_1_1_1 == _true) { + _____ncell_30_1_1_1_1 = _____acc_29_1_1_1_1.v; + } else { + _____ncell_30_1_1_1_1 = _____cell_30_1_1_1_1; + } + __a_2_1[29] = _____ncell_30_1_1_1_1; + ______split_136_29_1_1_1_1 = _____acc_28_1_1_1_1.i == _____acc_28_1_1_1_1.j; + _____cell_29_1_1_1_1 = __pre_a_1_1[28]; + if (______split_136_29_1_1_1_1 == _true) { + _____ncell_29_1_1_1_1 = _____acc_28_1_1_1_1.v; + } else { + _____ncell_29_1_1_1_1 = _____cell_29_1_1_1_1; + } + __a_2_1[28] = _____ncell_29_1_1_1_1; + ______split_136_28_1_1_1_1 = _____acc_27_1_1_1_1.i == _____acc_27_1_1_1_1.j; + _____cell_28_1_1_1_1 = __pre_a_1_1[27]; + if (______split_136_28_1_1_1_1 == _true) { + _____ncell_28_1_1_1_1 = _____acc_27_1_1_1_1.v; + } else { + _____ncell_28_1_1_1_1 = _____cell_28_1_1_1_1; + } + __a_2_1[27] = _____ncell_28_1_1_1_1; + ______split_136_27_1_1_1_1 = _____acc_26_1_1_1_1.i == _____acc_26_1_1_1_1.j; + _____cell_27_1_1_1_1 = __pre_a_1_1[26]; + if (______split_136_27_1_1_1_1 == _true) { + _____ncell_27_1_1_1_1 = _____acc_26_1_1_1_1.v; + } else { + _____ncell_27_1_1_1_1 = _____cell_27_1_1_1_1; + } + __a_2_1[26] = _____ncell_27_1_1_1_1; + ______split_136_26_1_1_1_1 = _____acc_25_1_1_1_1.i == _____acc_25_1_1_1_1.j; + _____cell_26_1_1_1_1 = __pre_a_1_1[25]; + if (______split_136_26_1_1_1_1 == _true) { + _____ncell_26_1_1_1_1 = _____acc_25_1_1_1_1.v; + } else { + _____ncell_26_1_1_1_1 = _____cell_26_1_1_1_1; + } + __a_2_1[25] = _____ncell_26_1_1_1_1; + ______split_136_25_1_1_1_1 = _____acc_24_1_1_1_1.i == _____acc_24_1_1_1_1.j; + _____cell_25_1_1_1_1 = __pre_a_1_1[24]; + if (______split_136_25_1_1_1_1 == _true) { + _____ncell_25_1_1_1_1 = _____acc_24_1_1_1_1.v; + } else { + _____ncell_25_1_1_1_1 = _____cell_25_1_1_1_1; + } + __a_2_1[24] = _____ncell_25_1_1_1_1; + ______split_136_24_1_1_1_1 = _____acc_23_1_1_1_1.i == _____acc_23_1_1_1_1.j; + _____cell_24_1_1_1_1 = __pre_a_1_1[23]; + if (______split_136_24_1_1_1_1 == _true) { + _____ncell_24_1_1_1_1 = _____acc_23_1_1_1_1.v; + } else { + _____ncell_24_1_1_1_1 = _____cell_24_1_1_1_1; + } + __a_2_1[23] = _____ncell_24_1_1_1_1; + ______split_136_23_1_1_1_1 = _____acc_22_1_1_1_1.i == _____acc_22_1_1_1_1.j; + _____cell_23_1_1_1_1 = __pre_a_1_1[22]; + if (______split_136_23_1_1_1_1 == _true) { + _____ncell_23_1_1_1_1 = _____acc_22_1_1_1_1.v; + } else { + _____ncell_23_1_1_1_1 = _____cell_23_1_1_1_1; + } + __a_2_1[22] = _____ncell_23_1_1_1_1; + ______split_136_22_1_1_1_1 = _____acc_21_1_1_1_1.i == _____acc_21_1_1_1_1.j; + _____cell_22_1_1_1_1 = __pre_a_1_1[21]; + if (______split_136_22_1_1_1_1 == _true) { + _____ncell_22_1_1_1_1 = _____acc_21_1_1_1_1.v; + } else { + _____ncell_22_1_1_1_1 = _____cell_22_1_1_1_1; + } + __a_2_1[21] = _____ncell_22_1_1_1_1; + ______split_136_21_1_1_1_1 = _____acc_20_1_1_1_1.i == _____acc_20_1_1_1_1.j; + _____cell_21_1_1_1_1 = __pre_a_1_1[20]; + if (______split_136_21_1_1_1_1 == _true) { + _____ncell_21_1_1_1_1 = _____acc_20_1_1_1_1.v; + } else { + _____ncell_21_1_1_1_1 = _____cell_21_1_1_1_1; + } + __a_2_1[20] = _____ncell_21_1_1_1_1; + ______split_136_20_1_1_1_1 = _____acc_19_1_1_1_1.i == _____acc_19_1_1_1_1.j; + _____cell_20_1_1_1_1 = __pre_a_1_1[19]; + if (______split_136_20_1_1_1_1 == _true) { + _____ncell_20_1_1_1_1 = _____acc_19_1_1_1_1.v; + } else { + _____ncell_20_1_1_1_1 = _____cell_20_1_1_1_1; + } + __a_2_1[19] = _____ncell_20_1_1_1_1; + ______split_136_19_1_1_1_1 = _____acc_18_1_1_1_1.i == _____acc_18_1_1_1_1.j; + _____cell_19_1_1_1_1 = __pre_a_1_1[18]; + if (______split_136_19_1_1_1_1 == _true) { + _____ncell_19_1_1_1_1 = _____acc_18_1_1_1_1.v; + } else { + _____ncell_19_1_1_1_1 = _____cell_19_1_1_1_1; + } + __a_2_1[18] = _____ncell_19_1_1_1_1; + ______split_136_18_1_1_1_1 = _____acc_17_1_1_1_1.i == _____acc_17_1_1_1_1.j; + _____cell_18_1_1_1_1 = __pre_a_1_1[17]; + if (______split_136_18_1_1_1_1 == _true) { + _____ncell_18_1_1_1_1 = _____acc_17_1_1_1_1.v; + } else { + _____ncell_18_1_1_1_1 = _____cell_18_1_1_1_1; + } + __a_2_1[17] = _____ncell_18_1_1_1_1; + ______split_136_17_1_1_1_1 = _____acc_16_1_1_1_1.i == _____acc_16_1_1_1_1.j; + _____cell_17_1_1_1_1 = __pre_a_1_1[16]; + if (______split_136_17_1_1_1_1 == _true) { + _____ncell_17_1_1_1_1 = _____acc_16_1_1_1_1.v; + } else { + _____ncell_17_1_1_1_1 = _____cell_17_1_1_1_1; + } + __a_2_1[16] = _____ncell_17_1_1_1_1; + ______split_136_16_1_1_1_1 = _____acc_15_1_1_1_1.i == _____acc_15_1_1_1_1.j; + _____cell_16_1_1_1_1 = __pre_a_1_1[15]; + if (______split_136_16_1_1_1_1 == _true) { + _____ncell_16_1_1_1_1 = _____acc_15_1_1_1_1.v; + } else { + _____ncell_16_1_1_1_1 = _____cell_16_1_1_1_1; + } + __a_2_1[15] = _____ncell_16_1_1_1_1; + ______split_136_15_1_1_1_1 = _____acc_14_1_1_1_1.i == _____acc_14_1_1_1_1.j; + _____cell_15_1_1_1_1 = __pre_a_1_1[14]; + if (______split_136_15_1_1_1_1 == _true) { + _____ncell_15_1_1_1_1 = _____acc_14_1_1_1_1.v; + } else { + _____ncell_15_1_1_1_1 = _____cell_15_1_1_1_1; + } + __a_2_1[14] = _____ncell_15_1_1_1_1; + ______split_136_14_1_1_1_1 = _____acc_13_1_1_1_1.i == _____acc_13_1_1_1_1.j; + _____cell_14_1_1_1_1 = __pre_a_1_1[13]; + if (______split_136_14_1_1_1_1 == _true) { + _____ncell_14_1_1_1_1 = _____acc_13_1_1_1_1.v; + } else { + _____ncell_14_1_1_1_1 = _____cell_14_1_1_1_1; + } + __a_2_1[13] = _____ncell_14_1_1_1_1; + ______split_136_13_1_1_1_1 = _____acc_12_1_1_1_1.i == _____acc_12_1_1_1_1.j; + _____cell_13_1_1_1_1 = __pre_a_1_1[12]; + if (______split_136_13_1_1_1_1 == _true) { + _____ncell_13_1_1_1_1 = _____acc_12_1_1_1_1.v; + } else { + _____ncell_13_1_1_1_1 = _____cell_13_1_1_1_1; + } + __a_2_1[12] = _____ncell_13_1_1_1_1; + ______split_136_12_1_1_1_1 = _____acc_11_1_1_1_1.i == _____acc_11_1_1_1_1.j; + _____cell_12_1_1_1_1 = __pre_a_1_1[11]; + if (______split_136_12_1_1_1_1 == _true) { + _____ncell_12_1_1_1_1 = _____acc_11_1_1_1_1.v; + } else { + _____ncell_12_1_1_1_1 = _____cell_12_1_1_1_1; + } + __a_2_1[11] = _____ncell_12_1_1_1_1; + ______split_136_11_1_1_1_1 = _____acc_10_1_1_1_1.i == _____acc_10_1_1_1_1.j; + _____cell_11_1_1_1_1 = __pre_a_1_1[10]; + if (______split_136_11_1_1_1_1 == _true) { + _____ncell_11_1_1_1_1 = _____acc_10_1_1_1_1.v; + } else { + _____ncell_11_1_1_1_1 = _____cell_11_1_1_1_1; + } + __a_2_1[10] = _____ncell_11_1_1_1_1; + ______split_136_10_1_1_1_1 = _____acc_9_1_1_1_1.i == _____acc_9_1_1_1_1.j; + _____cell_10_1_1_1_1 = __pre_a_1_1[9]; + if (______split_136_10_1_1_1_1 == _true) { + _____ncell_10_1_1_1_1 = _____acc_9_1_1_1_1.v; + } else { + _____ncell_10_1_1_1_1 = _____cell_10_1_1_1_1; + } + __a_2_1[9] = _____ncell_10_1_1_1_1; + ______split_136_9_1_1_1_1 = _____acc_8_1_1_1_1.i == _____acc_8_1_1_1_1.j; + _____cell_9_1_1_1_1 = __pre_a_1_1[8]; + if (______split_136_9_1_1_1_1 == _true) { + _____ncell_9_1_1_1_1 = _____acc_8_1_1_1_1.v; + } else { + _____ncell_9_1_1_1_1 = _____cell_9_1_1_1_1; + } + __a_2_1[8] = _____ncell_9_1_1_1_1; + ______split_136_8_1_1_1_1 = _____acc_7_1_1_1_1.i == _____acc_7_1_1_1_1.j; + _____cell_8_1_1_1_1 = __pre_a_1_1[7]; + if (______split_136_8_1_1_1_1 == _true) { + _____ncell_8_1_1_1_1 = _____acc_7_1_1_1_1.v; + } else { + _____ncell_8_1_1_1_1 = _____cell_8_1_1_1_1; + } + __a_2_1[7] = _____ncell_8_1_1_1_1; + ______split_136_7_1_1_1_1 = _____acc_6_1_1_1_1.i == _____acc_6_1_1_1_1.j; + _____cell_7_1_1_1_1 = __pre_a_1_1[6]; + if (______split_136_7_1_1_1_1 == _true) { + _____ncell_7_1_1_1_1 = _____acc_6_1_1_1_1.v; + } else { + _____ncell_7_1_1_1_1 = _____cell_7_1_1_1_1; + } + __a_2_1[6] = _____ncell_7_1_1_1_1; + ______split_136_6_1_1_1_1 = _____acc_5_1_1_1_1.i == _____acc_5_1_1_1_1.j; + _____cell_6_1_1_1_1 = __pre_a_1_1[5]; + if (______split_136_6_1_1_1_1 == _true) { + _____ncell_6_1_1_1_1 = _____acc_5_1_1_1_1.v; + } else { + _____ncell_6_1_1_1_1 = _____cell_6_1_1_1_1; + } + __a_2_1[5] = _____ncell_6_1_1_1_1; + ______split_136_5_1_1_1_1 = _____acc_4_1_1_1_1.i == _____acc_4_1_1_1_1.j; + _____cell_5_1_1_1_1 = __pre_a_1_1[4]; + if (______split_136_5_1_1_1_1 == _true) { + _____ncell_5_1_1_1_1 = _____acc_4_1_1_1_1.v; + } else { + _____ncell_5_1_1_1_1 = _____cell_5_1_1_1_1; + } + __a_2_1[4] = _____ncell_5_1_1_1_1; + ______split_136_4_1_1_1_1 = _____acc_3_1_1_1_1.i == _____acc_3_1_1_1_1.j; + _____cell_4_1_1_1_1 = __pre_a_1_1[3]; + if (______split_136_4_1_1_1_1 == _true) { + _____ncell_4_1_1_1_1 = _____acc_3_1_1_1_1.v; + } else { + _____ncell_4_1_1_1_1 = _____cell_4_1_1_1_1; + } + __a_2_1[3] = _____ncell_4_1_1_1_1; + ______split_136_3_1_1_1_1 = _____acc_2_1_1_1_1.i == _____acc_2_1_1_1_1.j; + _____cell_3_1_1_1_1 = __pre_a_1_1[2]; + if (______split_136_3_1_1_1_1 == _true) { + _____ncell_3_1_1_1_1 = _____acc_2_1_1_1_1.v; + } else { + _____ncell_3_1_1_1_1 = _____cell_3_1_1_1_1; + } + __a_2_1[2] = _____ncell_3_1_1_1_1; + ______split_136_2_1_1_1_1 = _____acc_1_1_1_1_1.i == _____acc_1_1_1_1_1.j; + _____cell_2_1_1_1_1 = __pre_a_1_1[1]; + if (______split_136_2_1_1_1_1 == _true) { + _____ncell_2_1_1_1_1 = _____acc_1_1_1_1_1.v; + } else { + _____ncell_2_1_1_1_1 = _____cell_2_1_1_1_1; + } + __a_2_1[1] = _____ncell_2_1_1_1_1; + ______split_136_1_1_1_1_1 = ____split_3_1_1_1.i == ____split_3_1_1_1.j; + _____cell_1_1_1_1_1 = __pre_a_1_1[0]; + if (______split_136_1_1_1_1_1 == _true) { + _____ncell_1_1_1_1_1 = ____split_3_1_1_1.v; + } else { + _____ncell_1_1_1_1_1 = _____cell_1_1_1_1_1; + } + __a_2_1[0] = _____ncell_1_1_1_1_1; + ___i1_1_1_1 = 0.0; + ____acc_50_1_1_1 = ___i1_1_1_1 + __a_2_1[0]; + ____acc_51_1_1_1 = ____acc_50_1_1_1 + __a_2_1[1]; + ____acc_52_1_1_1 = ____acc_51_1_1_1 + __a_2_1[2]; + ____acc_53_1_1_1 = ____acc_52_1_1_1 + __a_2_1[3]; + ____acc_54_1_1_1 = ____acc_53_1_1_1 + __a_2_1[4]; + ____acc_55_1_1_1 = ____acc_54_1_1_1 + __a_2_1[5]; + ____acc_56_1_1_1 = ____acc_55_1_1_1 + __a_2_1[6]; + ____acc_57_1_1_1 = ____acc_56_1_1_1 + __a_2_1[7]; + ____acc_58_1_1_1 = ____acc_57_1_1_1 + __a_2_1[8]; + ____acc_59_1_1_1 = ____acc_58_1_1_1 + __a_2_1[9]; + ____acc_60_1_1_1 = ____acc_59_1_1_1 + __a_2_1[10]; + ____acc_61_1_1_1 = ____acc_60_1_1_1 + __a_2_1[11]; + ____acc_62_1_1_1 = ____acc_61_1_1_1 + __a_2_1[12]; + ____acc_63_1_1_1 = ____acc_62_1_1_1 + __a_2_1[13]; + ____acc_64_1_1_1 = ____acc_63_1_1_1 + __a_2_1[14]; + ____acc_65_1_1_1 = ____acc_64_1_1_1 + __a_2_1[15]; + ____acc_66_1_1_1 = ____acc_65_1_1_1 + __a_2_1[16]; + ____acc_67_1_1_1 = ____acc_66_1_1_1 + __a_2_1[17]; + ____acc_68_1_1_1 = ____acc_67_1_1_1 + __a_2_1[18]; + ____acc_69_1_1_1 = ____acc_68_1_1_1 + __a_2_1[19]; + ____acc_70_1_1_1 = ____acc_69_1_1_1 + __a_2_1[20]; + ____acc_71_1_1_1 = ____acc_70_1_1_1 + __a_2_1[21]; + ____acc_72_1_1_1 = ____acc_71_1_1_1 + __a_2_1[22]; + ____acc_73_1_1_1 = ____acc_72_1_1_1 + __a_2_1[23]; + ____acc_74_1_1_1 = ____acc_73_1_1_1 + __a_2_1[24]; + ____acc_75_1_1_1 = ____acc_74_1_1_1 + __a_2_1[25]; + ____acc_76_1_1_1 = ____acc_75_1_1_1 + __a_2_1[26]; + ____acc_77_1_1_1 = ____acc_76_1_1_1 + __a_2_1[27]; + ____acc_78_1_1_1 = ____acc_77_1_1_1 + __a_2_1[28]; + ____acc_79_1_1_1 = ____acc_78_1_1_1 + __a_2_1[29]; + ____acc_80_1_1_1 = ____acc_79_1_1_1 + __a_2_1[30]; + ____acc_81_1_1_1 = ____acc_80_1_1_1 + __a_2_1[31]; + ____acc_82_1_1_1 = ____acc_81_1_1_1 + __a_2_1[32]; + ____acc_83_1_1_1 = ____acc_82_1_1_1 + __a_2_1[33]; + ____acc_84_1_1_1 = ____acc_83_1_1_1 + __a_2_1[34]; + ____acc_85_1_1_1 = ____acc_84_1_1_1 + __a_2_1[35]; + ____acc_86_1_1_1 = ____acc_85_1_1_1 + __a_2_1[36]; + ____acc_87_1_1_1 = ____acc_86_1_1_1 + __a_2_1[37]; + ____acc_88_1_1_1 = ____acc_87_1_1_1 + __a_2_1[38]; + ____acc_89_1_1_1 = ____acc_88_1_1_1 + __a_2_1[39]; + ____acc_90_1_1_1 = ____acc_89_1_1_1 + __a_2_1[40]; + ____acc_91_1_1_1 = ____acc_90_1_1_1 + __a_2_1[41]; + ____acc_92_1_1_1 = ____acc_91_1_1_1 + __a_2_1[42]; + ____acc_93_1_1_1 = ____acc_92_1_1_1 + __a_2_1[43]; + ____acc_94_1_1_1 = ____acc_93_1_1_1 + __a_2_1[44]; + ____acc_95_1_1_1 = ____acc_94_1_1_1 + __a_2_1[45]; + ____acc_96_1_1_1 = ____acc_95_1_1_1 + __a_2_1[46]; + ____acc_97_1_1_1 = ____acc_96_1_1_1 + __a_2_1[47]; + ____acc_98_1_1_1 = ____acc_97_1_1_1 + __a_2_1[48]; + __split_84_1 = ____acc_98_1_1_1 + __a_2_1[49]; + __split_86_1 = __split_84_1; + break; +} + ___split_10_2_1 = __x_13_1 < __split_86_1; + if (___split_10_2_1 == _true) { + _t_3 = __split_86_1; + } else { + _t_3 = __x_13_1; + } + Lustre_pre_set(_t_3,&ctx->Lustre_pre_ctx_tab[2]); + switch (_TickOrRot_1){ + case _true: + ______split_137_50_1_2_1_1 = _____acc_49_1_2_1_1.i + 1; + ___dummy_2_1_1.i = ______split_137_50_1_2_1_1; + ___dummy_2_1_1.j = _____acc_49_1_2_1_1.j; + ___dummy_2_1_1.v = _____acc_49_1_2_1_1.v; + Lustre_pre_3_set(__a_3_1,&ctx->Lustre_pre_3_ctx_tab[0]); + Lustre_pre_2_set(__i_2_1,&ctx->Lustre_pre_2_ctx_tab[1]); + ______split_137_50_1_1_1_1 = _____acc_49_1_1_1_1.i + 1; + ___dummy_1_1_1.i = ______split_137_50_1_1_1_1; + ___dummy_1_1_1.j = _____acc_49_1_1_1_1.j; + ___dummy_1_1_1.v = _____acc_49_1_1_1_1.v; + Lustre_pre_3_set(__a_2_1,&ctx->Lustre_pre_3_ctx_tab[1]); + Lustre_pre_2_set(__i_1_1,&ctx->Lustre_pre_2_ctx_tab[2]); + break; +} + Lustre_slash_step(_d_1,_t_3,&__split_87_1); + __split_88_1 = __split_87_1 * 3.6; + Lustre_pre_set(__split_88_1,&ctx->Lustre_pre_ctx_tab[3]); + Lustre_pre_2_get(&__split_18_1,&ctx->Lustre_pre_2_ctx_tab[3]); + Lustre_pre_2_set(_st_2,&ctx->Lustre_pre_2_ctx_tab[3]); + Lustre_arrow_2_step(convertible_locked,__split_18_1,&_pst_3,&ctx->Lustre_arrow_2_ctx_tab[3]); + switch (_st_2){ + case convertible_in_motion: + _Tick_on_in_motion_1 = Tick; + switch (_Tick_on_in_motion_1){ + case _true: + Lustre_pre_get(&___split_33_1_1,&ctx->Lustre_pre_ctx_tab[5]); + Lustre_arrow_step(0.0,___split_33_1_1,&__pRoof_Percent_1_1,&ctx->Lustre_arrow_ctx_tab[5]); + switch (__st_1_1){ + case convertible_slow: + ___split_47_1_1 = __pRoof_Percent_1_1; + ___split_34_1_1 = __pRoof_Percent_1_1; + ___split_35_1_1 = 100.0 - ___split_34_1_1; + Lustre_slash_step(___split_35_1_1,5.0,&___split_36_1_1); + ____presqrt_5_4_1_1 = 1.0; + Lustre_slash_step(___split_36_1_1,____presqrt_5_4_1_1,&_____split_120_1_4_1_1); + _____split_121_1_4_1_1 = ____presqrt_5_4_1_1 + _____split_120_1_4_1_1; + ____sqrt_5_4_1_1 = 0.5 * _____split_121_1_4_1_1; + _____split_118_1_4_1_1 = ____presqrt_5_4_1_1 - ____sqrt_5_4_1_1; + ______split_2_5_1_4_1_1 = - _____split_118_1_4_1_1; + ______split_1_5_1_4_1_1 = _____split_118_1_4_1_1 >= 0.0; + if (______split_1_5_1_4_1_1 == _true) { + _____split_119_1_4_1_1 = _____split_118_1_4_1_1; + } else { + _____split_119_1_4_1_1 = ______split_2_5_1_4_1_1; + } + ____ecart_5_4_1_1 = _____split_119_1_4_1_1 < 0.0005; + switch (____ecart_5_4_1_1){ + case _false: + _____split_123_1_4_1_1 = ____sqrt_5_4_1_1; + _____split_122_1_4_1_1 = ___split_36_1_1; + Lustre_slash_step(_____split_122_1_4_1_1,_____split_123_1_4_1_1,&______split_112_1_1_4_1_1); + ______split_113_1_1_4_1_1 = _____split_123_1_4_1_1 + ______split_112_1_1_4_1_1; + _____sqrt_4_1_4_1_1 = 0.5 * ______split_113_1_1_4_1_1; + ______split_110_1_1_4_1_1 = _____split_123_1_4_1_1 - _____sqrt_4_1_4_1_1; + _______split_2_4_1_1_4_1_1 = - ______split_110_1_1_4_1_1; + _______split_1_4_1_1_4_1_1 = ______split_110_1_1_4_1_1 >= 0.0; + if (_______split_1_4_1_1_4_1_1 == _true) { + ______split_111_1_1_4_1_1 = ______split_110_1_1_4_1_1; + } else { + ______split_111_1_1_4_1_1 = _______split_2_4_1_1_4_1_1; + } + _____ecart_4_1_4_1_1 = ______split_111_1_1_4_1_1 < 0.0005; + switch (_____ecart_4_1_4_1_1){ + case _false: + ______split_115_1_1_4_1_1 = _____sqrt_4_1_4_1_1; + ______split_114_1_1_4_1_1 = _____split_122_1_4_1_1; + Lustre_slash_step(______split_114_1_1_4_1_1,______split_115_1_1_4_1_1,&_______split_104_1_1_1_4_1_1); + _______split_105_1_1_1_4_1_1 = ______split_115_1_1_4_1_1 + _______split_104_1_1_1_4_1_1; + ______sqrt_3_1_1_4_1_1 = 0.5 * _______split_105_1_1_1_4_1_1; + _______split_102_1_1_1_4_1_1 = ______split_115_1_1_4_1_1 - ______sqrt_3_1_1_4_1_1; + ________split_2_3_1_1_1_4_1_1 = - _______split_102_1_1_1_4_1_1; + ________split_1_3_1_1_1_4_1_1 = _______split_102_1_1_1_4_1_1 >= 0.0; + if (________split_1_3_1_1_1_4_1_1 == _true) { + _______split_103_1_1_1_4_1_1 = _______split_102_1_1_1_4_1_1; + } else { + _______split_103_1_1_1_4_1_1 = ________split_2_3_1_1_1_4_1_1; + } + ______ecart_3_1_1_4_1_1 = _______split_103_1_1_1_4_1_1 < 0.0005; + switch (______ecart_3_1_1_4_1_1){ + case _false: + _______split_107_1_1_1_4_1_1 = ______sqrt_3_1_1_4_1_1; + _______split_106_1_1_1_4_1_1 = ______split_114_1_1_4_1_1; + Lustre_slash_step(_______split_106_1_1_1_4_1_1,_______split_107_1_1_1_4_1_1,&________split_96_1_1_1_1_4_1_1); + ________split_97_1_1_1_1_4_1_1 = _______split_107_1_1_1_4_1_1 + ________split_96_1_1_1_1_4_1_1; + _______sqrt_2_1_1_1_4_1_1 = 0.5 * ________split_97_1_1_1_1_4_1_1; + ________split_94_1_1_1_1_4_1_1 = _______split_107_1_1_1_4_1_1 - _______sqrt_2_1_1_1_4_1_1; + _________split_2_2_1_1_1_1_4_1_1 = - ________split_94_1_1_1_1_4_1_1; + _________split_1_2_1_1_1_1_4_1_1 = ________split_94_1_1_1_1_4_1_1 >= 0.0; + if (_________split_1_2_1_1_1_1_4_1_1 == _true) { + ________split_95_1_1_1_1_4_1_1 = ________split_94_1_1_1_1_4_1_1; + } else { + ________split_95_1_1_1_1_4_1_1 = _________split_2_2_1_1_1_1_4_1_1; + } + _______ecart_2_1_1_1_4_1_1 = ________split_95_1_1_1_1_4_1_1 < 0.0005; + switch (_______ecart_2_1_1_1_4_1_1){ + case _false: + ________split_98_1_1_1_1_4_1_1 = _______split_106_1_1_1_4_1_1; + ________split_99_1_1_1_1_4_1_1 = _______sqrt_2_1_1_1_4_1_1; + Lustre_slash_step(________split_98_1_1_1_1_4_1_1,________split_99_1_1_1_1_4_1_1,&_________split_92_1_1_1_1_1_4_1_1); + _________split_93_1_1_1_1_1_4_1_1 = ________split_99_1_1_1_1_4_1_1 + _________split_92_1_1_1_1_1_4_1_1; + ________sqrt_1_1_1_1_1_4_1_1 = 0.5 * _________split_93_1_1_1_1_1_4_1_1; + _______split_108_1_1_1_4_1_1 = ________sqrt_1_1_1_1_1_4_1_1; + break; + case _true: + ________split_101_1_1_1_1_4_1_1 = _______sqrt_2_1_1_1_4_1_1; + _______split_108_1_1_1_4_1_1 = ________split_101_1_1_1_1_4_1_1; + break; +} + ______split_116_1_1_4_1_1 = _______split_108_1_1_1_4_1_1; + break; + case _true: + _______split_109_1_1_1_4_1_1 = ______sqrt_3_1_1_4_1_1; + ______split_116_1_1_4_1_1 = _______split_109_1_1_1_4_1_1; + break; +} + _____split_124_1_4_1_1 = ______split_116_1_1_4_1_1; + break; + case _true: + ______split_117_1_1_4_1_1 = _____sqrt_4_1_4_1_1; + _____split_124_1_4_1_1 = ______split_117_1_1_4_1_1; + break; +} + ___split_37_1_1 = _____split_124_1_4_1_1; + break; + case _true: + _____split_125_1_4_1_1 = ____sqrt_5_4_1_1; + ___split_37_1_1 = _____split_125_1_4_1_1; + break; +} + ____presqrt_5_3_1_1 = 1.0; + Lustre_slash_step(___split_37_1_1,____presqrt_5_3_1_1,&_____split_120_1_3_1_1); + _____split_121_1_3_1_1 = ____presqrt_5_3_1_1 + _____split_120_1_3_1_1; + ____sqrt_5_3_1_1 = 0.5 * _____split_121_1_3_1_1; + _____split_118_1_3_1_1 = ____presqrt_5_3_1_1 - ____sqrt_5_3_1_1; + ______split_2_5_1_3_1_1 = - _____split_118_1_3_1_1; + ______split_1_5_1_3_1_1 = _____split_118_1_3_1_1 >= 0.0; + if (______split_1_5_1_3_1_1 == _true) { + _____split_119_1_3_1_1 = _____split_118_1_3_1_1; + } else { + _____split_119_1_3_1_1 = ______split_2_5_1_3_1_1; + } + ____ecart_5_3_1_1 = _____split_119_1_3_1_1 < 0.0005; + switch (____ecart_5_3_1_1){ + case _false: + _____split_123_1_3_1_1 = ____sqrt_5_3_1_1; + _____split_122_1_3_1_1 = ___split_37_1_1; + Lustre_slash_step(_____split_122_1_3_1_1,_____split_123_1_3_1_1,&______split_112_1_1_3_1_1); + ______split_113_1_1_3_1_1 = _____split_123_1_3_1_1 + ______split_112_1_1_3_1_1; + _____sqrt_4_1_3_1_1 = 0.5 * ______split_113_1_1_3_1_1; + ______split_110_1_1_3_1_1 = _____split_123_1_3_1_1 - _____sqrt_4_1_3_1_1; + _______split_2_4_1_1_3_1_1 = - ______split_110_1_1_3_1_1; + _______split_1_4_1_1_3_1_1 = ______split_110_1_1_3_1_1 >= 0.0; + if (_______split_1_4_1_1_3_1_1 == _true) { + ______split_111_1_1_3_1_1 = ______split_110_1_1_3_1_1; + } else { + ______split_111_1_1_3_1_1 = _______split_2_4_1_1_3_1_1; + } + _____ecart_4_1_3_1_1 = ______split_111_1_1_3_1_1 < 0.0005; + switch (_____ecart_4_1_3_1_1){ + case _false: + ______split_115_1_1_3_1_1 = _____sqrt_4_1_3_1_1; + ______split_114_1_1_3_1_1 = _____split_122_1_3_1_1; + Lustre_slash_step(______split_114_1_1_3_1_1,______split_115_1_1_3_1_1,&_______split_104_1_1_1_3_1_1); + _______split_105_1_1_1_3_1_1 = ______split_115_1_1_3_1_1 + _______split_104_1_1_1_3_1_1; + ______sqrt_3_1_1_3_1_1 = 0.5 * _______split_105_1_1_1_3_1_1; + _______split_102_1_1_1_3_1_1 = ______split_115_1_1_3_1_1 - ______sqrt_3_1_1_3_1_1; + ________split_2_3_1_1_1_3_1_1 = - _______split_102_1_1_1_3_1_1; + ________split_1_3_1_1_1_3_1_1 = _______split_102_1_1_1_3_1_1 >= 0.0; + if (________split_1_3_1_1_1_3_1_1 == _true) { + _______split_103_1_1_1_3_1_1 = _______split_102_1_1_1_3_1_1; + } else { + _______split_103_1_1_1_3_1_1 = ________split_2_3_1_1_1_3_1_1; + } + ______ecart_3_1_1_3_1_1 = _______split_103_1_1_1_3_1_1 < 0.0005; + switch (______ecart_3_1_1_3_1_1){ + case _false: + _______split_107_1_1_1_3_1_1 = ______sqrt_3_1_1_3_1_1; + _______split_106_1_1_1_3_1_1 = ______split_114_1_1_3_1_1; + Lustre_slash_step(_______split_106_1_1_1_3_1_1,_______split_107_1_1_1_3_1_1,&________split_96_1_1_1_1_3_1_1); + ________split_97_1_1_1_1_3_1_1 = _______split_107_1_1_1_3_1_1 + ________split_96_1_1_1_1_3_1_1; + _______sqrt_2_1_1_1_3_1_1 = 0.5 * ________split_97_1_1_1_1_3_1_1; + ________split_94_1_1_1_1_3_1_1 = _______split_107_1_1_1_3_1_1 - _______sqrt_2_1_1_1_3_1_1; + _________split_2_2_1_1_1_1_3_1_1 = - ________split_94_1_1_1_1_3_1_1; + _________split_1_2_1_1_1_1_3_1_1 = ________split_94_1_1_1_1_3_1_1 >= 0.0; + if (_________split_1_2_1_1_1_1_3_1_1 == _true) { + ________split_95_1_1_1_1_3_1_1 = ________split_94_1_1_1_1_3_1_1; + } else { + ________split_95_1_1_1_1_3_1_1 = _________split_2_2_1_1_1_1_3_1_1; + } + _______ecart_2_1_1_1_3_1_1 = ________split_95_1_1_1_1_3_1_1 < 0.0005; + switch (_______ecart_2_1_1_1_3_1_1){ + case _false: + ________split_98_1_1_1_1_3_1_1 = _______split_106_1_1_1_3_1_1; + ________split_99_1_1_1_1_3_1_1 = _______sqrt_2_1_1_1_3_1_1; + Lustre_slash_step(________split_98_1_1_1_1_3_1_1,________split_99_1_1_1_1_3_1_1,&_________split_92_1_1_1_1_1_3_1_1); + _________split_93_1_1_1_1_1_3_1_1 = ________split_99_1_1_1_1_3_1_1 + _________split_92_1_1_1_1_1_3_1_1; + ________sqrt_1_1_1_1_1_3_1_1 = 0.5 * _________split_93_1_1_1_1_1_3_1_1; + _______split_108_1_1_1_3_1_1 = ________sqrt_1_1_1_1_1_3_1_1; + break; + case _true: + ________split_101_1_1_1_1_3_1_1 = _______sqrt_2_1_1_1_3_1_1; + _______split_108_1_1_1_3_1_1 = ________split_101_1_1_1_1_3_1_1; + break; +} + ______split_116_1_1_3_1_1 = _______split_108_1_1_1_3_1_1; + break; + case _true: + _______split_109_1_1_1_3_1_1 = ______sqrt_3_1_1_3_1_1; + ______split_116_1_1_3_1_1 = _______split_109_1_1_1_3_1_1; + break; +} + _____split_124_1_3_1_1 = ______split_116_1_1_3_1_1; + break; + case _true: + ______split_117_1_1_3_1_1 = _____sqrt_4_1_3_1_1; + _____split_124_1_3_1_1 = ______split_117_1_1_3_1_1; + break; +} + __slow_it_down_1_1 = _____split_124_1_3_1_1; + break; + case _true: + _____split_125_1_3_1_1 = ____sqrt_5_3_1_1; + __slow_it_down_1_1 = _____split_125_1_3_1_1; + break; +} + break; +} + Lustre_slash_step(5.,0.1,&___split_38_1_1); + Lustre_slash_step(100.,___split_38_1_1,&__kh_1_1); + switch (__st_1_1){ + case convertible_slow: + ___split_45_1_1 = __kh_1_1; + ___split_46_1_1 = __slow_it_down_1_1 * ___split_45_1_1; + ___split_48_1_1 = ___split_46_1_1 + ___split_47_1_1; + __Roof_Percent_1_1 = ___split_48_1_1; + break; +} + ___split_43_1_1 = __kh_1_1 + __pRoof_Percent_1_1; + switch (__st_1_1){ + case convertible_fast: + ___split_44_1_1 = ___split_43_1_1; + __Roof_Percent_1_1 = ___split_44_1_1; + ___split_42_1_1 = 10.0; + break; + case convertible_wait: + __Roof_Percent_1_1 = 0.0; + ___split_42_1_1 = 0.0; + break; + case convertible_slow: + ___split_41_1_1 = 10.0 * __slow_it_down_1_1; + ___split_42_1_1 = ___split_41_1_1; + break; +} + __split_25_1 = ___split_42_1_1; + break; +} + Lustre_pre_get(&___split_39_1_1,&ctx->Lustre_pre_ctx_tab[4]); + Lustre_arrow_step(0.0,___split_39_1_1,&__pRoof_Speed_1_1,&ctx->Lustre_arrow_ctx_tab[4]); + switch (_Tick_on_in_motion_1){ + case _false: + ___split_40_1_1 = __pRoof_Speed_1_1; + __split_25_1 = ___split_40_1_1; + break; +} + Lustre_pre_set(__split_25_1,&ctx->Lustre_pre_ctx_tab[4]); + switch (_Tick_on_in_motion_1){ + case _true: + switch (__st_1_1){ + case convertible_slow: + switch (____ecart_5_3_1_1){ + case _false: + switch (_____ecart_4_1_3_1_1){ + case _false: + switch (______ecart_3_1_1_3_1_1){ + case _false: + switch (_______ecart_2_1_1_1_3_1_1){ + case _false: + _________split_90_1_1_1_1_1_3_1_1 = ________split_99_1_1_1_1_3_1_1 - ________sqrt_1_1_1_1_1_3_1_1; + __________split_2_1_1_1_1_1_1_3_1_1 = - _________split_90_1_1_1_1_1_3_1_1; + __________split_1_1_1_1_1_1_1_3_1_1 = _________split_90_1_1_1_1_1_3_1_1 >= 0.0; + if (__________split_1_1_1_1_1_1_1_3_1_1 == _true) { + _________split_91_1_1_1_1_1_3_1_1 = _________split_90_1_1_1_1_1_3_1_1; + } else { + _________split_91_1_1_1_1_1_3_1_1 = __________split_2_1_1_1_1_1_1_3_1_1; + } + ________ecart_1_1_1_1_1_3_1_1 = _________split_91_1_1_1_1_1_3_1_1 < 0.0005; + break; +} + break; +} + break; +} + break; +} + switch (____ecart_5_4_1_1){ + case _false: + switch (_____ecart_4_1_4_1_1){ + case _false: + switch (______ecart_3_1_1_4_1_1){ + case _false: + switch (_______ecart_2_1_1_1_4_1_1){ + case _false: + _________split_90_1_1_1_1_1_4_1_1 = ________split_99_1_1_1_1_4_1_1 - ________sqrt_1_1_1_1_1_4_1_1; + __________split_2_1_1_1_1_1_1_4_1_1 = - _________split_90_1_1_1_1_1_4_1_1; + __________split_1_1_1_1_1_1_1_4_1_1 = _________split_90_1_1_1_1_1_4_1_1 >= 0.0; + if (__________split_1_1_1_1_1_1_1_4_1_1 == _true) { + _________split_91_1_1_1_1_1_4_1_1 = _________split_90_1_1_1_1_1_4_1_1; + } else { + _________split_91_1_1_1_1_1_4_1_1 = __________split_2_1_1_1_1_1_1_4_1_1; + } + ________ecart_1_1_1_1_1_4_1_1 = _________split_91_1_1_1_1_1_4_1_1 < 0.0005; + break; +} + break; +} + break; +} + break; +} + break; +} + Lustre_pre_set(__Roof_Percent_1_1,&ctx->Lustre_pre_ctx_tab[5]); + switch (__pst_2_1){ + case convertible_slow: + ___split_30_1_1 = __pRoof_Percent_1_1; + ___split_31_1_1 = ___split_30_1_1 < 100.0; + if (___split_31_1_1 == _true) { + ___split_32_1_1 = convertible_slow; + } else { + ___split_32_1_1 = convertible_wait; + } + __st_1_1 = ___split_32_1_1; + break; + case convertible_fast: + ___split_27_1_1 = __pRoof_Percent_1_1; + ___split_28_1_1 = ___split_27_1_1 < 85.0; + if (___split_28_1_1 == _true) { + ___split_29_1_1 = convertible_fast; + } else { + ___split_29_1_1 = convertible_slow; + } + __st_1_1 = ___split_29_1_1; + break; + case convertible_wait: + __st_1_1 = convertible_fast; + break; +} + Lustre_pre_2_get(&___split_26_1_1,&ctx->Lustre_pre_2_ctx_tab[4]); + Lustre_arrow_2_step(convertible_wait,___split_26_1_1,&__pst_2_1,&ctx->Lustre_arrow_2_ctx_tab[4]); + Lustre_pre_2_set(__st_1_1,&ctx->Lustre_pre_2_ctx_tab[4]); + break; +} + *Roof_Speed = __split_25_1; + break; + case convertible_locked: + __split_24_1 = 0.0; + *Roof_Speed = __split_24_1; + break; +} + _split_8 = OnOff & Start; + _split_9 = ! _split_8; + +} // End of convertible_main_step + diff --git a/test/monniaux/lustre-convertible-en-2cgc/convertible_main.h b/test/monniaux/lustre-convertible-en-2cgc/convertible_main.h new file mode 100644 index 00000000..4785db8a --- /dev/null +++ b/test/monniaux/lustre-convertible-en-2cgc/convertible_main.h @@ -0,0 +1,52 @@ +/* This file was generated by lv6 version master.737 (2727a7744111c84f7984634d2bd3ad6f7c6c7ff9). */ +/* lv6 -2c -en -2cgc -n main convertible.lus */ +/* on vanoise the 09/05/2019 at 15:28:26 */ + +#include <stdlib.h> +#include <string.h> + +#include "lustre_types.h" +#include "lustre_consts.h" + +#ifndef _convertible_main_H_FILE +#define _convertible_main_H_FILE +void Lustre_arrow_2_ctx_reset(Lustre_arrow_2_ctx_type* ctx); +void Lustre_arrow_2_ctx_init(Lustre_arrow_2_ctx_type* ctx); +void Lustre_arrow_2_step(_integer ,_integer ,_integer *,Lustre_arrow_2_ctx_type*); + +void Lustre_arrow_ctx_reset(Lustre_arrow_ctx_type* ctx); +void Lustre_arrow_ctx_init(Lustre_arrow_ctx_type* ctx); +void Lustre_arrow_step(_real ,_real ,_real *,Lustre_arrow_ctx_type*); + +void Lustre_arrow_3_ctx_reset(Lustre_arrow_3_ctx_type* ctx); +void Lustre_arrow_3_ctx_init(Lustre_arrow_3_ctx_type* ctx); +void Lustre_arrow_3_step(_real [50],_real [50],_real [50]/*out*/,Lustre_arrow_3_ctx_type*); + +void Lustre_hat_step(_real ,_real [50]/*out*/); + +void Lustre_pre_2_ctx_reset(Lustre_pre_2_ctx_type* ctx); +void Lustre_pre_2_ctx_init(Lustre_pre_2_ctx_type* ctx); +void Lustre_pre_2_get(_integer *,Lustre_pre_2_ctx_type*); + +void Lustre_pre_2_set(_integer ,Lustre_pre_2_ctx_type*); + +void Lustre_pre_ctx_reset(Lustre_pre_ctx_type* ctx); +void Lustre_pre_ctx_init(Lustre_pre_ctx_type* ctx); +void Lustre_pre_get(_real *,Lustre_pre_ctx_type*); + +void Lustre_pre_set(_real ,Lustre_pre_ctx_type*); + +void Lustre_pre_3_ctx_reset(Lustre_pre_3_ctx_type* ctx); +void Lustre_pre_3_ctx_init(Lustre_pre_3_ctx_type* ctx); +void Lustre_pre_3_get(_real [50]/*out*/,Lustre_pre_3_ctx_type*); + +void Lustre_pre_3_set(_real [50],Lustre_pre_3_ctx_type*); + +void Lustre_slash_step(_real ,_real ,_real *); + +void convertible_main_ctx_reset(convertible_main_ctx_type* ctx); +void convertible_main_ctx_init(convertible_main_ctx_type* ctx); +void convertible_main_step(_boolean ,_boolean ,_boolean ,_boolean ,_boolean ,_boolean ,_real ,_boolean *,_boolean *,_real *,_real *,convertible_main_ctx_type*); + +///////////////////////////////////////////////// +#endif diff --git a/test/monniaux/lustre-convertible-en-2cgc/convertible_main_loop.c b/test/monniaux/lustre-convertible-en-2cgc/convertible_main_loop.c new file mode 100644 index 00000000..9aa52cad --- /dev/null +++ b/test/monniaux/lustre-convertible-en-2cgc/convertible_main_loop.c @@ -0,0 +1,91 @@ +/* This file was generated by lv6 version master.737 (2727a7744111c84f7984634d2bd3ad6f7c6c7ff9). */ +/* lv6 -2cgc -node main convertible.lus */ +/* on vanoise the 08/05/2019 at 23:54:11 */ + +#include <stdlib.h> +#include <stdio.h> +#include <unistd.h> +#include <stdint.h> +#include "convertible_main.h" +#include "../clock.h" + +/* MACROS DEFINITIONS ****************/ +#ifndef TT +#define TT "1" +#endif +#ifndef FF +#define FF "0" +#endif +#ifndef BB +#define BB "bottom" +#endif +#ifdef CKCHECK +/* set this macro for testing output clocks */ +#endif + +static uint32_t dm_random_uint32(void) { + static uint32_t current=UINT32_C(0xDEADBEEF); + current = ((uint64_t) current << 6) % UINT32_C(4294967291); + return current; +} + +/* Standard Input procedures **************/ +_boolean _get_bool(char* n){ + return dm_random_uint32() & 1; +} +/* +_integer _get_int(char* n){ + return (_integer) (dm_random_uint32() % 21) - 10; +} +*/ +_real _get_real(char* n){ + return ((_integer) (dm_random_uint32() % 2000001) - 1000000)*1E-6; +} +/* Output procedures **********************/ +void convertible_main_O_n(void* cdata, _integer _V) { +} + +/* Main procedure *************************/ +int main(){ + int _s = 0; + _boolean Start; + _boolean Parked; + _boolean Rot; + _boolean Tick; + _boolean OnOff; + _boolean Done; + _real Dist; + _boolean Danger; + _boolean Locked; + _real Speed; + _real Roof_Speed; + convertible_main_ctx_type ctx_struct; + convertible_main_ctx_type* ctx = &ctx_struct; + convertible_main_ctx_init(ctx); + // printf("#inputs \"Start\":bool \"Parked\":bool \"Rot\":bool \"Tick\":bool \"OnOff\":bool \"Done\":bool \"Dist\":real\n"); + // printf("#outputs \"Danger\":bool \"Locked\":bool \"Speed\":real \"Roof_Speed\":real\n"); + + /* Main loop */ + clock_prepare(); + clock_start(); + + for(int count=0; count<1000; count++){ + ++_s; + Start = _get_bool("Start"); + Parked = _get_bool("Parked"); + Rot = _get_bool("Rot"); + Tick = _get_bool("Tick"); + OnOff = _get_bool("OnOff"); + Done = _get_bool("Done"); + Dist = _get_real("Dist"); + convertible_main_step(Start,Parked,Rot,Tick,OnOff,Done,Dist,&Danger,&Locked,&Speed,&Roof_Speed,ctx); + // printf("%d %d %d %d %d %d %f #outs %d %d %f %f\n",Start,Parked,Rot,Tick,OnOff,Done,Dist,Danger,Locked,Speed,Roof_Speed); + // printf("%d %d %f %f\n",Danger,Locked,Speed,Roof_Speed); + } + + clock_stop(); + print_total_clock(); + + return 0; + +} diff --git a/test/monniaux/lustre-convertible-en-2cgc/lustre_consts.c b/test/monniaux/lustre-convertible-en-2cgc/lustre_consts.c new file mode 100644 index 00000000..18d80805 --- /dev/null +++ b/test/monniaux/lustre-convertible-en-2cgc/lustre_consts.c @@ -0,0 +1,4 @@ +/* This file was generated by lv6 version master.737 (2727a7744111c84f7984634d2bd3ad6f7c6c7ff9). */ +/* lv6 -2c -en -2cgc -n main convertible.lus */ +/* on vanoise the 09/05/2019 at 15:28:26 */ +#include "lustre_consts.h"
\ No newline at end of file diff --git a/test/monniaux/lustre-convertible-en-2cgc/lustre_consts.h b/test/monniaux/lustre-convertible-en-2cgc/lustre_consts.h new file mode 100644 index 00000000..eaa21a15 --- /dev/null +++ b/test/monniaux/lustre-convertible-en-2cgc/lustre_consts.h @@ -0,0 +1,23 @@ +/* This file was generated by lv6 version master.737 (2727a7744111c84f7984634d2bd3ad6f7c6c7ff9). */ +/* lv6 -2c -en -2cgc -n main convertible.lus */ +/* on vanoise the 09/05/2019 at 15:28:26 */ + +// Constant definitions +#define convertible_anti_col 2 +#define convertible_deg1 1 +#define convertible_fast 1 +#define convertible_in_motion 1 +#define convertible_k 5500.0 +#define convertible_locked 0 +#define convertible_max_roof_speed 10.0 +#define convertible_no_sol 0 +#define convertible_one_sol 2 +#define convertible_period 0.1 +#define convertible_run 1 +#define convertible_size 50 +#define convertible_slow 2 +#define convertible_speed_max 110.0 +#define convertible_stationnary 0 +#define convertible_two_sol 3 +#define convertible_wait 0 +#define convertible_wheel_girth 1.4 diff --git a/test/monniaux/lustre-convertible-en-2cgc/lustre_types.h b/test/monniaux/lustre-convertible-en-2cgc/lustre_types.h new file mode 100644 index 00000000..68127eb6 --- /dev/null +++ b/test/monniaux/lustre-convertible-en-2cgc/lustre_types.h @@ -0,0 +1,83 @@ +/* This file was generated by lv6 version master.737 (2727a7744111c84f7984634d2bd3ad6f7c6c7ff9). */ +/* lv6 -2c -en -2cgc -n main convertible.lus */ +/* on vanoise the 09/05/2019 at 15:28:26 */ + +#ifndef _SOC2C_PREDEF_TYPES +#define _SOC2C_PREDEF_TYPES +typedef int _boolean; +typedef int _integer; +typedef char* _string; +typedef double _real; +typedef double _double; +typedef float _float; +#define _false 0 +#define _true 1 +#endif +// end of _SOC2C_PREDEF_TYPES +// User typedef +#ifndef _convertible_main_TYPES +#define _convertible_main_TYPES +typedef _integer convertible_eq_case; +typedef _integer convertible_roof_speed_state; +typedef _integer convertible_roof_state; +typedef struct { + _integer i; + _integer j; + _real v; + } convertible_update_acc; +typedef _integer convertible_vehicle_state; +#endif // enf of _convertible_main_TYPES +// Memoryless soc ctx typedef +// Memoryfull soc ctx typedef +/* Lustre_pre_ctx */ +typedef struct { + /*Memory cell*/ + _real _memory ; +} Lustre_pre_ctx_type; + +/* Lustre_arrow_ctx */ +typedef struct { + /*Memory cell*/ + _boolean _memory ; +} Lustre_arrow_ctx_type; + +/* Lustre_pre_2_ctx */ +typedef struct { + /*Memory cell*/ + _integer _memory ; +} Lustre_pre_2_ctx_type; + +/* Lustre_arrow_2_ctx */ +typedef struct { + /*Memory cell*/ + _boolean _memory ; +} Lustre_arrow_2_ctx_type; + +/* Lustre_arrow_3_ctx */ +typedef struct { + /*Memory cell*/ + _boolean _memory ; +} Lustre_arrow_3_ctx_type; + +/* Lustre_pre_3_ctx */ +typedef struct { + /*Memory cell*/ + _real _memory[50] ; +} Lustre_pre_3_ctx_type; + +/* convertible_main_ctx */ +typedef struct { + /*INSTANCES*/ + Lustre_pre_3_ctx_type Lustre_pre_3_ctx_tab[2]; + Lustre_pre_ctx_type Lustre_pre_ctx_tab[6]; + Lustre_pre_2_ctx_type Lustre_pre_2_ctx_tab[5]; + Lustre_arrow_3_ctx_type Lustre_arrow_3_ctx_tab[2]; + Lustre_arrow_ctx_type Lustre_arrow_ctx_tab[6]; + Lustre_arrow_2_ctx_type Lustre_arrow_2_ctx_tab[5]; +} convertible_main_ctx_type; + +// Defining array and extern types assignments + +#ifndef _assign_rp50 +#define _assign_rp50(dest, source, size) memcpy(dest, source, size) +#endif |