xref: /aosp_15_r20/external/eigen/doc/examples/function_taking_eigenbase.cpp (revision bf2c37156dfe67e5dfebd6d394bad8b2ab5804d4)
1*bf2c3715SXin Li #include <iostream>
2*bf2c3715SXin Li #include <Eigen/Core>
3*bf2c3715SXin Li using namespace Eigen;
4*bf2c3715SXin Li 
5*bf2c3715SXin Li template <typename Derived>
print_size(const EigenBase<Derived> & b)6*bf2c3715SXin Li void print_size(const EigenBase<Derived>& b)
7*bf2c3715SXin Li {
8*bf2c3715SXin Li   std::cout << "size (rows, cols): " << b.size() << " (" << b.rows()
9*bf2c3715SXin Li             << ", " << b.cols() << ")" << std::endl;
10*bf2c3715SXin Li }
11*bf2c3715SXin Li 
main()12*bf2c3715SXin Li int main()
13*bf2c3715SXin Li {
14*bf2c3715SXin Li     Vector3f v;
15*bf2c3715SXin Li     print_size(v);
16*bf2c3715SXin Li     // v.asDiagonal() returns a 3x3 diagonal matrix pseudo-expression
17*bf2c3715SXin Li     print_size(v.asDiagonal());
18*bf2c3715SXin Li }
19