feat: start of lift, debugging, cleanup
This commit is contained in:
parent
883e5fff01
commit
589f89c768
31 changed files with 1297 additions and 51 deletions
16
doc/pres.typ
16
doc/pres.typ
|
|
@ -145,7 +145,7 @@ Solution: simulate assertions with their own solver.
|
|||
Nodes take an additional reset parameter `'p` for their reset function:
|
||||
|
||||
#align(top)[
|
||||
#grid(columns: (3fr, 2fr), align: (left, left),
|
||||
#grid(columns: (3fr, 2fr), align: (left, left),
|
||||
```ocaml
|
||||
type ('p, 'a, 'b) dnode =
|
||||
DNode : {
|
||||
|
|
@ -200,7 +200,7 @@ Hybrid nodes are a bit more complex:
|
|||
#slide(repeat: 3, self => [
|
||||
#let (uncover, only) = utils.methods(self)
|
||||
|
||||
ODE solvers are discrete nodes producing streams of functions defined on
|
||||
ODE solvers are discrete nodes producing streams of functions defined on
|
||||
successive intervals:
|
||||
$(h: bb(R)_+) -->^D (h': bb(R)_+) times (u: [0,h'] -> bb(V))$.
|
||||
|
||||
|
|
@ -249,7 +249,7 @@ Hybrid nodes are a bit more complex:
|
|||
#slide(repeat: 3, self => [
|
||||
#let (uncover, only) = utils.methods(self)
|
||||
|
||||
Zero-crossing solvers are discrete nodes too, looking for zero-crossings on
|
||||
Zero-crossing solvers are discrete nodes too, looking for zero-crossings on
|
||||
functions:
|
||||
$(h: bb(R)_+) times (u: [0, h] -> bb(V)) -->^D
|
||||
(h': bb(R)_+) times (z: bb(Z)?)$.
|
||||
|
|
@ -456,7 +456,7 @@ When receiving a new value, store it
|
|||
box((10, 1.25), (3, 1.5), double: true, content: `state`)
|
||||
|
||||
// (h, u) -> state
|
||||
content((-2.25, 3), $(h, u)$)
|
||||
content((-2.25, 3), $(h, u)$)
|
||||
arrow((-1, 3), (r, 1.5), (d, 2.5), (r, 5), (u, 1.5), (r, 4.5))
|
||||
|
||||
// sim -> bot
|
||||
|
|
@ -583,7 +583,7 @@ When receiving a new value, store it
|
|||
|
||||
// solver.step
|
||||
box((6.5, 1), (3, 1.5), content: `step`)
|
||||
|
||||
|
||||
// solver.state
|
||||
box((6.5, 2.75), (3, 1.5), double: true, content: `state`)
|
||||
|
||||
|
|
@ -757,7 +757,7 @@ If no zero-crossing is found, there is no discontinuity.
|
|||
content((-3, 1.5), $"Signal"(alpha)$)
|
||||
content((5.5, 2), $"Signal"(beta)$)
|
||||
content((14, 1.5), $"Signal"(gamma)$)
|
||||
|
||||
|
||||
content((-4, -1), $alpha:$)
|
||||
content((-4, -2.5), $beta:$)
|
||||
content((-4, -4), $gamma:$)
|
||||
|
|
@ -795,7 +795,7 @@ If no zero-crossing is found, there is no discontinuity.
|
|||
The output signal stops at least as often as the input signal does.
|
||||
#linebreak()
|
||||
This calls for a "lazy" composition: we request rather than provide data.
|
||||
|
||||
|
||||
#align(center, cetz-canvas({
|
||||
import cetz.draw: *
|
||||
box((0, 0), (3, 3), content: $M_1$)
|
||||
|
|
@ -809,7 +809,7 @@ If no zero-crossing is found, there is no discontinuity.
|
|||
content((-3, 1.5), $"Signal"(alpha)$)
|
||||
content((5.5, 2), $"Signal"(beta)$)
|
||||
content((14, 1.5), $"Signal"(gamma)$)
|
||||
|
||||
|
||||
content((-4, -1), $alpha:$)
|
||||
content((-4, -2.5), $beta:$)
|
||||
content((-4, -4), $gamma:$)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue