(* The Zelus compiler, version 2.2-dev (2025-06-16-15:24) *) open Common open Ztypes open Solvers type ('c , 'b , 'a) _f = { mutable major_11 : 'c ; mutable sin_13 : 'b ; mutable cos_12 : 'a } let f (cstate_14:Ztypes.cstate) = let f_alloc _ = cstate_14.cmax <- (+) cstate_14.cmax 2; { major_11 = false ; sin_13 = { pos = 42.; der = 0. } ; cos_12 = { pos = 42.; der = 0. } } in let f_step self ((_time_10:float) , ()) = ((let (cindex_15:int) = cstate_14.cindex in let cpos_17 = ref (cindex_15:int) in cstate_14.cindex <- (+) cstate_14.cindex 2 ; self.major_11 <- cstate_14.major ; (if cstate_14.major then for i_1 = cindex_15 to 1 do Zls.set cstate_14.dvec i_1 0. done else ((self.sin_13.pos <- Zls.get cstate_14.cvec !cpos_17 ; cpos_17 := (+) !cpos_17 1) ; (self.cos_12.pos <- Zls.get cstate_14.cvec !cpos_17 ; cpos_17 := (+) !cpos_17 1))) ; (let (result_19) = self.cos_12.der <- (~-.) self.sin_13.pos ; self.sin_13.der <- self.cos_12.pos ; Bigarray.(Array1.of_array Float64 c_layout [| self.sin_13.pos; self.cos_12.pos |]) in cpos_17 := cindex_15 ; (if cstate_14.major then (((Zls.set cstate_14.cvec !cpos_17 self.sin_13.pos ; cpos_17 := (+) !cpos_17 1) ; (Zls.set cstate_14.cvec !cpos_17 self.cos_12.pos ; cpos_17 := (+) !cpos_17 1))) else (((Zls.set cstate_14.dvec !cpos_17 self.sin_13.der ; cpos_17 := (+) !cpos_17 1) ; (Zls.set cstate_14.dvec !cpos_17 self.cos_12.der ; cpos_17 := (+) !cpos_17 1)))) ; result_19))) in let f_reset self = ((self.sin_13.pos <- 0. ; self.cos_12.pos <- 1.):unit) in Node { alloc = f_alloc; step = f_step ; reset = f_reset }