xref: /aosp_15_r20/external/eigen/doc/snippets/TopicAliasing_cwise.cpp (revision bf2c37156dfe67e5dfebd6d394bad8b2ab5804d4)
1*bf2c3715SXin Li MatrixXf mat(2,2);
2*bf2c3715SXin Li mat << 1, 2,  4, 7;
3*bf2c3715SXin Li cout << "Here is the matrix mat:\n" << mat << endl << endl;
4*bf2c3715SXin Li 
5*bf2c3715SXin Li mat = 2 * mat;
6*bf2c3715SXin Li cout << "After 'mat = 2 * mat', mat = \n" << mat << endl << endl;
7*bf2c3715SXin Li 
8*bf2c3715SXin Li 
9*bf2c3715SXin Li mat = mat - MatrixXf::Identity(2,2);
10*bf2c3715SXin Li cout << "After the subtraction, it becomes\n" << mat << endl << endl;
11*bf2c3715SXin Li 
12*bf2c3715SXin Li 
13*bf2c3715SXin Li ArrayXXf arr = mat;
14*bf2c3715SXin Li arr = arr.square();
15*bf2c3715SXin Li cout << "After squaring, it becomes\n" << arr << endl << endl;
16*bf2c3715SXin Li 
17*bf2c3715SXin Li // Combining all operations in one statement:
18*bf2c3715SXin Li mat << 1, 2,  4, 7;
19*bf2c3715SXin Li mat = (2 * mat - MatrixXf::Identity(2,2)).array().square();
20*bf2c3715SXin Li cout << "Doing everything at once yields\n" << mat << endl << endl;
21