Forced periodicity (modulo) breaks ForwardDiff
まだ誰も着手していません。
評価
調査の方向性
まず、報告に示されている Julia 関数 f(t) と呼び出し ForwardDiff.derivative(f, 1) で問題を再現し、次に derivative(f, 1) と比較します。周期の境界で剰余式がどのように処理されるかを調査します。ForwardDiff の結果が有限で、期待されるほぼゼロの導関数と一致すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
It seems that modulo periodicity that seems to break ForwardDiff:
If I give it a very simple function that should be differentiable, but use a modulo for time, then this happens:
#+begin_src julia
function f(t)
sin(pi * 2 * (t % 1))^2
end
#+end_src
#+RESULTS:
: f (generic function with 1 method)
#+begin_src julia
ForwardDiff.derivative(f, 1)
#+end_src
#+RESULTS:
: NaN
#+begin_src julia
derivative(f, 1)
#+end_src
#+RESULTS:
: -5.736299254432828e-15
So the result from the CD is close to zero, as expected. But the ForwardDiff gives NaN. If I take the modulo out, then AutoDiff works.
So while I took care that my functions are continuous, smooth and differentiable at the period boundaries, AutoDiff will not work for them. It does work for cosine series, which are naturally periodic, but not with piecewise continuous functions with modulo periodicity.
- 主要言語
- Julia
- スター
- 1k
- フォーク
- 162
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
JuliaDiff/ForwardDiff.jl のほかの issue
-
missing floatmin, floatmax, and issubnormal for Dual対応中かも @devmotion が 16 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
JuliaDiff/ForwardDiff.jl#852 · コメント 6 件 ·
-
`fma` and `muladd` ignore NaN-safe mode対応中かも @devmotion が 2 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
JuliaDiff/ForwardDiff.jl#860 ·
-
Enable NaN-safe mode by default対応中かも @devmotion が 4 日前に担当しました。 オープン
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
JuliaDiff/ForwardDiff.jl#857 · リアクション 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
JuliaDiff/ForwardDiff.jl#854 · コメント 1 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 75/100
JuliaDiff/ForwardDiff.jl#849 ·
JuliaDiff/ForwardDiff.jl の issue をすべて見る
似ている issue
-
enhancement good first issue help wanted
難易度 2/5 半日 初心者へのやさしさ 82/100
-
authority-vechtstromen ready-for-agent
難易度 1/5 1時間未満 初心者へのやさしさ 75/100
Deltares/Ribasim-NL#890 ·
メンテナーはふだん 1 日以内に返信
-
Precompilation fails on Julia 1.14 nightly: HessenbergQ lmul! methods overwrite LinearAlgebra'sオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
JuliaLinearAlgebra/GenericLinearAlgebra.jl#183 · コメント 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
JuliaGPU/KernelAbstractions.jl#897 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
oscar-system/GAP.jl#1455 ·
メンテナーはふだん 1 日以内に返信