arrayfire / arrayfire/arrayfire-python

Bugs in af.approx1()

オープン
#135 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Python
スター
422
フォーク
63
PR マージ指標
30日以内にマージされた PR はありません

説明

Convergence checks performed on the ArrayFire routines for interpolation seem to indicate a few mistakes:

The following plot is generated using `af.INTERP.CUBIC`
![download 9](https://cloud.githubusercontent.com/assets/19583419/24001222/90a839b2-0a83-11e7-8d61-dac9f4fd45a3.png)

The order of convergence comes out to be ![image](https://cloud.githubusercontent.com/assets/19583419/24001620/abd1cd74-0a84-11e7-8690-c6f68882734f.png), while the expected convergence rate is ![image](https://cloud.githubusercontent.com/assets/19583419/24001712/dffcefd4-0a84-11e7-99d5-6475b2de7c79.png). I checked with `af.INTERP.CUBIC_SPLINE` as well. Even in that case the order of convergence comes out to be ![image](https://cloud.githubusercontent.com/assets/19583419/24001738/fa04291a-0a84-11e7-8fcb-946a8b3e8602.png)

![download 8](https://cloud.githubusercontent.com/assets/19583419/24001789/174c4f2a-0a85-11e7-8af0-582a153b6123.png)

Another issue is the fact that the error doesn't drop below 1e-7. The SciPy interpolation function `interp1d` using cubic interpolation gives this:

![download 19](https://cloud.githubusercontent.com/assets/19583419/24001909/4fb536f6-0a85-11e7-8339-16767b8bd4eb.png)

For your reference - this is the [code](https://gist.github.com/ShyamSS-95/ad0065e984b76d1ccaecc5e21b425734) I'd used to generate the plots.

Also regarding issue #130 - I've realised that the mistake was on my part. I should have added the off-set in the indexing to the normalized interpolant points.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

Start by running the linked reproduction code and examining af.approx1 with af.INTERP.CUBIC and af.INTERP.CUBIC_SPLINE. Compare the observed convergence rates and error floor with SciPy's interp1d; done means identifying and correcting the interpolation behavior so the expected convergence and accuracy are restored.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
backend
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
30/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。