[obsidian] vault backup: 2024-06-08 22:50:17[
Some checks are pending
Build / build (push) Waiting to run

This commit is contained in:
Tomoya Matsuura(MacBookPro) 2024-06-08 22:50:17 +09:00
parent ae213d4105
commit c0e01bf856
2 changed files with 42 additions and 1 deletions

View 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がどこの情報を保持しているかは呼び出し元の情報が必要

View File

@ -378,4 +378,6 @@ fn doubleosc(freq)->freq{
let res = cascade_f(3,0.9,input)+doubleosc(440)
```
なんかこんな感じだとして、レキシカルに何番目の関数呼び出しか、
なんかこんな感じだとして、レキシカルに何番目の関数呼び出しか、
[[mimiumの中間表現を考える]]