- probnum.utils.linalg.double_gram_schmidt(v, orthogonal_basis, inner_product=None, normalize=False, gram_schmidt_fn=<function modified_gram_schmidt>)¶
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.  
v (ndarray) – Vector (or stack of vectors) to orthogonalize against
inner_product (ndarray | LinearOperator | Callable[[ndarray, ndarray], ndarray] | None) – Inner product defining orthogonality. Can be either a
Callabledefining the inner product. Defaults to the euclidean inner product.
normalize (bool) – Normalize the output vector, s.t. \(\langle v', v' \rangle = 1\).
- Return type: