We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The result is correct only if I tag the matrix to be symmetric.
using LinearAlgebra using ForwardDiff function f_backward(x1, x2, rho) cov = [ 1.0 rho; rho 1.0 ] x = [x1, x2] return x' * (cov \ x) end function f_backward_symmetric(x1, x2, rho) cov = Symmetric([ 1.0 rho; rho 1.0 ]) x = [x1, x2] return x' * (cov \ x) end function f_inv(x1, x2, rho) cov = [ 1.0 rho; rho 1.0 ] x = [x1, x2] return x' * inv(cov) * x end function f_inv_symmetric(x1, x2, rho) cov = Symmetric([ 1.0 rho; rho 1.0 ]) x = [x1, x2] return x' * inv(cov) * x end function test(rho) @show f_backward(0.1, 0.2, rho) @show f_backward_symmetric(0.1, 0.2, rho) @show f_inv(0.1, 0.2, rho) @show f_inv_symmetric(0.1, 0.2, rho) @show ForwardDiff.derivative(x -> f_backward(0.1, 0.2, x), rho) @show ForwardDiff.derivative(x -> f_backward_symmetric(0.1, 0.2, x), rho) @show ForwardDiff.derivative(x -> f_inv(0.1, 0.2, x), rho) @show ForwardDiff.derivative(x -> f_inv_symmetric(0.1, 0.2, x), rho) end test(0.0) f_backward(0.1, 0.2, rho) = 0.05000000000000001 f_backward_symmetric(0.1, 0.2, rho) = 0.05000000000000001 f_inv(0.1, 0.2, rho) = 0.05000000000000001 f_inv_symmetric(0.1, 0.2, rho) = 0.05000000000000001 ForwardDiff.derivative((x->begin f_backward(0.1, 0.2, x) end), rho) = 0.0 ForwardDiff.derivative((x->begin f_backward_symmetric(0.1, 0.2, x) end), rho) = -0.04000000000000001 ForwardDiff.derivative((x->begin f_inv(0.1, 0.2, x) end), rho) = -0.020000000000000004 ForwardDiff.derivative((x->begin f_inv_symmetric(0.1, 0.2, x) end), rho) = -0.04000000000000001
The text was updated successfully, but these errors were encountered:
Desired answer is all derivatives -0.04?
-0.04
If so, this is fixed by #481 which is available on master.
Sorry, something went wrong.
No branches or pull requests
The result is correct only if I tag the matrix to be symmetric.
The text was updated successfully, but these errors were encountered: