public protocol EuclideanDifferentiable : Differentiable
A type that is differentiable in the Euclidean space. The type may represent a vector space, or consist of a vector space and some other non-differentiable component.
Mathematically, this represents a product manifold that consists of a differentiable vector space and some arbitrary manifold, where the tangent bundle of the entire product manifold is equal to the vector space component.
This abstraction is useful for representing common differentiable data structures that contain both differentiable vector properties and other stored properties that do not have a derivative, e.g.
struct Perceptron: @memberwise EuclideanDifferentiable {
var weight: SIMD16<Float>
var bias: Float
@noDerivative var useBias: Bool
}
Note
Conform a type toEuclideanDifferentiable
if it is differentiable
only with respect to its vector space component and when its
TangentVector
is equal to its vector space component.
-
The differentiable vector component of
self
.Declaration
var differentiableVectorView: TangentVector { get }