xref: /aosp_15_r20/external/eigen/unsupported/doc/examples/MatrixSine.cpp (revision bf2c37156dfe67e5dfebd6d394bad8b2ab5804d4)
1*bf2c3715SXin Li #include <unsupported/Eigen/MatrixFunctions>
2*bf2c3715SXin Li #include <iostream>
3*bf2c3715SXin Li 
4*bf2c3715SXin Li using namespace Eigen;
5*bf2c3715SXin Li 
main()6*bf2c3715SXin Li int main()
7*bf2c3715SXin Li {
8*bf2c3715SXin Li   MatrixXd A = MatrixXd::Random(3,3);
9*bf2c3715SXin Li   std::cout << "A = \n" << A << "\n\n";
10*bf2c3715SXin Li 
11*bf2c3715SXin Li   MatrixXd sinA = A.sin();
12*bf2c3715SXin Li   std::cout << "sin(A) = \n" << sinA << "\n\n";
13*bf2c3715SXin Li 
14*bf2c3715SXin Li   MatrixXd cosA = A.cos();
15*bf2c3715SXin Li   std::cout << "cos(A) = \n" << cosA << "\n\n";
16*bf2c3715SXin Li 
17*bf2c3715SXin Li   // The matrix functions satisfy sin^2(A) + cos^2(A) = I,
18*bf2c3715SXin Li   // like the scalar functions.
19*bf2c3715SXin Li   std::cout << "sin^2(A) + cos^2(A) = \n" << sinA*sinA + cosA*cosA << "\n\n";
20*bf2c3715SXin Li }
21