jaxvacua.conifold.conifold_utils.extended_euclidean

jaxvacua.conifold.conifold_utils.extended_euclidean#

extended_euclidean(w)#

Computes Bézout’s identity and a unimodular integer basis transformation for an integer array \(w\).

Parameters:

w (Union[Array, ndarray, bool, number, bool, int, float, complex]) – Integer input array of length \(n\).

Returns:
  • tuple(Bezout, GCD, Lambda) where

  • - ``Bezout`` (np.ndarray, shape (n,), dtype int) – Bézout coefficients satisfying \(\sum_i \text{Bezout}_i \cdot w_i = \gcd(w)\).

  • - ``GCD`` (int) – entries of \(w\).

  • - ``Lambda`` (np.ndarray, shape (n, n), dtype int) – Unimodular transformation satisfying \(\Lambda w = (\gcd(w), 0,\ldots,0)^T\).

Return type:

Tuple[ndarray, int, ndarray]

See also: orthogonal_lattice(), and the conifold-specific jaxvacua.conifold.conifold_utils.get_basis_change().