Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

StackOverflowError when differentiating a simple scalar function from SpecialFunctions.jl

オープン
#567 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
julia
領域
tooling

調査の方向性

ForwardDiff と SpecialFunctions を使って MWE を再現し、次に SpecialFunctions/src/bessel.jl の 583 行目付近を調べて、動作する broadcasted 式と比較します。サンプルベクトルに対して log_i0 を微分しても StackOverflowError が発生しなくなれば完了です。

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

説明

Here is the MWE:

using ForwardDiff
using SpecialFunctions

log_i0(z::Number) = besseli(0,z) |> log
ForwardDiff.jacobian(x -> log_i0.(x), [1.1, 2.2, 3.3])

REPL output:

ERROR: LoadError: StackOverflowError:
Stacktrace:
 [1] besselix(nu::Int64, x::ForwardDiff.Dual{ForwardDiff.Tag{var"#8#9", Float64}, Float64, 3}) (repeats 79984 times)
   @ SpecialFunctions ~/.julia/packages/SpecialFunctions/NBIqR/src/bessel.jl:583
in expression starting at (...)

Interestingly,

ForwardDiff.jacobian(x -> log.(besseli.(0, x)), [1.1, 2.2, 3.3])

works great. Am I missing something super-obvious here? (My honest apologies if I am.)

Environment:

  • Julia Version 1.6.2
  • SpecialFunctions v1.8.1
  • ForwardDiff v0.10.23
主要言語
Julia
スター
1k
フォーク
162
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

JuliaDiff/ForwardDiff.jl のほかの issue

JuliaDiff/ForwardDiff.jl の issue をすべて見る

似ている issue

Julia の issue をもっと見る

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

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