feat: start of lift, debugging, cleanup
This commit is contained in:
parent
883e5fff01
commit
589f89c768
31 changed files with 1297 additions and 51 deletions
45
exm/zelus/sincos/sincosz.ml
Normal file
45
exm/zelus/sincos/sincosz.ml
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
(* 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 }
|
||||
BIN
exm/zelus/sincos/sincosz.zci
Normal file
BIN
exm/zelus/sincos/sincosz.zci
Normal file
Binary file not shown.
4
exm/zelus/sincos/sincosz.zls
Normal file
4
exm/zelus/sincos/sincosz.zls
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
let hybrid f () = (sin, cos) where
|
||||
rec der sin = cos init 0.0
|
||||
and der cos = -. sin init 1.0
|
||||
Loading…
Add table
Add a link
Reference in a new issue