xref: /aosp_15_r20/external/eigen/doc/snippets/Slicing_custom_padding_cxx11.cpp (revision bf2c37156dfe67e5dfebd6d394bad8b2ab5804d4)
1 struct pad {
sizepad2   Index size() const { return out_size; }
operator []pad3   Index operator[] (Index i) const { return std::max<Index>(0,i-(out_size-in_size)); }
4   Index in_size, out_size;
5 };
6 
7 Matrix3i A;
8 A.reshaped() = VectorXi::LinSpaced(9,1,9);
9 cout << "Initial matrix A:\n" << A << "\n\n";
10 MatrixXi B(5,5);
11 B = A(pad{3,5}, pad{3,5});
12 cout << "A(pad{3,N}, pad{3,N}):\n" << B << "\n\n";
13