Как избежать глубокого копирования при переносе arma :: Mat <double>в R cpp :: NumericMatrix - PullRequest
1 голос
/ 13 января 2020
NumericMatrix res = wrap(mat);// mat is an existing arma::Mat<double>

Это довольно дорого, когда матрица становится большой, и мне больше не нужен объект 'mat' после преобразования в R cpp :: NumericMatrix.

Я выяснил, как украсть память у arma :: Mat,

double * ptr = mat.memptr();
access::rw(mat.mem) = 0;

Но вопрос в том, как позволить R / R cpp захватить 'ptr' чтобы NumericMatrix создавался непосредственно из существующей памяти?

...