Tangent Vector

NonArchimedeanMachineLearning.ValuationTangentType
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 vector
  • direction::ValuationPolydisc{S, T, N}: The target polydisc that determines the tangent direction
  • magnitude::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
source
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 vector
  • Q::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)

source
NonArchimedeanMachineLearning.basis_vectorMethod
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 polydisc
  • Q::ValuationPolydisc{S, T, N}: The polydisc determining the tangent direction
  • i: The coordinate index for the basis vector

Returns

ValuationTangent{S, T, N}: Standard basis vector with magnitude 1 in coordinate i and 0 elsewhere

source
NonArchimedeanMachineLearning.basis_vectorMethod
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 vector
  • i: The coordinate index for the basis vector

Returns

ValuationTangent{S, T, N}: Standard basis vector with same basepoint and direction as v

source
NonArchimedeanMachineLearning.dimMethod
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)

source
NonArchimedeanMachineLearning.zeroMethod
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 polydisc
  • Q::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]

source
NonArchimedeanMachineLearning.zeroMethod
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

source