double_gram_schmidt

probnum.utils.linalg.double_gram_schmidt(v, orthogonal_basis, inner_product=None, normalize=False, gram_schmidt_fn=<function modified_gram_schmidt>)[source]

Perform the (modified) Gram-Schmidt process twice.

Computes a vector \(v'\) such that \(\langle v', b_i \rangle = 0\) for all basis vectors \(b_i \in B\) in the orthogonal basis. This performs the (modified) Gram-Schmidt orthogonalization process twice, which is generally more stable than just reorthogonalizing once. [1] [2]

Parameters:
Returns:

Orthogonalized vector.

Return type:

v_orth

References