Arrays and tensors¶
xtensor-r
provides two container types wrapping R arrays: rarray
and rtensor
. They are the counterparts
to xarray
and xtensor
containers.
rarray¶
Like xarray
, rarray
has a dynamic shape. This means that you can reshape the R array on the C++ side and see this change reflected on the R side. rarray
doesn’t make a copy of the shape, but reads it each time it is needed. Therefore, if a reference on a rarray
is kept in the C++ code and the corresponding R array is then reshaped in the R code, this modification will reflect in the rarray
.
rtensor¶
Like xtensor
, rtensor
has a static stack-allocated shape. This means that the shape of the R array is copied into the shape of the rtensor
upon creation. As a consequence, reshapes are not reflected across languages. However, this drawback
is offset by a more effective computation of shape and broadcast.