3/27

日記

2026/03/27

パフォーマンス

videoTextureの改善で、「queuemicrotask」というWebAPIを使った。マイクロタスクのキューに追加するというもの。
以前読んだ「Webフロントエンドハイパフォーマンスチューニング」で似たようなテクニックが紹介されてたなあ、そして最新だとまた違うテクニックがあるんだよなあと、
昔日記にまとめたことがあった。

https://www.koh-fukuzawa.jp/nuly5jtfz
全然覚えていなかったが。schedulerか。queuemicrotaskはより新しい?

GLSL

微分可能

-から0に極限する左微分係数、
+から0に極限する右微分係数があり、
その値がaで一致する時、その値をx=aでの微分係数といい、微分係数があるとき微分可能と定義される。

本の線形補間とエルミート補間の例では、つなぎ目で常に平らになると。
つまりエルミート補間では、点の に加えて、各点での傾き(導関数)も条件に入れて 区間ごとの曲線(多くは3次多項式) を決める。
傾きを つなぎ目でそろえる(例: 両方 0)ように選べば、つなぎ目で角が消えて、そこで微分可能になる。

導関数

関数f(x)に対し、区間上すべての点で微分可能である時、導関数。それが連続となる関数はC1級関数。

上のエルミート補間関数でノードの傾きを指定してつなぐと、つなぎ目でも左右の傾きを同じにできるので、そこでも導関数が定義できる。

C^◯級関数

C^0級 - グラフが切れずに続く

C^1級 - 導関数がどこでも存在し、しかも連続(上のエルミート補間関数だと[-1,1]の範囲でC^1級)

C^2級 - さらに 2階導関数 (f'') もどこでも存在し、(f'') が連続

上の3次エルミート補間関数はC^2級関数ではないが、5次エルミート補間関数x³(10-15x+6x²)だとC^2級。

ちなみに3次エルミート補間x²(3 - 2x)、5次エルミート補間x³(10-15x+6x²)はそれぞれglslでsmoothstep, smootherstepで使える。

数値微分

近い2点から微分係数を近似する方法。何度も使っていた中央差分!
なんとなく微分した値が求まるとは知っていたけど、微分係数を近似していたんだね。

前方差分 f(a + ε) - f(a) / ε

後方差分 f(a) - f(a - ε) / ε

前方差分と後方差分の平均値を中央差分と呼ぶ。
中央差分 = (前方差分 + 後方差分) / 2 = f(a + ε) - f(a - ε) / 2ε

内省

いい天気だった。兼六園の周りを回ってくる道がちょうど3kmくらいなことが発覚。しばらくこの道で走ろうかな。
YouTube中毒だけど、午前中スマホを触らないと、捗るのはもちろんなんだけどなんだか眠気もなくなるし、脳が活性化している気がする。読書の時間を午後に1時間設けてるけど、なんか面白いんだよなあ。
やっぱ読書よなあ。図書館から借りる方法調べるか。

Reading really is the best. maybe I should look into how to borrow books from the library.