  Block classical Gram-Schmidt (BCGS) is commonly used for orthogonalizing a
set of vectors $X$ in distributed computing environments due to its favorable
communication properties relative to other orthogonalization approaches, such
as modified Gram-Schmidt or Householder. However, it is known that BCGS (as
well as recently developed low-synchronization variants of BCGS) can suffer
from a significant loss of orthogonality in finite-precision arithmetic, which
can contribute to instability and inaccurate solutions in downstream
applications such as $s$-step Krylov subspace methods. A common solution to
improve the orthogonality among the vectors is reorthogonalization. Focusing on
the "Pythagorean" variant of BCGS, introduced in [E. Carson, K. Lund, & M.
Rozlo\v{z}n\'{i}k. SIAM J. Matrix Anal. Appl. 42(3), pp. 1365--1380, 2021],
which guarantees an $O(\varepsilon)\kappa^2(X)$ bound on the loss of
orthogonality as long as $O(\varepsilon)\kappa^2(X)<1$, where $\varepsilon$
denotes the unit roundoff, we introduce and analyze two reorthogonalized
Pythagorean BCGS variants. These variants feature favorable communication
properties, with asymptotically two synchronization points per block column, as
well as an improved $O(\varepsilon)$ bound on the loss of orthogonality. Our
bounds are derived in a general fashion to additionally allow for the analysis
of mixed-precision variants. We verify our theoretical results with a panel of
test matrices and experiments from a new version of the \texttt{BlockStab}
toolbox.
