From 145250b2618bb3b773f66b40d43638b737a2a11c Mon Sep 17 00:00:00 2001 From: Michael Abbott <32575566+mcabbott@users.noreply.github.com> Date: Wed, 16 Oct 2024 10:11:57 -0400 Subject: [PATCH] Update array.jl --- src/rulesets/Base/array.jl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/rulesets/Base/array.jl b/src/rulesets/Base/array.jl index 7e4098509..d1a9d14c9 100644 --- a/src/rulesets/Base/array.jl +++ b/src/rulesets/Base/array.jl @@ -220,6 +220,11 @@ end # All the [hv]cat functions treat anything that's not an array as a scalar. _catsize(x) = () _catsize(x::AbstractArray) = size(x) +_catsize(::LinearAlgebra.UniformScaling) = error( + """ChainRules does not at present support *cat functions with LinearAlgebra.I + as it does not know how to calculate the size occupied in e.g. `[1:4 I 5:8]`. + Writing instead `[1:4 I(4) 5:8]` should work. + Issue tracking this is here: https://github.com/JuliaDiff/ChainRules.jl/issues/810""") function rrule(::typeof(hcat), Xs...) Y = hcat(Xs...) # note that Y always has 1-based indexing, even if X isa OffsetArray