67 using scalar_type =
typename Matrix::value_type;
68 using storage_index_type =
typename Matrix::StorageIndex;
71 outer_size * (inner_size - 2) + (outer_size - 1) * (inner_size - 1);
73 (outer_size - 1) * inner_size + outer_size * (inner_size - 1);
76 std::vector<Eigen::Triplet<scalar_type, storage_index_type>> triplets;
80 triplets.emplace_back(
81 row, o * inner_size + i,
static_cast<scalar_type
>(1));
82 triplets.emplace_back(
83 row, (o + 1) * inner_size + i,
static_cast<scalar_type
>(-1));
91 (outer_size - 2) * inner_size + o * (inner_size - 2) + i;
92 triplets.emplace_back(row,
93 (outer_size - 1) * inner_size + o * (inner_size - 1) + i,
94 static_cast<scalar_type
>(1));
95 triplets.emplace_back(row,
96 (outer_size - 1) * inner_size + o * (inner_size - 1) + i + 1,
97 static_cast<scalar_type
>(-1));
105 outer_size * (inner_size - 2) + o * (inner_size - 1) + i;
106 triplets.emplace_back(
107 row, o * inner_size + i,
static_cast<scalar_type
>(1));
108 triplets.emplace_back(
109 row, o * inner_size + i + 1,
static_cast<scalar_type
>(-1));
110 triplets.emplace_back(row,
111 (outer_size - 1) * inner_size + o * (inner_size - 1) + i,
112 static_cast<scalar_type
>(1));
113 triplets.emplace_back(row,
114 (outer_size - 1) * inner_size + (o + 1) * (inner_size - 1) + i,
115 static_cast<scalar_type
>(-1));
119 Matrix matrix(rows, cols);
120 matrix.setFromTriplets(triplets.begin(), triplets.end());