Complete PCA algorithm