3 int main(
int argc, 
char *argv[])
 
    5   std::cout.precision(2);
 
    8   Eigen::Matrix3f 
m3 = Eigen::Matrix3f::Random();
 
    9   Eigen::Matrix4f m4 = Eigen::Matrix4f::Identity();
 
   11   std::cout << 
"*** Step 1 ***\nm3:\n" << 
m3 << 
"\nm4:\n" << m4 << std::endl;
 
   15   m3.diagonal().setOnes();
 
   17   std::cout << 
"*** Step 2 ***\nm3:\n" << 
m3 << 
"\nm4:\n" << m4 << std::endl;
 
   20   m4.block<3,3>(0,1) = 
m3;
 
   21   m3.row(2) = m4.block<1,3>(2,0);
 
   23   std::cout << 
"*** Step 3 ***\nm3:\n" << 
m3 << 
"\nm4:\n" << m4 << std::endl;
 
   28     m4.block(0,1,3,3).setIdentity();
 
   29     std::cout << 
"*** Step 4 ***\nm4:\n" << m4 << std::endl;
 
   33   m4.diagonal().block(1,2).setOnes();
 
   34   std::cout << 
"*** Step 5 ***\nm4.diagonal():\n" << m4.diagonal() << std::endl;
 
   35   std::cout << 
"m4.diagonal().start(3)\n" << m4.diagonal().start(3) << std::endl;
 
   39   m3 = 
m3.cwise().cos();
 
   40   std::cout << 
"*** Step 6 ***\nm3:\n" << 
m3 << 
"\nm4:\n" << m4 << std::endl;
 
   43   std::cout << 
"*** Step 7 ***\n m4.sum(): " << m4.sum() << std::endl;
 
   44   std::cout << 
"m4.col(2).sum(): " << m4.col(2).sum() << std::endl;
 
   45   std::cout << 
"m4.colwise().sum():\n" << m4.colwise().sum() << std::endl;
 
   46   std::cout << 
"m4.rowwise().sum():\n" << m4.rowwise().sum() << std::endl;
 
   50   Eigen::Matrix4f 
other = (m4 * m4).lazy(); 
 
   52   m4 = -m4 + m4 + 5 * m4; 
 
   55   m3 = 
m3 * m4.block<3,3>(1,1); 
 
   58   m4 = m4 * m4.transpose(); 
 
   59   m4 = m4 * m4.transpose().eval(); 
 
   61   std::cout << 
"*** Step 8 ***\nm3:\n" << 
m3 << 
"\nm4:\n" << m4 << std::endl;