高画質な画像の拡大と縮小に用いられるアルゴリズムとして有名なのがLanczos 3ですが、
処理が重いと言われます。
原因は、内部で三角関数を2回も用いることにあります。
そこで、式変形して呼び出し回数を減らせるようにしてみました。
こんな感じ。
特に難しいことはせず、高校までに習う(もしくは、高校の参考書に載ってる)レベルの公式を利用してます。分かるとは思いますが、括弧で括った部分を変数に代入することで呼び出し回数が1回になります。
また、画像処理においては、与えられる数値の範囲は限られており、かつ偏りがあるため、dの値と結果をキャッシュしておけば、高速化できます。