Tangent Vector
NonArchimedeanMachineLearning.ValuationTangent — Type
ValuationTangent{S, T, N}A tangent vector at a point in polydisc space.
Represents an element of the tangent space at a polydisc point. Unlike normalized tangent vectors, this allows the tangent to have non-unit magnitude for each coordinate.
Fields
point::ValuationPolydisc{S, T, N}: The basepoint of the tangent vectordirection::ValuationPolydisc{S, T, N}: The target polydisc that determines the tangent directionmagnitude::Vector{T}: The magnitude of the tangent vector in each coordinate
Type Parameters
S: The type of the coordinate values (typically p-adic numbers)T: The type of the magnitude values (typically integers or rationals)N: The dimension of the polydisc space
Base.:+ — Method
Base.:+(P::ValuationTangent{S, T, N}, Q::ValuationTangent{S, T, N}) where {S,T,N}Add two tangent vectors at the same basepoint and direction.
Arguments
P::ValuationTangent{S, T, N}: First tangent vectorQ::ValuationTangent{S, T, N}: Second tangent vector (must have same basepoint and direction)
Returns
ValuationTangent{S, T, N}: Sum of the two tangent vectors (magnitudes are added componentwise)
NonArchimedeanMachineLearning.basis_vector — Method
basis_vector(P::ValuationPolydisc{S, T, N}, Q::ValuationPolydisc{S, T, N}, i) where {S,T,N}Create the i-th standard basis tangent vector.
Arguments
P::ValuationPolydisc{S, T, N}: The basepoint polydiscQ::ValuationPolydisc{S, T, N}: The polydisc determining the tangent directioni: The coordinate index for the basis vector
Returns
ValuationTangent{S, T, N}: Standard basis vector with magnitude 1 in coordinate i and 0 elsewhere
NonArchimedeanMachineLearning.basis_vector — Method
basis_vector(v::ValuationTangent{S, T, N}, i) where {S,T,N}Create the i-th standard basis vector with the same basepoint and direction as a given tangent vector.
Arguments
v::ValuationTangent{S, T, N}: The reference tangent vectori: The coordinate index for the basis vector
Returns
ValuationTangent{S, T, N}: Standard basis vector with same basepoint and direction as v
NonArchimedeanMachineLearning.dim — Method
dim(v::ValuationTangent)Return the dimension of the tangent space.
Arguments
v::ValuationTangent: The tangent vector
Returns
Int: The dimension (equal to the dimension of the basepoint polydisc)
NonArchimedeanMachineLearning.zero — Method
zero(P::ValuationPolydisc{S, T, N}, Q::ValuationPolydisc{S, T, N}) where {S,T,N}Create the zero tangent vector at a polydisc pointing in a specified direction.
Arguments
P::ValuationPolydisc{S, T, N}: The basepoint polydiscQ::ValuationPolydisc{S, T, N}: The polydisc determining the tangent direction
Returns
ValuationTangent{S, T, N}: Zero tangent vector at P in direction of segment [P, Q]
NonArchimedeanMachineLearning.zero — Method
zero(v::ValuationTangent{S, T, N}) where {S,T,N}Create the zero tangent vector with the same basepoint and direction as a given tangent vector.
Arguments
v::ValuationTangent{S, T, N}: The reference tangent vector
Returns
ValuationTangent{S, T, N}: Zero tangent vector with same basepoint and direction as v