From c0e01bf85624d806ba154cb6484a868ad6573bb3 Mon Sep 17 00:00:00 2001 From: "Tomoya Matsuura(MacBookPro)" Date: Sat, 8 Jun 2024 22:50:17 +0900 Subject: [PATCH] [obsidian] vault backup: 2024-06-08 22:50:17[ --- content/mimiumの中間表現を考える.md | 39 +++++++++++++++++++++++++++++ content/mimium新内部表現の構想.md | 4 ++- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 content/mimiumの中間表現を考える.md diff --git a/content/mimiumの中間表現を考える.md b/content/mimiumの中間表現を考える.md new file mode 100644 index 00000000..f0f8a19c --- /dev/null +++ b/content/mimiumの中間表現を考える.md @@ -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がどこの情報を保持しているかは呼び出し元の情報が必要 diff --git a/content/mimium新内部表現の構想.md b/content/mimium新内部表現の構想.md index ef1fc392..007a36b6 100644 --- a/content/mimium新内部表現の構想.md +++ b/content/mimium新内部表現の構想.md @@ -378,4 +378,6 @@ fn doubleosc(freq)->freq{ let res = cascade_f(3,0.9,input)+doubleosc(440) ``` -なんかこんな感じだとして、レキシカルに何番目の関数呼び出しか、 \ No newline at end of file +なんかこんな感じだとして、レキシカルに何番目の関数呼び出しか、 + +[[mimiumの中間表現を考える]] \ No newline at end of file