swift
eedaab71 - [AutoDiff] Derive `Differentiable.zeroTangentVectorInitializer`. (#32064)

Commit
5 years ago
[AutoDiff] Derive `Differentiable.zeroTangentVectorInitializer`. (#32064) `Differentiable` conformance derivation now supports `Differentiable.zeroTangentVectorInitializer`. `zeroTangentVectorInitializer` is a closure that produces a zero tangent vector, capturing minimal necessary information from `self`. It is an instance property, unlike the static property `AdditiveArithmetic.zero`, and should be used by the differentiation transform for correctness. There are two potential derivation cases: 1. Memberwise derivation: done when `TangentVector` can be initialized memberwise. 2. `{ TangentVector.zero }` derivation: done as a fallback. Remove `Differentiable.zeroTangentVectorInitializer` dummy default implementation. Update stdlib `Differentiable` conformances and tests. Clean up DerivedConformanceDifferentiable.cpp cruft. Resolves TF-1007. Progress towards TF-1008: differentiation correctness for projection operations.
Author
Parents
Loading