[obsidian] vault backup: 2024-06-08 22:50:17[
Some checks are pending
Build / build (push) Waiting to run
Some checks are pending
Build / build (push) Waiting to run
This commit is contained in:
parent
ae213d4105
commit
c0e01bf856
39
content/mimiumの中間表現を考える.md
Normal file
39
content/mimiumの中間表現を考える.md
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
date: 2024-06-08 22:40
|
||||||
|
---
|
||||||
|
#memo #mimium
|
||||||
|
|
||||||
|
まあいつものサンプルを考える
|
||||||
|
|
||||||
|
```rust
|
||||||
|
fn fbdelay(input:float,fb:float,dtime:float)->float{
|
||||||
|
return input + delay(self,dtime)*fb
|
||||||
|
}
|
||||||
|
|
||||||
|
fn twodelay (input:float,dtime:float)->float{
|
||||||
|
return fbdelay(input,dtime,0.7)+fbdelay(input,dtime*2,0.8)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn dsp (input:float)->float{
|
||||||
|
return twodelay(input,400)+twodelay(input,800)
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
コールツリーとしては
|
||||||
|
```
|
||||||
|
dsp
|
||||||
|
| |
|
||||||
|
twodelay(1) twodelay(2)
|
||||||
|
| | | |
|
||||||
|
fbdelay(1) fbdelay(2) fbdelay(3) fbdelay(4)
|
||||||
|
| | | |
|
||||||
|
delay,feed, delay,feed delay,feed delay, feed
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
feedのコールツリーを持つやり方はポインタを辿ってく形になるのであんまやりたくない
|
||||||
|
|
||||||
|
- 実行中のVMから見れば、簡約されたあとにfeedの項が置き換えられて出てくるわけではない
|
||||||
|
- 関数の定義にジャンプしてみて初めてfeedが現れる
|
||||||
|
- しかし、そのfeedがどこの情報を保持しているかは呼び出し元の情報が必要
|
@ -379,3 +379,5 @@ let res = cascade_f(3,0.9,input)+doubleosc(440)
|
|||||||
```
|
```
|
||||||
|
|
||||||
なんかこんな感じだとして、レキシカルに何番目の関数呼び出しか、
|
なんかこんな感じだとして、レキシカルに何番目の関数呼び出しか、
|
||||||
|
|
||||||
|
[[mimiumの中間表現を考える]]
|
Loading…
Reference in New Issue
Block a user