code: def _update_transform_subject(Xi, S):
          
          A = Xi.dot(S.T)
          # Solve the Procrustes problem
          U, _, V = np.linalg.svd(A, full_matrices=False)
          return U.dot(V)
docs: Updates the mappings `W_i` for one subject.
  
          Parameters
          ----------
  
          Xi : array, shape=[voxels, timepoints]
              The fMRI data :math:`X_i` for aligning the subject.
  
          S : array, shape=[features, timepoints]
              The shared response.
  
          Returns
          -------
  
          Wi : array, shape=[voxels, features]
              The orthogonal transform (mapping) :math:`W_i` for the subject.