void SpectClust::normalizeSum(SymmetricMatrix &A) { RowVector Ones(A.Ncols()); Ones = 1.0; // Calculate the sum of each row matrix style. Could this be a Diagonal Matrix instead? Matrix RowSum = Ones * (A.t()); DiagonalMatrix D(A.Ncols()); D = 0; // Take the inverse square root for(int i = 1; i <= A.Ncols(); i++) { D(i,i) = 1/sqrt(RowSum(1,i)); } Matrix X = D * (A * D); A << X; }