I want any help. I want derivative a quadratic form function

```
using ForwardDiff
X,T = 80,52
param = [σ,μ]
function q(param::AbstractVector{T}) where T
σ = param[1]
V = zeros(T,T)
for i in 1:T
for j in 1:T
V[i,j] = minimum([i,j]) * σ^2
end
end
#buf_μ = Zygote.Buffer(μ)
μ = param[2]
μ_vec = zeros(T)
for t in 1:T
μ_vec[t] = t * μ
end
return μ_vec' * (V \ μ_vec)
end
q([1.0,1.0])
ForwardDiff.gradient(q,[1.0,1.0])
#isa(q_μ(μ), Union{Real,AbstractArray})
```

but it does not work. here is error message

MethodError: no method matching Float64(::ForwardDiff.Dual{ForwardDiff.Tag{typeof(q), Float64}, Float64, 2})

Closest candidates are:

(::Type{T})(::Real, ::RoundingMode) where T<:AbstractFloat at rounding.jl:200

(::Type{T})(::T) where T<:Number at boot.jl:772

(::Type{T})(::AbstractChar) where T<:Union{AbstractChar, Number} at char.jl:50

…

Stacktrace:

[1] convert(#unused#::Type{Float64}, x::ForwardDiff.Dual{ForwardDiff.Tag{typeof(q), Float64}, Float64, 2})

@ Base ./number.jl:7

[2] setindex!(::Matrix{Float64}, ::ForwardDiff.Dual{ForwardDiff.Tag{typeof(q), Float64}, Float64, 2}, ::Int64, ::Int64)

@ Base ./array.jl:968

[3] q(param::Vector{ForwardDiff.Dual{ForwardDiff.Tag{typeof(q), Float64}, Float64, 2}})

@ Main ./In[3]:12

[4] vector_mode_dual_eval!

@ ~/.julia/packages/ForwardDiff/vXysl/src/apiutils.jl:24 [inlined]

[5] vector_mode_gradient(f::typeof(q), x::Vector{Float64}, cfg::ForwardDiff.GradientConfig{ForwardDiff.Tag{typeof(q), Float64}, Float64, 2, Vector{ForwardDiff.Dual{ForwardDiff.Tag{typeof(q), Float64}, Float64, 2}}})

@ ForwardDiff ~/.julia/packages/ForwardDiff/vXysl/src/gradient.jl:89

[6] gradient(f::Function, x::Vector{Float64}, cfg::ForwardDiff.GradientConfig{ForwardDiff.Tag{typeof(q), Float64}, Float64, 2, Vector{ForwardDiff.Dual{ForwardDiff.Tag{typeof(q), Float64}, Float64, 2}}}, ::Val{true})

@ ForwardDiff ~/.julia/packages/ForwardDiff/vXysl/src/gradient.jl:0

[7] gradient(f::Function, x::Vector{Float64}, cfg::ForwardDiff.GradientConfig{ForwardDiff.Tag{typeof(q), Float64}, Float64, 2, Vector{ForwardDiff.Dual{ForwardDiff.Tag{typeof(q), Float64}, Float64, 2}}}) (repeats 2 times)

@ ForwardDiff ~/.julia/packages/ForwardDiff/vXysl/src/gradient.jl:17

[8] top-level scope

@ In[3]:28

Could anyone tell me how to solve this problem?