Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

ForwardDiff causes many ambiguities which may hurt performance

Đang mở
#597 2 bình luận 4 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
25/100
Loại issue
Lỗi
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Đình trệ
Công nghệ
julia
Lĩnh vực
performance

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện báo cáo với Aqua.test_all(OrdinaryDiffEq) và xem xét các method ForwardDiff được liệt kê, đặc biệt là các method trong src/dual.jl và các method đạo hàm vô hướng. Xác định những điểm mơ hồ nào thuộc về ForwardDiff, xử lý chúng mà không thay đổi hành vi vi phân dự kiến, và xác minh rằng đầu ra về các điểm mơ hồ liên quan của Aqua đã được giảm bớt hoặc loại bỏ.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

According to @vtjnash in https://github.com/SciML/OrdinaryDiffEq.jl/issues/1750, method ambiguities can hurt performance. It seems that a major source is ForwardDiff, and so it would be good for these to get cleaned up. I found this via:

using OrdinaryDiffEq, Aqua
Aqua.test_all(OrdinaryDiffEq)
50 ambiguities found
Ambiguity #1
StatsBase.TestStat(v) in StatsBase at C:\Users\accou\.julia\packages\StatsBase\XgjIN\src\statmodels.jl:80
(::Type{T})(z::Complex) where T<:Real in Base at complex.jl:44

Possible fix, define
  StatsBase.TestStat(::Complex)

Ambiguity #2
ReverseDiff.TrackedReal{V, D, O}(value) where {V, D, O} in ReverseDiff at C:\Users\accou\.julia\packages\ReverseDiff\5MMPp\src\tracked.jl:56
(::Type{T})(x::AbstractChar) where T<:Union{AbstractChar, Number} in Base at char.jl:50

Possible fix, define
  ReverseDiff.TrackedReal{V, D, O}(::AbstractChar) where {V, D, O}

Ambiguity #3
convert(::Type{ForwardDiff.Dual{T, V, N}}, x) where {T, V, N} in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:432
convert(::Type{T}, x::AbstractChar) where T<:Number in Base at char.jl:185

Possible fix, define
  convert(::Type{ForwardDiff.Dual{T, V, N}}, ::AbstractChar) where {T, V, N}

Ambiguity #4
^(x::Real, y::ForwardDiff.Dual{Ty}) where Ty in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:145
^(::Irrational{:ℯ}, x::Number) in Base.MathConstants at mathconstants.jl:119

Possible fix, define
  ^(::Irrational{:ℯ}, ::ForwardDiff.Dual{Ty}) where Ty

Ambiguity #5
reshape(parent::FillArrays.AbstractFill, dims::Union{Colon, Integer}...) in FillArrays at C:\Users\accou\.julia\packages\FillArrays\MQ1cf\src\FillArrays.jl:233
reshape(parent::AbstractVector, ::Colon) in Base at reshapedarray.jl:115

Possible fix, define
  reshape(::FillArrays.AbstractFill{T, 1} where T, ::Colon)

Ambiguity #6
==(x::Real, y::ForwardDiff.Dual{Ty}) where Ty in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:145
==(x::AbstractIrrational, y::Real) in Base at irrationals.jl:88

Possible fix, define
  ==(::AbstractIrrational, ::ForwardDiff.Dual{Ty}) where Ty

Ambiguity #7
ReverseDiff.TrackedReal{V, D, O}(value) where {V, D, O} in ReverseDiff at C:\Users\accou\.julia\packages\ReverseDiff\5MMPp\src\tracked.jl:56
(::Type{T})(x::Base.TwicePrecision) where T<:Number in Base at twiceprecision.jl:266

Possible fix, define
  ReverseDiff.TrackedReal{V, D, O}(::Base.TwicePrecision) where {V, D, O}

Ambiguity #8
promote_rule(::Type{R}, ::Type{ForwardDiff.Dual{T, V, N}}) where {R<:Real, T, V, N} in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:425
promote_rule(::Type{S}, ::Type{T}) where {S<:AbstractIrrational, T<:Number} in Base at irrationals.jl:45

Possible fix, define
  promote_rule(::Type{S}, ::Type{ForwardDiff.Dual{T, V, N}}) where {S<:AbstractIrrational, T, V, N}

Ambiguity #9
promote_rule(::Type{R}, ::Type{ReverseDiff.TrackedReal{V, D, O}}) where {R<:Real, V, D, O} in ReverseDiff at C:\Users\accou\.julia\packages\ReverseDiff\5MMPp\src\tracked.jl:276
promote_rule(::Type{S}, ::Type{T}) where {S<:AbstractIrrational, T<:Number} in Base at irrationals.jl:45

Possible fix, define
  promote_rule(::Type{S}, ::Type{ReverseDiff.TrackedReal{V, D, O}}) where {S<:AbstractIrrational, V, D, O}

Ambiguity #10
Base.Broadcast.BroadcastStyle(::ReverseDiff.TrackedStyle, b::Base.Broadcast.BroadcastStyle) in ReverseDiff at C:\Users\accou\.julia\packages\ReverseDiff\5MMPp\src\derivatives\broadcast.jl:38
Base.Broadcast.BroadcastStyle(::S, ::Base.Broadcast.Unknown) where S<:Base.Broadcast.BroadcastStyle in Base.Broadcast at broadcast.jl:133

Possible fix, define
  Base.Broadcast.BroadcastStyle(::ReverseDiff.TrackedStyle, ::Base.Broadcast.Unknown)

Ambiguity #11
promote_rule(::Type{R}, ::Type{ReverseDiff.TrackedReal{V, D, O}}) where {R<:Real, V, D, O} in ReverseDiff at C:\Users\accou\.julia\packages\ReverseDiff\5MMPp\src\tracked.jl:276
promote_rule(::Type{<:AbstractIrrational}, ::Type{T}) where T<:Real in Base at irrationals.jl:44

Possible fix, define
  promote_rule(::Type{R}, ::Type{ReverseDiff.TrackedReal{V, D, O}}) where {V, D, O, R<:AbstractIrrational}

Ambiguity #12
convert(::Type{ForwardDiff.Dual{T, V, N}}, x) where {T, V, N} in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:432
convert(::Type{T}, index::CartesianIndex{1}) where T<:Number in Base.IteratorsMD at multidimensional.jl:130

Possible fix, define
  convert(::Type{ForwardDiff.Dual{T, V, N}}, ::CartesianIndex{1}) where {T, V, N}

Ambiguity #13
(ForwardDiff.Dual{T})(value) where T in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:69
(::Type{T})(x::Base.TwicePrecision) where T<:Number in Base at twiceprecision.jl:266

Possible fix, define
  (ForwardDiff.Dual{T})(::Base.TwicePrecision) where T

Ambiguity #14
promote_rule(::Type{R}, ::Type{ForwardDiff.Dual{T, V, N}}) where {R<:Real, T, V, N} in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:425
promote_rule(::Type{<:AbstractIrrational}, ::Type{T}) where T<:Real in Base at irrationals.jl:44

Possible fix, define
  promote_rule(::Type{R}, ::Type{ForwardDiff.Dual{T, V, N}}) where {T, V, N, R<:AbstractIrrational}

Ambiguity #15
^(x::Irrational, y::ForwardDiff.Dual{Ty}) where Ty in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:145
^(::Irrational{:ℯ}, x::Number) in Base.MathConstants at mathconstants.jl:119

Possible fix, define
  ^(::Irrational{:ℯ}, ::ForwardDiff.Dual{Ty}) where Ty

Ambiguity #16
reshape(parent::FillArrays.AbstractFill, dims::Tuple{Vararg{Union{Colon, Integer}}}) in FillArrays at C:\Users\accou\.julia\packages\FillArrays\MQ1cf\src\FillArrays.jl:235
reshape(parent::AbstractVector, ::Tuple{Colon}) in Base at reshapedarray.jl:116

Possible fix, define
  reshape(::FillArrays.AbstractFill{T, 1} where T, ::Tuple{Colon})

Ambiguity #17
^(a::Real, b::ReverseDiff.TrackedReal) in ReverseDiff at C:\Users\accou\.julia\packages\ReverseDiff\5MMPp\src\derivatives\scalars.jl:17
^(::Irrational{:ℯ}, x::Number) in Base.MathConstants at mathconstants.jl:119

Possible fix, define
  ^(::Irrational{:ℯ}, ::ReverseDiff.TrackedReal)

Ambiguity #18
log(a::Real, b::ReverseDiff.TrackedReal) in ReverseDiff at C:\Users\accou\.julia\packages\ReverseDiff\5MMPp\src\derivatives\scalars.jl:17
log(::Irrational{:ℯ}, x::Number) in Base.MathConstants at mathconstants.jl:124

Possible fix, define
  log(::Irrational{:ℯ}, ::ReverseDiff.TrackedReal)

Ambiguity #19
ReverseDiff.TrackedReal{V, D, O}(value) where {V, D, O} in ReverseDiff at C:\Users\accou\.julia\packages\ReverseDiff\5MMPp\src\tracked.jl:56
(::Type{T})(z::Complex) where T<:Real in Base at complex.jl:44

Possible fix, define
  ReverseDiff.TrackedReal{V, D, O}(::Complex) where {V, D, O}

Ambiguity #20
_reshape(parent::RecursiveArrayTools.VectorOfArray, dims::Tuple{Vararg{Int64, N}} where N) in RecursiveArrayTools at C:\Users\accou\.julia\packages\RecursiveArrayTools\IgoeN\src\vector_of_array.jl:262
_reshape(v::AbstractVector, dims::Tuple{Int64}) in Base at reshapedarray.jl:168

Possible fix, define
  _reshape(::RecursiveArrayTools.VectorOfArray{T, 1} where T, ::Tuple{Int64})

Ambiguity #21
==(x::Union{StatsBase.PValue, StatsBase.TestStat}, y::Real) in StatsBase at C:\Users\accou\.julia\packages\StatsBase\XgjIN\src\statmodels.jl:90
==(x::Real, y::AbstractIrrational) in Base at irrationals.jl:89

Possible fix, define
  ==(::Union{StatsBase.PValue, StatsBase.TestStat}, ::AbstractIrrational)

Ambiguity #22
ForwardDiff.Dual(args...) in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:73
(::Type{T})(x::Base.TwicePrecision) where T<:Number in Base at twiceprecision.jl:266

Possible fix, define
  ForwardDiff.Dual(::Base.TwicePrecision)

Ambiguity #23
ForwardDiff.Dual{T, V, N}(x) where {T, V, N} in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:77 
(::Type{T})(z::Complex) where T<:Real in Base at complex.jl:44

Possible fix, define
  ForwardDiff.Dual{T, V, N}(::Complex) where {T, V, N}

Ambiguity #24
ForwardDiff.Dual(args...) in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:73
(::Type{T})(x::T) where T<:Number in Core at boot.jl:772

Possible fix, define
  ForwardDiff.Dual(::ForwardDiff.Dual)

Ambiguity #25
log(x::Irrational, y::ForwardDiff.Dual{Ty}) where Ty in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:145
log(::Irrational{:ℯ}, x::Number) in Base.MathConstants at mathconstants.jl:124

Possible fix, define
  log(::Irrational{:ℯ}, ::ForwardDiff.Dual{Ty}) where Ty

Ambiguity #26
copyto!(dest::AbstractArray, A::RecursiveArrayTools.ArrayPartition) in RecursiveArrayTools at C:\Users\accou\.julia\packages\RecursiveArrayTools\IgoeN\src\array_partition.jl:167
copyto!(dest::PermutedDimsArray, src::AbstractArray) in Base.PermutedDimsArrays at permuteddimsarray.jl:215

Possible fix, define
  copyto!(::PermutedDimsArray, ::RecursiveArrayTools.ArrayPartition)

Ambiguity #27
(ForwardDiff.Dual{T, V})(x) where {T, V} in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:79
(::Type{T})(x::AbstractChar) where T<:Union{AbstractChar, Number} in Base at char.jl:50

Possible fix, define
  (ForwardDiff.Dual{T, V})(::AbstractChar) where {T, V}

Ambiguity #28
StatsBase.TestStat(v) in StatsBase at C:\Users\accou\.julia\packages\StatsBase\XgjIN\src\statmodels.jl:80
(::Type{T})(x::AbstractChar) where T<:Union{AbstractChar, Number} in Base at char.jl:50

Possible fix, define
  StatsBase.TestStat(::AbstractChar)

Ambiguity #29
==(a::Real, b::ReverseDiff.TrackedReal) in ReverseDiff at C:\Users\accou\.julia\packages\ReverseDiff\5MMPp\src\derivatives\scalars.jl:41
==(x::AbstractIrrational, y::Real) in Base at irrationals.jl:88

Possible fix, define
  ==(::AbstractIrrational, ::ReverseDiff.TrackedReal)

Ambiguity #30
ForwardDiff.Dual(args...) in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:73
(::Type{T})(x::AbstractChar) where T<:Union{AbstractChar, Number} in Base at char.jl:50

Possible fix, define
  ForwardDiff.Dual(::AbstractChar)

Ambiguity #31
(ForwardDiff.Dual{T, V})(x) where {T, V} in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:79     
(::Type{T})(x::Base.TwicePrecision) where T<:Number in Base at twiceprecision.jl:266

Possible fix, define
  (ForwardDiff.Dual{T, V})(::Base.TwicePrecision) where {T, V}

Ambiguity #32
sum(x::ReverseDiff.TrackedArray{V, D}, dims) where {V, D} in ReverseDiff at C:\Users\accou\.julia\packages\ReverseDiff\5MMPp\src\derivatives\linalg\reductions.jl:41
sum(f, a::AbstractArray; dims, kw...) in Base at reducedim.jl:995

Possible fix, define
  sum(::ReverseDiff.TrackedArray{V, D}, ::AbstractArray) where {V, D}

Ambiguity #33
log(x::Real, y::ForwardDiff.Dual{Ty}) where Ty in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:145
log(::Irrational{:ℯ}, x::Number) in Base.MathConstants at mathconstants.jl:124

Possible fix, define
  log(::Irrational{:ℯ}, ::ForwardDiff.Dual{Ty}) where Ty

Ambiguity #34
==(x::ForwardDiff.Dual{Tx}, y::Real) where Tx in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:144
==(x::Real, y::AbstractIrrational) in Base at irrationals.jl:89

Possible fix, define
  ==(::ForwardDiff.Dual{Tx}, ::AbstractIrrational) where Tx

Ambiguity #35
(ForwardDiff.Dual{T})(value) where T in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:69
(::Type{T})(z::Complex) where T<:Real in Base at complex.jl:44

Possible fix, define
  (ForwardDiff.Dual{T})(::Complex) where T

Ambiguity #36
reshape(parent::FillArrays.AbstractFill, dims::Union{Colon, Int64}...) in FillArrays at C:\Users\accou\.julia\packages\FillArrays\MQ1cf\src\FillArrays.jl:232
reshape(parent::AbstractVector, ::Colon) in Base at reshapedarray.jl:115

Possible fix, define
  reshape(::FillArrays.AbstractFill{T, 1} where T, ::Colon)

Ambiguity #37
StatsBase.TestStat(v) in StatsBase at C:\Users\accou\.julia\packages\StatsBase\XgjIN\src\statmodels.jl:80
(::Type{T})(x::Base.TwicePrecision) where T<:Number in Base at twiceprecision.jl:266

Possible fix, define
  StatsBase.TestStat(::Base.TwicePrecision)

Ambiguity #38
ReverseDiff.TrackedReal{V, D, O}(value) where {V, D, O} in ReverseDiff at C:\Users\accou\.julia\packages\ReverseDiff\5MMPp\src\tracked.jl:56
(::Type{T})(x::T) where T<:Number in Core at boot.jl:772

Possible fix, define
  ReverseDiff.TrackedReal{V, D, O}(::ReverseDiff.TrackedReal{V, D, O}) where {V, D, O}

Ambiguity #39
copyto!(dest::AbstractArray, A::RecursiveArrayTools.ArrayPartition) in RecursiveArrayTools at C:\Users\accou\.julia\packages\RecursiveArrayTools\IgoeN\src\array_partition.jl:167
copyto!(dest::PermutedDimsArray{T, N}, src::AbstractArray{T, N}) where {T, N} in Base.PermutedDimsArrays at permuteddimsarray.jl:211

Possible fix, define
  copyto!(::PermutedDimsArray{T, 1}, ::RecursiveArrayTools.ArrayPartition{T}) where T

Ambiguity #40
==(y::Real, x::Union{StatsBase.PValue, StatsBase.TestStat}) in StatsBase at C:\Users\accou\.julia\packages\StatsBase\XgjIN\src\statmodels.jl:91
==(x::AbstractIrrational, y::Real) in Base at irrationals.jl:88

Possible fix, define
  ==(::AbstractIrrational, ::Union{StatsBase.PValue, StatsBase.TestStat})

Ambiguity #41
reshape(parent::FillArrays.AbstractFill, dims::Tuple{Vararg{Union{Colon, Int64}}}) in FillArrays at C:\Users\accou\.julia\packages\FillArrays\MQ1cf\src\FillArrays.jl:237
reshape(parent::AbstractVector, ::Tuple{Colon}) in Base at reshapedarray.jl:116

Possible fix, define
  reshape(::FillArrays.AbstractFill{T, 1} where T, ::Tuple{Colon})

Ambiguity #42
ForwardDiff.Dual{T, V, N}(x::Number) where {T, V, N} in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:78
(::Type{T})(z::Complex) where T<:Real in Base at complex.jl:44

Possible fix, define
  ForwardDiff.Dual{T, V, N}(::Complex) where {T, V, N}

Ambiguity #43
(ForwardDiff.Dual{T, V})(x) where {T, V} in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:79
(::Type{T})(z::Complex) where T<:Real in Base at complex.jl:44

Possible fix, define
  (ForwardDiff.Dual{T, V})(::Complex) where {T, V}

Ambiguity #44
convert(::Type{ForwardDiff.Dual{T, V, N}}, x) where {T, V, N} in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:432
convert(::Type{T}, x::Base.TwicePrecision) where T<:Number in Base at twiceprecision.jl:273

Possible fix, define
  convert(::Type{ForwardDiff.Dual{T, V, N}}, ::Base.TwicePrecision) where {T, V, N}

Ambiguity #45
(ForwardDiff.Dual{T})(value) where T in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:69
(::Type{T})(x::AbstractChar) where T<:Union{AbstractChar, Number} in Base at char.jl:50

Possible fix, define
  (ForwardDiff.Dual{T})(::AbstractChar) where T

Ambiguity #46
(ForwardDiff.Dual{T, V})(x) where {T, V} in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:79     
(::Type{T})(x::T) where T<:Number in Core at boot.jl:772

Possible fix, define
  (ForwardDiff.Dual{T, V})(::ForwardDiff.Dual{T, V}) where {T, V}

Ambiguity #47
ForwardDiff.Dual(args...) in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:73
(::Type{T})(z::Complex) where T<:Real in Base at complex.jl:44

Possible fix, define
  ForwardDiff.Dual(::Complex)

Ambiguity #48
ForwardDiff.Dual{T, V, N}(x) where {T, V, N} in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:77
(::Type{T})(x::AbstractChar) where T<:Union{AbstractChar, Number} in Base at char.jl:50

Possible fix, define
  ForwardDiff.Dual{T, V, N}(::AbstractChar) where {T, V, N}

Ambiguity #49
ForwardDiff.Dual{T, V, N}(x) where {T, V, N} in ForwardDiff at C:\Users\accou\.julia\packages\ForwardDiff\pDtsf\src\dual.jl:77 
(::Type{T})(x::Base.TwicePrecision) where T<:Number in Base at twiceprecision.jl:266

Possible fix, define
  ForwardDiff.Dual{T, V, N}(::Base.TwicePrecision) where {T, V, N}

Ambiguity #50
==(a::ReverseDiff.TrackedReal, b::Real) in ReverseDiff at C:\Users\accou\.julia\packages\ReverseDiff\5MMPp\src\derivatives\scalars.jl:42
==(x::Real, y::AbstractIrrational) in Base at irrationals.jl:89

Possible fix, define
  ==(::ReverseDiff.TrackedReal, ::AbstractIrrational)

Method ambiguity: Test Failed at C:\Users\accou\.julia\packages\Aqua\HWLbM\src\ambiguities.jl:117
  Expression: success(pipeline(cmd; stdout = stdout, stderr = stderr))
Stacktrace:
 [1] macro expansion
   @ C:\Users\accou\.julia\juliaup\julia-1.8.0+0.x64\share\julia\stdlib\v1.8\Test\src\Test.jl:464 [inlined]
 [2] _test_ambiguities(packages::Vector{Base.PkgId}; color::Nothing, exclude::Vector{Any}, detect_ambiguities_options::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
   @ Aqua C:\Users\accou\.julia\packages\Aqua\HWLbM\src\ambiguities.jl:117
Test Summary:    | Fail  Total   Time
Method ambiguity |    1      1  59.1s
ERROR: Some tests did not pass: 0 passed, 1 failed, 0 errored, 0 broken.
Ngôn ngữ chính
Julia
Star
1k
Fork
162
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của JuliaDiff/ForwardDiff.jl

Tất cả issue của JuliaDiff/ForwardDiff.jl

Issue tương tự

Thêm issue về Julia

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.