Use memcpy now for copying data and indicate how the data is stored
This commit is contained in:
parent
6fab3a8b85
commit
f4bbfef674
|
@ -27,13 +27,13 @@ void CppConvertToMatrix(const Eigen::MatrixXf& in, ::Matrix* out) {
|
|||
out->cols = in.cols();
|
||||
out->data = new float[out->rows * out->cols];
|
||||
|
||||
// Copy data from Eigen matrix to C-style matrix.
|
||||
// This operation copies the elements sequentially as they appear in the Eigen
|
||||
// matrix's internal storage, regardless of whether it's stored in row-major
|
||||
// or column-major order and ensures the integrity of data during the
|
||||
// transfer.
|
||||
for (int i = 0; i < out->rows * out->cols; ++i) {
|
||||
out->data[i] = in.data()[i];
|
||||
// Copies data from an Eigen matrix (default column-major) to a C-style
|
||||
// matrix, preserving the sequence of elements as per the Eigen matrix's
|
||||
// internal storage (column-major order by default).
|
||||
if (!in.IsRowMajor) {
|
||||
// Safe to use memcpy when the Eigen matrix is in its default column-major
|
||||
// order.
|
||||
memcpy(out->data, in.data(), sizeof(float) * out->rows * out->cols);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user