repmat forward

This commit is contained in:
Mike J Innes 2017-09-05 02:12:53 -04:00
parent a322c07fc8
commit 363caeddc6
2 changed files with 4 additions and 0 deletions

View File

@ -26,6 +26,7 @@ end
TrackedScalar{T,A} = TrackedArray{T,0,A}
TrackedVector{T,A} = TrackedArray{T,1,A}
TrackedMatrix{T,A} = TrackedArray{T,2,A}
TrackedVecOrMat{T,A} = Union{TrackedVector{T,A},TrackedMatrix{T,A}}
TrackedArray(c::Call, x::A, Δ::A) where A <: AbstractArray =
TrackedArray{eltype(A),ndims(A),A}(c, x, Δ)

View File

@ -25,6 +25,9 @@ Base.ctranspose(xs::TrackedArray) = TrackedArray(Call(ctranspose, xs))
back!(::typeof(transpose), Δ, xs) = @back!(xs, trim(xs, Δ.'))
back!(::typeof(ctranspose), Δ, xs) = @back!(xs, trim(xs, Δ'))
Base.repmat(x::TrackedVecOrMat, a::Integer...) = TrackedArray(Call(repmat, x, a...))
Base.repmat(x::TrackedVecOrMat, a::Int64...) = TrackedArray(Call(repmat, x, a...))
Base.vcat(a::TrackedVector, b::TrackedVector) = TrackedArray(Call(vcat, a, b))
Base.vcat(a::TrackedVector, b::AbstractVector) = TrackedArray(Call(vcat, a, b))
Base.vcat(a::AbstractVector, b::TrackedVector) = TrackedArray(Call(vcat, a, b))