Skip to content

Commit e1514cf

Browse files
authored
[AutoDiff] Make transpose(of:) available. (#28471)
Resolves SR-11845.
1 parent 0e8a67f commit e1514cf

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

stdlib/public/Differentiation/DifferentiationSupport.swift

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -368,12 +368,13 @@ public extension Differentiable {
368368

369369
// Transpose
370370

371-
@available(*, unavailable)
372371
@inlinable
373372
public func transpose<T, R>(
374-
of body: @escaping @differentiable/*(linear)*/ (T) -> R
375-
) -> @differentiable/*(linear)*/ (R) -> T {
376-
fatalError()
373+
of body: @escaping @differentiable(linear) (T) -> R
374+
) -> @differentiable(linear) (R) -> T {
375+
let original = body as (T) -> R
376+
let transpose = { x in Builtin.applyTranspose_arity1(body, x) }
377+
return Builtin.linearFunction_arity1(transpose, original)
377378
}
378379

379380
// Value with differential

0 commit comments

Comments
 (0)