static bool isNumericallySound(const Matrix3d& E)
{
    double Emax = E.cwiseAbs().sum();
    double Esum = E.cwiseAbs().maxCoeff();

	if (Esum < 1E-10) return false;
	Esum = Esum / Emax; // Eigen: Ecand.cwiseAbs().sum() / Ecand.lpNorm<Infinity>()
	return !std::isnan(Esum) && !std::isinf(Esum);
}
int main(int, char**)
{
  cout.precision(3);
  Matrix3d m = Matrix3d::Random();
cout << "Here is the matrix m:" << endl << m << endl;
cout << "Here is the sum of each row:" << endl << m.rowwise().sum() << endl;
cout << "Here is the maximum absolute value of each row:"
     << endl << m.cwiseAbs().rowwise().maxCoeff() << endl;

  return 0;
}