Description
This is on effectively 1.00-dev for ChainRulesCore- These are on ChainRules v1.0.1, ChainRulesCore v1.0.2, ChainRulesTestUtils v1.0.0
test_rrule(*, UpperTriangular(rand(4,4)), Diagonal(rand(4,); check_inferred = false)
test_rrule(*, LowerTriangular(rand(4,4)), Diagonal(rand(4,)); check_inferred = false)
test_rrule(, Symmetric(rand(4,4)), Diagonal(rand(4,))) # Fails with approximation error
test_rrule(, Diagonal(rand(4,)), Symmetric(rand(4,4))) # Fails with approximation error
test_rrule(*, Diagonal(rand(4,)), Diagonal(rand(4,)))
test_rrule(, Bidiagonal(rand(4,), rand(3,), :U), Diagonal(rand(4,))) # Expected A struct type (FiniteDifferences)
test_rrule(, 5, rand(4,4)) # Expression: ad_cotangent isa NoTangent Evaluated: Thunk(Ch....
test_rrule(*, 5.0, Diagonal(rand(4,))
test_rrule(, Matrix(rand(4,4)), Diagonal(rand(4,))) # Passes
test_rrule(, Diagonal(rand(4,)), Matrix(rand(4,4))) # Passes
test_rrule(*, UpperTriangular(rand(4,4)), Matrix(rand(4,4))) # Passes
All of these appear to involve matrix types that are a compact representation on the LHS and so probably related to densification during testing and possibly interaction with to_Vec in FiniteDifferences.
EDIT: Strikethrough the ones now passing.