`map` of a `TrackedArray` and a `StaticArray` is ambiguous
まだ誰も着手していません。
評価
調査の方向性
Start in src/derivatives/elementwise.jl and inspect ReverseDiff's map and broadcast methods for DiffRules and SKIPPED_BINARY_SCALAR_FUNCS, then compare the related fixes in issues #307 and #153. Run the reproducer with StaticArrays to confirm the ambiguity. Done means the shown gradient call no longer raises the ambiguous map MethodError.
索引モデルが issue の本文から書いたものです。
説明
using ReverseDiff, StaticArrays
ReverseDiff.gradient(x -> sum(map(+, x, SVector(1.0, 2.0))), [3.0, 4.0])
MethodError: map(::typeof(+), ::ReverseDiff.TrackedArray{Float64, Float64, 1, Vector{Float64}, Vector{Float64}}, ::SVector{2, Float64}) is ambiguous.
ReverseDiff defines map (and broadcast) methods for the functions in DiffRules and SKIPPED_BINARY_SCALAR_FUNCS, with the untracked argument typed as each entry of ARRAY_TYPES (src/derivatives/elementwise.jl). These methods cross StaticArrays' map(f, ::StaticArray, ::AbstractArray...). It's the same kind of ambiguity as the +/-/* ones fixed in #307 (#153).
🤖 Generated with Claude Code
- 主要言語
- Julia
- スター
- 397
- フォーク
- 62
- 平均マージ
- 12時間 50分
- マージ済み PR(30日)
- 8
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
JuliaDiff/ReverseDiff.jl のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
JuliaDiff/ReverseDiff.jl#318 ·
-
`@grad`/`@grad_from_chainrules` silently reuse a tangent if a pullback returns too few tangentsオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
JuliaDiff/ReverseDiff.jl#315 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
JuliaDiff/ReverseDiff.jl#314 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 56/100
JuliaDiff/ReverseDiff.jl#321 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 72/100
JuliaDiff/ReverseDiff.jl#320 ·
JuliaDiff/ReverseDiff.jl の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
legend-exp/LegendDataManagement.jl#232 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
EnzymeAD/Reactant.jl#3569 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
astroautomata/SymbolicRegression.jl#783 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
メンテナーはふだん 1 日以内に返信